feat(dashboard): stabilize idle mode and add system controls
- Fix: Implement Heartbeat Tick in dashboard backend to prevent CARLA window from freezing during GPU Idle Mode.
- Feat: Add "Force Kill Simulator" functionality to terminate unresponsive engine instances.
- Feat: Add "Nuclear EXIT ALL" button to sidebar for coordinated shutdown of CARLA, Flask server, and Browser.
- UI/UX: Design and center a premium "System Offline" overlay for graceful exit visibility.
- Automation: Implement auto-minimization logic in dashboard.bat to keep the workspace clean.
if(confirm("Are you sure you want to FORCE KILL CarlaUE4?\n\nThis will terminate the engine immediately. Any unsaved simulation data or unsynced frames will be lost.")){
fetch('/api/simulator/kill',{method:'POST'})
.then(res=>res.json())
.then(data=>{
if(data.success){
appendLog('> CarlaUE4 process terminated by user.','warn');
updateSimulatorStatus();
}
})
.catch(err=>appendLog(`> Failed to kill simulator: ${err.message}`,'error'));
}
});
}
// EXIT ALL action
if(exitAllBtn){
exitAllBtn.addEventListener('click',()=>{
if(confirm("FULL SYSTEM EXIT\n\nThis will:\n1. Terminate CarlaUE4\n2. Shutdown the Dashboard Server\n3. Close this browser window\n\nProceed ? (use with caution)")){
appendLog('\n> [CRITICAL] Initiating full system shutdown...','error');