144 lines
3.6 KiB
Markdown
144 lines
3.6 KiB
Markdown
# VS Code Session Limits & Crash Prevention Guide
|
|
|
|
## 🚨 Current Issues Identified
|
|
|
|
### 1. **High Process Count**: 38 VS Code processes running
|
|
### 2. **Memory Consumption**:
|
|
- Pylance server: 573MB
|
|
- Utility processes: 686MB
|
|
- Total: ~1.2GB VS Code memory usage
|
|
|
|
### 3. **Recent Crashes**:
|
|
- Renderer process crashes (code: 5)
|
|
- File watcher crashes (code: 15)
|
|
- Extension host failures
|
|
|
|
## ⚙️ Solutions Implemented
|
|
|
|
### 1. **Optimized Settings** (`.vscode/settings.json`)
|
|
- Reduced editor suggestions and hover
|
|
- Limited Python analysis depth
|
|
- Disabled auto-updates and telemetry
|
|
- Configured memory-efficient file watching
|
|
|
|
### 2. **Session Monitoring** (`scripts/vscode_session_monitor.sh`)
|
|
```bash
|
|
# Check current session status
|
|
./scripts/vscode_session_monitor.sh check
|
|
|
|
# Start continuous monitoring
|
|
./scripts/vscode_session_monitor.sh monitor
|
|
|
|
# Clean up logs and cache
|
|
./scripts/vscode_session_monitor.sh cleanup
|
|
```
|
|
|
|
### 3. **Emergency Management** (`scripts/vscode_emergency_cleanup.sh`)
|
|
```bash
|
|
# Show memory status
|
|
./scripts/vscode_emergency_cleanup.sh status
|
|
|
|
# Light cleanup (recommended during agent iterations)
|
|
./scripts/vscode_emergency_cleanup.sh gentle
|
|
|
|
# Heavy cleanup (when unresponsive)
|
|
./scripts/vscode_emergency_cleanup.sh aggressive
|
|
|
|
# Full restart
|
|
./scripts/vscode_emergency_cleanup.sh restart
|
|
```
|
|
|
|
### 4. **Environment Configuration** (`.vscode/session_config.env`)
|
|
Load before starting VS Code:
|
|
```bash
|
|
source .vscode/session_config.env
|
|
code .
|
|
```
|
|
|
|
## 📊 Agent Session Limits
|
|
|
|
### GitHub Copilot Limits:
|
|
- **Max Tokens per Request**: 4,000
|
|
- **History Length**: 10 conversations
|
|
- **Request Timeout**: 30 seconds
|
|
|
|
### System Resource Limits:
|
|
- **Memory Warning**: When VS Code uses >1.5GB
|
|
- **Process Limit**: Maximum 20 VS Code processes
|
|
- **Max Session Duration**: 2 hours
|
|
- **Auto Cleanup**: Every 30 minutes
|
|
|
|
### Agent Iteration Limits:
|
|
- **Max Iterations**: 50 per session
|
|
- **Max Edit Size**: 10,000 characters
|
|
- **Timeout per Operation**: 3 minutes
|
|
|
|
## 🔧 Prevention Strategies
|
|
|
|
### 1. **Before Long Agent Sessions**:
|
|
```bash
|
|
# Clean up first
|
|
./scripts/vscode_emergency_cleanup.sh gentle
|
|
|
|
# Load optimized environment
|
|
source .vscode/session_config.env
|
|
|
|
# Start monitoring
|
|
./scripts/vscode_session_monitor.sh monitor &
|
|
```
|
|
|
|
### 2. **During Agent Iterations**:
|
|
- Monitor memory with `./scripts/vscode_emergency_cleanup.sh status`
|
|
- Use gentle cleanup if memory >1GB
|
|
- Restart VS Code every 2 hours or 50+ operations
|
|
|
|
### 3. **Warning Signs**:
|
|
- VS Code becomes slow/unresponsive
|
|
- High CPU usage (>80%)
|
|
- Memory usage >1.5GB
|
|
- More than 30 processes
|
|
|
|
### 4. **Emergency Actions**:
|
|
```bash
|
|
# If VS Code freezes during agent work:
|
|
./scripts/vscode_emergency_cleanup.sh aggressive
|
|
|
|
# If completely unresponsive:
|
|
./scripts/vscode_emergency_cleanup.sh full
|
|
```
|
|
|
|
## 📈 Monitoring Commands
|
|
|
|
### Resource Monitoring:
|
|
```bash
|
|
# Check memory usage
|
|
free -h
|
|
|
|
# VS Code processes
|
|
ps aux | grep code | wc -l
|
|
|
|
# Memory per process
|
|
ps -o pid,ppid,pcpu,pmem,rss,args -C code
|
|
```
|
|
|
|
### Log Analysis:
|
|
```bash
|
|
# Recent crashes
|
|
grep "crashed" ~/.config/Code/logs/*/main.log | tail -5
|
|
|
|
# Copilot requests
|
|
find ~/.config/Code/logs -name "*copilot*" -exec tail -10 {} \;
|
|
|
|
# Extension host status
|
|
ps aux | grep extensionHost
|
|
```
|
|
|
|
## 🎯 Recommended Workflow
|
|
|
|
1. **Before starting**: Load session config and monitor
|
|
2. **During agent work**: Check status every 15-20 operations
|
|
3. **After 1 hour**: Perform gentle cleanup
|
|
4. **After 2 hours**: Restart VS Code completely
|
|
5. **If crashes occur**: Use emergency cleanup and restart
|
|
|
|
This configuration should prevent most crashes and provide early warning when limits are approached. |