vpn: the sentinel's cron monitor is the ATTENTION GATE, not the digest (kanban nix-config#946) #1974
No reviewers
Labels
No labels
backlog
bug
enhancement
in-progress
review
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ymrtech/nix-config!1974
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "kb/NCFG-946-sentinel-attention-gate"
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?
Kanban card nix-config#946 (worker session t_4ea665df). The private half is
nix-config-private#705, merged as
9cac5324; this PR pins that rev and flips the sentinel'scron monitor onto the new entry point, so the two land together (a
--gateflag the pin does nothave would break the monitor on every tick, and a monitor that never changes its text would stop
firing passes at all).
What
hosts/vpn/kanboard-sentinel'smonitor_scriptwaskanboard/sync.sh—sentinel.py --apply,whose stdout is the WHOLE per-card digest. Hermes runs the monitor every tick, hashes its stdout
byte for byte and invokes the agent only when that hash changes, so every card move anywhere (a
worker finishing a card, a new capture, a Done card crossing an age bucket) bought a full agent
pass: measured 2026-10-13, 48 passes in 24 h over a board whose only
ATTENTIONrows wereholds no agent action can resolve.
kanboard/gate.sh(sentinel.py --apply --gate), installed as a real fileby the
hermes-kanboard-scriptsactivation besidesync.sh/digest.sh, and declared as thejob's
monitor_script. Same mechanical write-backs; the text is the ATTENTION GATE: onebyte-stable
kanboard: no attentionwhile nothing needs an agent, the actionable rows whensomething does.
sync.shstays installed for a hand-run of the full-digest monitor.rule 13: the card lifecycle move is the WORKER's (
Reviewon PR open,Verifyafter merge,Donewithevidence), with the sentinel's scripted arms as the fallback only.Verification
test-kanban-sentinel-prompt.shgreen (the pass-budget contract it pins is intact, and thenew rule is additive),
test-kanban-cron-scripts.pygreen (converge still gates declaredscript paths),
test-kanban-cron-profiles.shgreen.nix-instantiate --parse hosts/vpn/default.nixOK..forgejo/tests/test-kanboard-attention-gate.sh(26 scenarios, 6 mutation arms) — a steady board byte-identical across renders and across an
age-bucket rollover with no bucket/
age=anywhere, a startable card + a capture + anunconfirmed close each flipping it, every
ATTENTIONverdict either a HOLD or an action, andno verdict outside
ATTENTIONescalating.kanboard: no attention, 3.8 s wall (the full digest on the same board is 4.7 s).monitor_script=kanboard/gate.sh), the installedgate.sh/sentinel.pybytes against this rev, zero agent runs over a measured steady windowread from the job's own output docs, and one induced event passing within a tick.