- Attribution store tracks intervention→comeback success rate (67% default)
- Pre-churn early warning classifies wallets as trader/LP/staker and fires
inactivity_detected before full churn threshold (3/5/7 day sensitivity)
- Shareable recovery card with X tweet pre-fill for rescued wallets
- Settings page: 5-signal threshold sliders with live wallet distribution preview
- Telegram operator alert on bulk rescue or scan with >=5 critical wallets
- Analytics page: Recovery Attribution dashboard with weekly trend chart
- Wallets page: pre-churn badge, wallet type label, share button per rescued wallet
- Sidebar: Settings nav link added
- README updated with all 5 features
feat: full Torque integration — live events, toast, bulk rescue, auto-scan
- Real event ingestion via ingest.torque.so with x-api-key auth
- In-memory event store tracking ingestion IDs across API routes
- Toast notification system (bottom-right, auto-dismiss 4s)
- Auto-scan mode: fires real Torque events every 30s autonomously
- Bulk Rescue: fire churn_risk_high for all critical wallets in one call
- Per-wallet Intervene buttons with inline ingestion ID confirmation
- Create Campaign modal wired to POST /api/torque/campaigns
- Topbar real Torque status (LIVE/OFFLINE) polling status route
- Sidebar live session event counter from event store
- AgentFeed injects real LIVE events at top alongside mock activity
- Keyboard shortcut S to trigger scan from Dashboard
- 7 custom event schemas: churn_risk_high/medium, comeback_detected,
streak_maintained, volume_milestone, inactivity_detected, referral_from_saved
- Fix: Topbar was checking status==='ok', route returns 'connected'