Stop autonomous resurrection of historical tasks at recovery boundaries #337

Merged
karsten merged 2 commits from fix/stale-task-reactivation into main 2026-11-11 08:18:55 +00:00
Owner

Operator issue

Old tasks reappear across agents after rollout/recovery. Read-only .103 Peter state had 43 historical independent admissions sharing one unknown child snapshot. Unknown ownership was allowed to authorize model-selected independent work. Elapsed legacy polls also became active again.

Repair

  • Unknown child provenance blocks independent admissions, including already-saved permits.
  • Durable host enrollment boundary before startup: preserve genuine interrupted user work/exact running children; hold other unresolved history.
  • Preserve held generated inbox under heldRecoveryInputs, never replay it as fresh work.
  • Held tasks fenced at startup/ticks/queue/model selection/result continuation.
  • Expired poll without running child holds instead of reactivating.
  • Authenticated exact-task /task-resume for deliberate re-enrollment; no budget reset, expiry extension or archive replay.

Validation

Full suite 1848 passed / one optional skip / zero failures. Typecheck/build/diff-check passed. Dedicated negative regressions reproduce old behavior and prove durable held queues/restart, scoped recovery, genuine user replay, explicit resume and stop/deadline/budget/save fences.

Rollout

Operator explicitly requested completed repair and rollout. Use immutable published tested main artifact and platform owners. Historical evidence is retained, not bulk cancelled/marked completed or removed. Live Peter is native Linux 192.168.1.103, NOT legacy Value/.122.

## Operator issue Old tasks reappear across agents after rollout/recovery. Read-only .103 Peter state had 43 historical independent admissions sharing one unknown child snapshot. Unknown ownership was allowed to authorize model-selected independent work. Elapsed legacy polls also became active again. ## Repair - Unknown child provenance blocks independent admissions, including already-saved permits. - Durable host enrollment boundary before startup: preserve genuine interrupted user work/exact running children; hold other unresolved history. - Preserve held generated inbox under heldRecoveryInputs, never replay it as fresh work. - Held tasks fenced at startup/ticks/queue/model selection/result continuation. - Expired poll without running child holds instead of reactivating. - Authenticated exact-task /task-resume for deliberate re-enrollment; no budget reset, expiry extension or archive replay. ## Validation Full suite 1848 passed / one optional skip / zero failures. Typecheck/build/diff-check passed. Dedicated negative regressions reproduce old behavior and prove durable held queues/restart, scoped recovery, genuine user replay, explicit resume and stop/deadline/budget/save fences. ## Rollout Operator explicitly requested completed repair and rollout. Use immutable published tested main artifact and platform owners. Historical evidence is retained, not bulk cancelled/marked completed or removed. Live Peter is native Linux 192.168.1.103, NOT legacy Value/.122.
fix: fence historical task reactivation and preserve held recovery inputs
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 1m58s
e75235d449
fix: fence late-result enrollment of terminal pre-upgrade tasks
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 1m56s
417577882a
Author
Owner

Final exact head 4175778: full suite 1849 passed, one optional skip, zero failures. Native decision-interface CI green. Includes terminal legacy-result fence as well as retained generated queues, one-time host enrollment, authenticated explicit resume and no poll-expiry reactivation. Operator requested completed fleet rollout, including live Peter .103. Existing ongoing exact child work preserved; historical generated inputs are retained but not executed.

Final exact head 4175778: full suite 1849 passed, one optional skip, zero failures. Native decision-interface CI green. Includes terminal legacy-result fence as well as retained generated queues, one-time host enrollment, authenticated explicit resume and no poll-expiry reactivation. Operator requested completed fleet rollout, including live Peter .103. Existing ongoing exact child work preserved; historical generated inputs are retained but not executed.
Author
Owner

DELIVERED: 0.1.234 / 52ac9d4 / immutable sha256:b32a4948c9915c4aa930229d610c5eca05ac76c8cb6a7d824dc9827fc5761781 live and independently verified on all TEN observed active installations: Che, Randy, Minato, Kakashi, SaaStaq Moist, SaaStaq Odo, Shikamaru, live Peter native Linux .103, Akira and separate native macOS Karsten. Native process/pointer/API identities checked; all six K8s workloads Ready on exact digest. Installed compiled-code historical permit/queue smoke passed on all ten. Live stored-state invariants passed: no held task active, no held worker running, no held generated input in executable pending. Snapshot examples: Peter 215 held nonterminal tasks / 17 held workers; Akira 194 / 62. History/checkpoints retained, true ongoing exact-owner work preserved. Full integrated suite 1865 passed / one optional skip. Owner activation used supported checkpoint restart where idle unavailable, explicitly NOT represented as an idle lease; no SIGKILL/global cancellation/data cleanup. Detailed receipt ~/.cache/hayate-maintenance/stale-task-delivery/verified-fleet.json and project notes/stale-task-recovery-delivery-2026-11-11.md. Kubernetes Karsten intentionally remains replicas 0; absent legacy installations not recreated. Core #338 complements #337 with direct historical-worker automatic retry fence.

DELIVERED: 0.1.234 / 52ac9d4 / immutable sha256:b32a4948c9915c4aa930229d610c5eca05ac76c8cb6a7d824dc9827fc5761781 live and independently verified on all TEN observed active installations: Che, Randy, Minato, Kakashi, SaaStaq Moist, SaaStaq Odo, Shikamaru, live Peter native Linux .103, Akira and separate native macOS Karsten. Native process/pointer/API identities checked; all six K8s workloads Ready on exact digest. Installed compiled-code historical permit/queue smoke passed on all ten. Live stored-state invariants passed: no held task active, no held worker running, no held generated input in executable pending. Snapshot examples: Peter 215 held nonterminal tasks / 17 held workers; Akira 194 / 62. History/checkpoints retained, true ongoing exact-owner work preserved. Full integrated suite 1865 passed / one optional skip. Owner activation used supported checkpoint restart where idle unavailable, explicitly NOT represented as an idle lease; no SIGKILL/global cancellation/data cleanup. Detailed receipt ~/.cache/hayate-maintenance/stale-task-delivery/verified-fleet.json and project notes/stale-task-recovery-delivery-2026-11-11.md. Kubernetes Karsten intentionally remains replicas 0; absent legacy installations not recreated. Core #338 complements #337 with direct historical-worker automatic retry fence.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/core!337
No description provided.