busy-lock recipe should echo human-readable busy_until for off-by-N self-check #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
What happened
2026-04-27, his agent filed
/opt/herding/var/data-busy.lockwithbusy_until=1777291200to suppress data's nightly auto-shutdown during a long chromium build. The shutdown fired anyway at 03:00 UTC 2026-04-28, killing the build.Root cause
1777291200= 2026-04-27 12:00 UTC, i.e. ~3 hours BEFORE the next shutdown firing, not 24h after. The user/agent's intent was "tomorrow noon" — off by 24h. The cron at/etc/cron.d/shutdown-datadid exactly the right thing: read the lock, sawbusy_untilwas in the past (by 13h), loggedis stale (busy_until=1777291200), ignoring, removed it, and proceeded to shut down./root/shutdown-data.shis correct.The gap is in the recipe (
reference_data_shutdown_override.mdin the auto-memory, mirrored in this agent's runbook): writing a future-dated epoch with no human-readable echo means a wrong-day error slips through silently. The operator walks away thinking they're protected for 24h, only to find the build dead next morning.Proposed fix
When writing the lock, the recipe should echo a human-readable confirmation:
The his agent should also include that line in its post-action report so the user can sanity-check the date in the same response.
Optional follow-up
/root/shutdown-data.shcould log the human-readable interpretation of any lock it finds (busy_until=1777291200 (2026-04-27 12:00 UTC, 13h stale)) for cleaner post-mortem reading. Currently the log only has the epoch.Repro / evidence
is stale (busy_until=1777291200), ignoringfollowed byrm -f+poweroffbusy_until=1777464000(2026-04-29 12:00 UTC) — verified by reading back viadate -d @1777464000 -u.Flagged by his agent itself in the post-action report ("Suggest tightening the recipe in
reference_data_shutdown_override.mdto always echodate -d @<epoch>after writing the lock, as a self-check.").Recipe confirmed in active use 2026-04-29 (noether session). Wrote a 24h lock to skip tonight's 3 AM shutdown, echoed back via
date -d @$BUSY -Isecondsplus an explicittonight 3 AM < busy_untilpredicate before walking away. Output:The 12-hour
datedefault (Thu Apr 30 12:07:41 AM CEST) is itself a minor footgun —12:07 AMreads as noon to a tired eye. Recommending the recipe pin-Isecondsor-uso the readback is unambiguous. Leaving issue open for the runbook update.Fixed in v0.1.9 (commit 2dd7ad9). The runbook now includes a "Data nightly-shutdown override" subsection in both
agents/his.mdandskills/his/SKILL.mdwith the busy-lock recipe and the mandatorydate -d "@$busy_until" -Isecondsself-check, plus the rule that the human-readable expiry must appear in the post-action report. Live on packages.reauktion.de inclaude-his-agent_0.1.9-1.