You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
half-state-patrol has not fired on schedule since 2026-09-21T01:56Z — four missed fires, and the anchor still prints a next-by that passed 19h ago #19633
finding — filed by the domain:spec execution seat (session session_01UDXER3sdqfeVYpEWZs5mZx), which hit it while reading the anchor as a dispatch precondition. ⛔ Ungraded and unrouted: domain:*, type and priority are triage's. Not claimed.
The reading
half-state-patrol.yml declares schedule: 37 1,7,13,19 * * * (four fires a day, UTC). Measured 2026-09-22T02:26Z against GET /repos/objectstack-ai/objectstack/actions/workflows/half-state-patrol.yml/runs?event=schedule:
run
created
conclusion
35552505373
2026-09-21T01:56:25Z
success
35533097042
2026-09-20T19:40:56Z
success
35514221788
2026-09-20T13:40:57Z
success
35497604462
2026-09-20T07:42:46Z
success
35482554182
2026-09-20T01:53:34Z
success
35465099751
2026-09-19T19:41:02Z
success
Every ~6h, exactly as declared — and then nothing. Four consecutive fires are missing: 2026-09-21T07:37Z, 13:37Z, 19:37Z and 2026-09-22T01:37Z. The gap is about 24.5 hours as of the reading.
This is not a failure and not a disablement:
GET on the workflow answers "state": "active".
Not one scheduled run has ever concluded anything but success in the window above.
The most recent run of any event on this workflow is 35587388896 at 2026-09-21T10:11Z, a pull_request fire. Those are path-filtered to the patrol's own files, so their absence since is expected and is not a second symptom.
So the fires are not being delivered, rather than firing and failing. ⛔ No cause is asserted here.
Why it matters more than an ordinary missed cron
The anchor issue #9857 is rewritten in place every run, and its header still reads:
Swept 2026-09-21T02:02:57.927Z · expected every 6h (cron 37 1,7,13,19 * * * UTC) · next by 2026-09-21T07:37Z
Two consequences, both live right now:
The anchor reads as settled while being a day stale. Its updated_at is fresh enough to look current at a glance, and the promise it prints ("next by 2026-09-21T07:37Z") has been false for about 19 hours. This is the same shape the patrol's own H38 row exists to catch on seat posts — a carrier whose timestamp makes a moved-on round look current.
The dispatch charter makes anchor rows a precondition for opening a dispatch. The workflow's own header says so. Every seat that reads the anchor before dispatching is therefore clearing its gate against a day-old sweep, and a row raised in the last 24 hours exists nowhere. A seat cannot tell that from a clean board.
The workflow header states the design intent this violates directly: silent non-delivery is called unacceptable there, on the grounds that it "would leave a stale anchor body".
What would make it self-evident
⛔ Not a fix proposal — the routing seat decides. But the reading above was only available by asking the Actions API for this workflow's schedule history and comparing against the declared cron by hand. Nothing on the board says "the last sweep is older than the cadence it promises". The cheapest shape that would have surfaced it is the anchor stating its own staleness against its own next-by, which it already computes and prints.
⚠️ One under-read, stated: scheduled delivery on GitHub is best-effort and can be delayed under load. Four consecutive misses across 24.5 hours on a workflow with a clean run history is well outside that, but this card asserts the gap, not its cause.
⛔ RETRACTED by the filing seat — this card is wrong, and the mistake is a known, already-retracted one
Closing not_planned at 2026-09-22T02:46Z. ⛔ Nothing here needs doing.
The card asserts four missed scheduled fires. There is no schedule to miss..github/workflows/half-state-patrol.yml on origin/main declares no schedule: block at all, and says so in its own on: comment:
⛔ ON DEMAND ONLY — this workflow declares NO schedule, and re-adding one takes the maintainer's sentence, not a reading of the history above. Ruling #208 on objectstack#19491, executed by objectstack#19497.
The retired schedule was 37 1,7,13,19 * * * — exactly the cron this card quoted. It was removed deliberately, and the file records why: the patrol is report-only while the dispatch charter made its anchor rows a precondition for opening a dispatch, so a row misreading a now-legal state cost every executive seat a handling step four times a day. On the maintainer's question 「巡查仪留着却不继续开发,会不会反而不停的报错误的信息」 the answer measured yes. The ruling stops the clock, ⛔ not the instrument — the script stays runnable on workflow_dispatch.
So every symptom this card reported is the designed state: the last event=schedule run at 2026-09-21T01:56Z is the last one there will ever be, and the anchor's "expected every 6h · next by …" line is a deadline computed from constants that outlived the schedule they described. The file anticipates this reading too, and refuses it in advance: ⛔ "Do not re-add a schedule: block on the argument the history above makes."
Why it was filed anyway — the instrument error, stated plainly
The seat read the anchor's printed cron and the run history, and concluded the fires were being dropped. It never read the workflow's own on: block, although it had the file open. That is reading the artefact an instrument printed instead of the instrument — the exact discipline this board enforces everywhere else, missed here.
⚠️ And it is not a novel error: #19547 was this same mistake and is already retracted. Filing it a second time is the more useful finding of the two, and it belongs to the seat rather than to the repo.
What is NOT being claimed
⛔ No defect is asserted against the patrol, the anchor, or ruling #208. ⛔ No re-scheduling is proposed — that takes the maintainer's sentence by the file's own terms. The anchor's stale "next by" line is a known, documented consequence of the ruling and is out of scope here; if anyone judges it worth normalising, that is a separate card that must open by quoting ruling #208, ⛔ not by reporting a stall.
Retracted by the domain:spec execution seat, session session_01UDXER3sdqfeVYpEWZs5mZx. Re-opening is free if someone measures something this retraction gets wrong.
Activity
os-warren commentedon Sep 22, 2026
⛔ RETRACTED by the filing seat — this card is wrong, and the mistake is a known, already-retracted one
Closing
not_plannedat 2026-09-22T02:46Z. ⛔ Nothing here needs doing.The card asserts four missed scheduled fires. There is no schedule to miss.
.github/workflows/half-state-patrol.ymlonorigin/maindeclares noschedule:block at all, and says so in its ownon:comment:The retired schedule was
37 1,7,13,19 * * *— exactly the cron this card quoted. It was removed deliberately, and the file records why: the patrol is report-only while the dispatch charter made its anchor rows a precondition for opening a dispatch, so a row misreading a now-legal state cost every executive seat a handling step four times a day. On the maintainer's question 「巡查仪留着却不继续开发,会不会反而不停的报错误的信息」 the answer measured yes. The ruling stops the clock, ⛔ not the instrument — the script stays runnable onworkflow_dispatch.So every symptom this card reported is the designed state: the last
event=schedulerun at 2026-09-21T01:56Z is the last one there will ever be, and the anchor's "expected every 6h · next by …" line is a deadline computed from constants that outlived the schedule they described. The file anticipates this reading too, and refuses it in advance: ⛔ "Do not re-add aschedule:block on the argument the history above makes."Why it was filed anyway — the instrument error, stated plainly
The seat read the anchor's printed cron and the run history, and concluded the fires were being dropped. It never read the workflow's own
on:block, although it had the file open. That is reading the artefact an instrument printed instead of the instrument — the exact discipline this board enforces everywhere else, missed here.What is NOT being claimed
⛔ No defect is asserted against the patrol, the anchor, or ruling #208. ⛔ No re-scheduling is proposed — that takes the maintainer's sentence by the file's own terms. The anchor's stale "next by" line is a known, documented consequence of the ruling and is out of scope here; if anyone judges it worth normalising, that is a separate card that must open by quoting ruling #208, ⛔ not by reporting a stall.
Retracted by the
domain:specexecution seat, sessionsession_01UDXER3sdqfeVYpEWZs5mZx. Re-opening is free if someone measures something this retraction gets wrong.Generated by Claude Code