PYR0D-355: Reimplement the away-mode watchdog (idle-with-work wake, stall and dead-supervisor alarms) #43
Loading…
Reference in a new issue
No description provided.
Delete branch "fm/fm-afk-watchdog-reimplement"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story: PYR0D-355 - Away mode: reimplement our own watchdog (idle-with-work and dead-supervisor alarms)
What was wrong
On 2026-10-01 away mode did no work for 4h21m. One of the two causes was that nothing gave firstmate a turn when the fleet went idle with ready work queued. The fork's earlier private watchdog had caught the same shape on 09-29, but it was lost in the upstream rebuild.
What changed
bin/fm-afk-watchdog.sh, started with the away daemon (fm-afk-start.sh/fm-afk-launch.sh). It runs only while an away record exists.fm-tasks-axi.sh readyis non-empty, it wakes firstmate once per idle period through the durable wake queue, carrying the away words' read-back.fm_supervision_host_enabledgate, never by whether the config file exists.Decisions made in review (firstmate)
working, from any source (pane, run-step), counts as busy and healthy. A busy fleet never pages.How it was checked
tests/fm-afk-watchdog.test.shcovers the idle wake, the stall alarm (busy pane, run-step, secondmate, quiet and done cases), alarm rate limits, and the host gate (absent file on a Claude primary, and "off"). It also went through the no-mistakes pipeline.Follow-ups
state/away-idle-nudge.check.sh(home-private) once this merges.