Multi-timeframe Intelligence Integration: - Fixed route.js conflicts preventing multi-timeframe display (2h, 4h now show) - API now returns multiTimeframeResults with real database sessions - Multi-timeframe consensus: 4h (82% confidence), 2h (78% confidence) - Enhanced screenshot API with automation insights context - New /api/automation-insights endpoint for standalone intelligence - Pattern recognition from successful automated trades - Multi-timeframe consensus recommendations - Historical win rates and profitability patterns (70% win rate, avg 1.9% profit) - Market trend context from automated sessions (BULLISH consensus) - Confidence levels based on proven patterns (80% avg confidence) - Top performing patterns: BUY signals with 102% confidence - automationContext passed to analysis services - generateEnhancedRecommendation() with multi-timeframe logic - Enhanced progress tracking with automation insights step - Real database integration with prisma for trade patterns - Resolved Next.js route file conflicts in analysis-details directory - Multi-timeframe sessions properly grouped and returned - Automation insights included in API responses - Enhanced recommendation system with pattern analysis - Manual analysis now has access to automated trading intelligence - Multi-timeframe display working (1h, 2h, 4h timeframes) - Data-driven recommendations based on historical performance - Seamless integration between automated and manual trading systems
3.9 KiB
3.9 KiB
Cleanup System Improvements
Problem Identified
The cleanup system was not properly detecting when analysis was finished, causing chromium instances to accumulate and consume all RAM and CPU over time.
Root Causes
- Browser instances not cleaned up after analysis completion
- Session deletion happening before browser cleanup
- Aggressive cleanup being too cautious and skipping actual cleanup
- Missing completion signals from analysis workflow
Solutions Implemented
1. Enhanced Browser Cleanup (lib/enhanced-screenshot.ts)
- Added immediate browser cleanup after analysis completion
- Improved the
cleanup()method to:- Close all browser sessions (AI, DIY, and main)
- Wait for graceful shutdown
- Force kill remaining browser processes
- Clean up temporary files
2. Improved Analysis Workflow (lib/ai-analysis.ts)
- Added browser cleanup trigger immediately after analysis completes
- Added cleanup trigger even on analysis errors
- Cleanup now happens before session deletion to ensure browsers are closed
3. Enhanced API Cleanup (app/api/enhanced-screenshot/route.js)
- Added immediate browser cleanup after screenshot capture
- Added cleanup trigger in error handling
- Cleanup now runs regardless of environment (not just development)
4. Aggressive Cleanup Improvements (lib/aggressive-cleanup.ts)
runPostAnalysisCleanup()now ignores session status since analysis is complete- More aggressive process termination strategy:
- Try graceful shutdown (SIGTERM) first
- Wait 5 seconds for graceful shutdown
- Force kill (SIGKILL) stubborn processes
- Enhanced temp file and shared memory cleanup
- Force clear stuck progress sessions
5. TradingView Automation Cleanup (lib/tradingview-automation.ts)
- Improved
forceCleanup()method to:- Close all pages individually first
- Close browser gracefully
- Force kill browser process if graceful close fails
6. New Monitoring Tools
- Process Monitor API:
/api/system/processesGET: Shows current browser processes and active sessionsPOST: Triggers manual aggressive cleanup
- Test Script:
test-cleanup-improvements.js- Validates the complete cleanup workflow
- Monitors processes before/after analysis
- Tests manual cleanup triggers
Key Changes Summary
Cleanup Trigger Points
- After analysis completion (success or error)
- After screenshot capture completion
- On API request completion (success or error)
- Manual trigger via
/api/system/processes
Cleanup Strategy
- Immediate: Browser instances closed right after analysis
- Graceful: SIGTERM first, wait 5 seconds
- Forceful: SIGKILL for stubborn processes
- Comprehensive: Temp files, shared memory, stuck sessions
Detection Improvements
- Post-analysis cleanup ignores session status (since analysis is done)
- Better process age filtering in regular cleanup
- Enhanced process information logging for debugging
Usage
Monitor Current Processes
curl http://localhost:3000/api/system/processes
Trigger Manual Cleanup
curl -X POST http://localhost:3000/api/system/processes
Test Complete Workflow
node test-cleanup-improvements.js
Expected Results
- No accumulating browser processes after analysis completion
- RAM usage stays stable over multiple analysis cycles
- CPU usage returns to baseline after each analysis
- Faster subsequent analysis due to proper cleanup
Monitoring Commands
# Check browser processes
ps aux | grep -E "(chromium|chrome)" | grep -v grep
# Monitor memory usage
free -h
# Check temp directories
ls -la /tmp/puppeteer_dev_chrome_profile-* 2>/dev/null || echo "No temp profiles"
ls -la /dev/shm/.org.chromium.* 2>/dev/null || echo "No shared memory files"
The system should now properly clean up all browser instances and associated resources after each analysis cycle, preventing the RAM and CPU accumulation issues.