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
112 lines
3.9 KiB
Markdown
112 lines
3.9 KiB
Markdown
# 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
|
|
1. **Browser instances not cleaned up after analysis completion**
|
|
2. **Session deletion happening before browser cleanup**
|
|
3. **Aggressive cleanup being too cautious and skipping actual cleanup**
|
|
4. **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/processes`
|
|
- `GET`: Shows current browser processes and active sessions
|
|
- `POST`: 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
|
|
1. **After analysis completion** (success or error)
|
|
2. **After screenshot capture completion**
|
|
3. **On API request completion** (success or error)
|
|
4. **Manual trigger via `/api/system/processes`**
|
|
|
|
### Cleanup Strategy
|
|
1. **Immediate**: Browser instances closed right after analysis
|
|
2. **Graceful**: SIGTERM first, wait 5 seconds
|
|
3. **Forceful**: SIGKILL for stubborn processes
|
|
4. **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
|
|
```bash
|
|
curl http://localhost:3000/api/system/processes
|
|
```
|
|
|
|
### Trigger Manual Cleanup
|
|
```bash
|
|
curl -X POST http://localhost:3000/api/system/processes
|
|
```
|
|
|
|
### Test Complete Workflow
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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.
|