Alerts and Notifications
Rate-limited alert system with multi-channel delivery. Alerts fire during the oversight loop for risk events, kill switch activations, strategy failures, and settlements.Alert Levels and Categories
Rate Limiting
Each category is limited to 5 alerts per 60 seconds. Excess alerts are silently dropped to prevent notification floods during volatile periods.Channels
MCP Tool
Double-Entry Ledger
SQLite-backed accounting ledger that records every financial event as a debit/credit journal entry. Provides balance sheet and income statement views.Accounts
Journal Entries
Every financial event creates a balanced journal entry:Configuration
- Settlement P&L when markets resolve
- Management and performance fee accruals each tick
- All amounts validated (must be finite, positive)
MCP Tool
Reports
Paper-to-Live Promotion
Structured lifecycle that gates strategy promotion behind performance criteria. Strategies must prove themselves in paper trading before progressing to shadow mode and then live trading.Promotion Stages
Promotion Criteria
Each transition requires meeting minimum thresholds:Configuration
MCP Tool
Persistence
Two SQLite tables track state:promotions: current stage per strategypromotion_history: every promotion event with timestamp and reason
~/.horizon/promotion.db with WAL mode and 0o600 permissions.
Self-Healing Recovery
Automatic strategy restart with exponential backoff and circuit breaker. Detects failed strategies and stale feeds, attempts recovery without human intervention.How It Works
- The oversight loop calls
recovery.check_strategies()every 10 ticks - For each failed strategy, it attempts a restart via
controller.restart() - If the restart fails, backoff doubles: 60s, 120s, 240sā¦
- After 3 failed attempts, the circuit breaker opens and the strategy is marked permanently failed
Circuit Breaker
To re-enable recovery for a permanently failed strategy:
Feed Monitoring
The recovery manager also detects stale feeds (no update for 300+ seconds) and logs warnings. Feed staleness is informational; automatic feed reconnection is handled by the feed manager.Configuration
Recovery Events
Every recovery attempt is logged:Configuration Summary
All four subsystems are off by default. Enable them individually in
FundConfig. They integrate with the oversight loop automatically when enabled.