feat(FM): give registered watcher checks last-run telemetry #10
Loading…
Reference in a new issue
No description provided.
Delete branch "fm/fm-check-failure-telemetry"
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?
Why
A registered watcher check is silent by design on every sweep that produces no wake — correct for the
wake stream, but it means a check that runs and produces nothing is indistinguishable from one
failing every time.
That is not hypothetical. During the 2026-08-16 overnight incident the budget check produced no output
for roughly twelve hours after the window it was watching had reset. The post-mortem
(
data/fm-afk-resume-postmortem/report.md) ruled out crash, hang, rejected trust and swallowed output,and still could not determine whether
quota-axiwas unusable for that whole period or the valuegenuinely never crossed the threshold — because the check had no telemetry of its own and its
|| exit 0swallowed any tool failure silently.What this adds
Every registered check now records a per-run marker — timestamp, result, and whether its own data
source succeeded — on every sweep.
bin/fm-check-lib.sh), not in individual check scripts. Checks arecontent-hash-bound by
fm-check-register.sh, so putting this in the scripts would forcere-registration and push the burden onto every future check author.
inspection that the change adds no wake call.
same way a stale watcher beacon already does, rather than sitting in a file nobody opens.
The part that matters most
The telemetry cannot fail silently. A failing sidecar write is detected and reported rather than
swallowed, and an unparseable or empty sidecar is flagged rather than read as healthy. Without that
this change would have rebuilt the exact blind spot it exists to close — a monitor that goes quiet and
looks fine.
Tests
272 lines of new test for a 79-line change, which is the right ratio for something that will run on
every watcher sweep indefinitely. Teardown coverage extended alongside.