Restore loop/cron dispatcher delegation with host-owned occurrence mandates #339
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/cron-dispatch-mandate"
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?
Incident
Peter native Linux .103 hourly /loop overview fired 08:45 UTC but dispatch submit failed because taskId was omitted and recurring turns lacked a host task. No fresh ADO/Notion/GitHub queries occurred.
Fix
Assign fresh durable mandates to non-worker initial loop/cron/heartbeat/goal/API turns before execution. Never inherit previous session task, expiry or held legacy work; scheduled occurrences do not overwrite operator focus. Keep continuation/wait identity and child ownership exact. Dispatcher submitCurrent snapshots active host task so plugin need not rely on model ID copying; explicit wrong IDs still reject. Held legacy tasks cannot provide checkpoints. Pin Plugins #87.
Validation
Full suite 1873 passed / one optional skip. Typecheck/build/diff-check passed. Regressions exercise real Scheduler, loop-like same-session repeated occurrences, bound model tool with omitted taskId, exact assertions, reply routing and historical recovery holds.
Operator requires functional recurring work, not a weakened context fence. Rollout must restore scheduled admission without clearing history or replaying old tasks.
Final exact head: native Core CI green. Complete local suite rerun: 1873 passed / one optional skip / zero failures. One preceding run hit two unrelated subprocess startup/timing fixtures; both passed isolated and in final complete rerun. Fifteen plugin dispatcher tests passed; native Plugin compatibility CI green; Plugins #87 merged. Real Scheduler plus loop/heartbeat/goal/API occurrence tests prove host current binding with omitted model taskId, wrong-ID rejection, distinct occurrence IDs, preserved operator focus and held legacy fence. Delivery follows published immutable shared release, then owner rollout; no fabricated source query results.
DEPLOYED AND REAL SCHEDULED OCCURRENCE VERIFIED on live Peter Linux .103: published 0.1.235 /
17c28ef, immutable digest sha256:7cd0c1970550f0bf4c7e017ff33f692fb0f45ed69e55cac133407cb2871e756a, PID 1147175 exact executable/API identity checked. Actual enabled hourly /loop fired at 09:45 UTC without schedule edits; fresh task 0bef19bf-2225-467f-8415-1602733277cf; dispatcher accepted overview-1045-1111 as c3f830c8-fe16-46a6-a319-9050d92445b7, running with exact task dependency at 09:46:38 UTC. Original missing-taskId failure did not recur. All 405 held historical task records unchanged. Installed-code synthetic test separately passed TWO loop occurrences plus real Scheduler via plugin without model taskId, distinct host IDs, wrong explicit ID rejection and legacy hold. Full suite 1873 passed / one optional skip. This verifies the real scheduled admission/execution path, NOT completion of all ADO/Notion/GitHub queries; overview worker still running at verification. Core #339, lock #342, Plugins #87, native desired Overlays #348 all merged after green CI. Details: notes/peter-recurring-dispatch-repair-2026-11-11.md; private live-loop receipt ~/.cache/hayate-maintenance/cron-dispatch-repair/live-loop.json.FLEET DELIVERY COMPLETED, live readback 2026-11-11 10:55:34 UTC. All ELEVEN observed active agent installations now actually run 0.1.236 / exact Core
9232c229f2: Che, Randy, Minato, Kakashi, SaaStaq Moist-Hayate, Odo, Shikamaru, Peter Linux .103, Severus Linux .107, Akira and separate native macOS Karsten. All six K8s deployments Ready with exact digest sha256:4a65671a60c7b43e1f8a41c0ee678715c7790264320250bbc0c21a3ffc97d70d. All five native PID/executable/release pointers and authenticated API identities checked. Actual installed-code smoke independently PASSED on every installation: two loop occurrences plus real Scheduler and model plugin without taskId; distinct host mandates; wrong explicit ID denied; legacy hold retained. Production ledgers on all eleven: no held task active, no held worker running, no held generated recurring input executable. No historic task bulk resume/replay, credentials/schedule edits or forced kill. Six remaining 0.1.234 installations were not left to assumed eventual promotion. Owner PRs Racktaq #668, SaaStaq #122, Overlays #354 merged. SaaStaq has no API key configured, so its evidence is Ready/process/build/compiled-code execution, NOT claimed authenticated API readback. Severus used a new root-owned approved payload root (old tree untouched), verified shared OCI extraction transferred because isolated host has no Docker, unprivileged executable probes and existing checkpoint owner; future new-image extraction provider there remains a separately documented pre-existing limitation. Business-source completion of every production cron is NOT inferred from isolated smoke. Details notes/cron-context-fleet-delivery-2026-11-11.md; private complete per-installation evidence ~/.cache/hayate-maintenance/cron-fleet-delivery/verified-fleet.json.