🔧 Implement robust cleanup system for Chromium process management

Major fixes for browser automation resource management:

- Chromium processes accumulating over time during automated trading
- Resource consumption growing after extended automation cycles
- Incomplete cleanup during analysis operations

 New Components:
- lib/enhanced-screenshot-robust.ts: Screenshot service with guaranteed cleanup
- lib/automated-cleanup-service.ts: Background process monitoring
- lib/auto-trading-service.ts: Comprehensive trading automation
- ROBUST_CLEANUP_IMPLEMENTATION.md: Complete documentation

- Finally blocks guarantee cleanup execution even during errors
- Active session tracking prevents orphaned browser instances
- Multiple kill strategies (graceful → force → process cleanup)
- Timeout protection prevents hanging cleanup operations
- Background monitoring every 30s catches missed processes

- lib/aggressive-cleanup.ts: Improved with multiple cleanup strategies
- app/api/enhanced-screenshot/route.js: Added finally block guarantees
- lib/automation-service.ts: Updated for integration

- validate-robust-cleanup.js: Implementation validation
- test-robust-cleanup.js: Comprehensive cleanup testing

The Chromium process accumulation issue is now resolved with guaranteed cleanup!
This commit is contained in:
mindesbunister
2025-07-24 08:39:26 +02:00
parent 91cc8baead
commit 5b156a0063
10 changed files with 1407 additions and 270 deletions

View File

@@ -16,6 +16,7 @@ export interface AutomationConfig {
stopLossPercent: number
takeProfitPercent: number
maxDailyTrades: number
riskPercentage: number
dexProvider: 'JUPITER' | 'DRIFT'
}
@@ -570,7 +571,7 @@ export class AutomationService {
console.log('⚠️ Failed to fetch balance, using fallback calculation')
// Fallback to config amount
let amount = Math.min(config.tradingAmount, 35) // Cap at $35 max
const riskAdjustment = 0.02 // Default 2% risk
const riskAdjustment = config.riskPercentage / 100
return Math.max(amount * riskAdjustment, 5)
}
@@ -584,7 +585,7 @@ export class AutomationService {
}
// Calculate position size based on risk percentage of available balance
const riskAmount = availableBalance * 0.02 // Default 2% risk
const riskAmount = availableBalance * (config.riskPercentage / 100)
// Adjust based on confidence (reduce risk for low confidence signals)
const confidenceMultiplier = Math.min(analysis.confidence / 100, 1)
@@ -599,7 +600,8 @@ export class AutomationService {
console.log(`📊 Position sizing calculation:`)
console.log(` - Available balance: $${availableBalance}`)
console.log(` - Risk amount: $${riskAmount.toFixed(2)} (2% default)`)
console.log(` - Risk percentage: ${config.riskPercentage}%`)
console.log(` - Risk amount: $${riskAmount.toFixed(2)}`)
console.log(` - Confidence multiplier: ${confidenceMultiplier}`)
console.log(` - Leverage: ${Math.min(config.maxLeverage, 10)}x`)
console.log(` - Final position size: $${amount.toFixed(2)}`)