• Stefy Lanza (nextime / spora )'s avatar
    fix: front-driven thermal pause indicator no longer erased by engine poll · a7a09b13
    Stefy Lanza (nextime / spora ) authored
    On a global CPU cooldown the thermal supervisor already pauses ALL engines
    (want_pause = gpu_hot or cpu_hot, applied per-engine), and the logs confirm
    every engine gets a pause. But the Tasks page often showed only ONE engine
    as cooling while the others looked like they were still running.
    
    Cause: two threads write engine.cooling. The thermal loop sets it when it
    pauses an engine; the health poll loop overwrites it every tick with the
    engine's OWN self-reported cooldown (cooling=d.get("cooling")). An engine
    only self-reports cooling while sitting in its own wait_until_safe loop (it
    has an in-flight request). An engine the front paused while IDLE reports
    cooling=None, so the poll loop cleared the front's pause indicator — the UI
    then showed that engine as running mid-cooldown.
    
    Fix: while the front holds an engine paused (engine.therm_paused), pass the
    update_state sentinel (cooling=False, "don't touch") instead of the engine's
    self-report, so the front's indicator survives. Once the front resumes the
    engine, the engine's self-report flows through again as before.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LoSpEthysqmseCc6Geizty
    a7a09b13
Name
Last commit
Last update
..
__init__.py Loading commit data...
admin_data.py Loading commit data...
app.py Loading commit data...
assignment.py Loading commit data...
engine_supervisor.py Loading commit data...
gpu_detect.py Loading commit data...
registry.py Loading commit data...
reqqueue.py Loading commit data...
router.py Loading commit data...
ui_pages.py Loading commit data...