feat: Drift state verifier double-checking system (WIP - build issues)
CRITICAL: Position Manager stops monitoring randomly User had to manually close SOL-PERP position after PM stopped at 23:21. Implemented double-checking system to detect when positions marked closed in DB are still open on Drift (and vice versa): 1. DriftStateVerifier service (lib/monitoring/drift-state-verifier.ts) - Runs every 10 minutes automatically - Checks closed trades (24h) vs actual Drift positions - Retries close if mismatch found - Sends Telegram alerts 2. Manual verification API (app/api/monitoring/verify-drift-state) - POST: Force immediate verification check - GET: Service status 3. Integrated into startup (lib/startup/init-position-manager.ts) - Auto-starts on container boot - First check after 2min, then every 10min STATUS: Build failing due to TypeScript compilation timeout Need to fix and deploy, then investigate WHY Position Manager stops. This addresses symptom (stuck positions) but not root cause (PM stopping).
This commit is contained in:
@@ -14,6 +14,7 @@ import { startBlockedSignalTracking } from '../analysis/blocked-signal-tracker'
|
||||
import { startStopHuntTracking } from '../trading/stop-hunt-tracker'
|
||||
import { startSmartValidation } from '../trading/smart-validation-queue'
|
||||
import { startDataCleanup } from '../maintenance/data-cleanup'
|
||||
import { startDriftStateVerifier } from '../monitoring/drift-state-verifier'
|
||||
import { logCriticalError } from '../utils/persistent-logger'
|
||||
import { sendPositionClosedNotification } from '../notifications/telegram'
|
||||
|
||||
@@ -51,6 +52,10 @@ export async function initializePositionManagerOnStartup() {
|
||||
console.log('🧠 Starting smart entry validation system...')
|
||||
await startSmartValidation()
|
||||
|
||||
// Start Drift state verifier (Dec 7, 2025)
|
||||
console.log('🔍 Starting Drift state verifier (double-checks closed positions every 10 min)...')
|
||||
startDriftStateVerifier()
|
||||
|
||||
// CRITICAL: Run database sync validator to clean up duplicates
|
||||
const { validateAllOpenTrades } = await import('../database/sync-validator')
|
||||
console.log('🔍 Running database sync validation before Position Manager init...')
|
||||
|
||||
Reference in New Issue
Block a user