mindesbunister
66c3c42547
feat: Add automated database sync validator for ghost position detection
PROBLEM:
- Analytics page showed 3 open trades when only 1 actually open on Drift
- Ghost positions in database (realizedPnL set but exitReason = NULL)
- Happens when on-chain orders fill but database update fails
- Manual cleanup required = unreliable dashboard
SOLUTION: Automated Database Sync Validator
1. Runs every 10 minutes (independent of Position Manager)
2. Validates ALL 'open' database trades against actual Drift positions
3. Auto-fixes ghost positions (marks as closed with exitReason)
4. Provides manual validation endpoint: GET /api/admin/validate-db
FEATURES:
- Detects ghost positions (DB open, Drift closed)
- Detects orphan positions (DB closed, Drift open)
- Provides detailed validation reports
- Runs on server startup + periodic intervals
- Zero manual intervention required
FILES:
- lib/database/sync-validator.ts: Core validation logic
- app/api/admin/validate-db/route.ts: Manual validation endpoint
- instrumentation.ts: Auto-start on server initialization
RESULT: Reliable dashboard data - always matches Drift reality
2025-11-16 21:30:29 +01:00
..
2025-11-16 21:30:29 +01:00
2025-11-15 23:14:17 +01:00
2025-11-16 20:51:26 +01:00
2025-11-05 07:58:27 +01:00
2025-11-10 13:35:10 +01:00
2025-11-14 22:20:04 +01:00
2025-11-16 20:51:26 +01:00