fix(recovery): adopt ready-step policy once for saved assessments #374

Merged
karsten merged 1 commit from fix/dispatcher-assessment-policy-migration into main 2026-11-12 18:38:33 +00:00
Owner

Follow-up to #373 live activation: an existing deferred read-only step assessment can still carry a pre-policy hour-long reserved backoff, so the new independent later-work selection cannot run promptly. Add trusted optional recovery strategy hook and atomic once-only policy marker. Enroll CURRENT, enabled non-paused/non-stopped/non-expired plans only after ordinary recovery policy permits them AND the sequential strategy proves exact matching settled assessment/intent identity. Preserve attempt/correction budgets and all worker effects. Set only read-only assessment due time; never a productive execution/replay grant. Old held-legacy/approval question/manual pause/opaque intents are excluded. No live ledger edits or competing writers.

6 regression cases: current old one-hour checkpoint runs independent publication without replay, reload/idempotency, manual pause, held-legacy, expiry, opaque intent and disabled session guards. Full suite/typecheck/build pass (2054 passed, 1 existing skip); preserving normal protected merge and exact-head CI before native activation.

Follow-up to #373 live activation: an existing deferred read-only step assessment can still carry a pre-policy hour-long reserved backoff, so the new independent later-work selection cannot run promptly. Add trusted optional recovery strategy hook and atomic once-only policy marker. Enroll CURRENT, enabled non-paused/non-stopped/non-expired plans only after ordinary recovery policy permits them AND the sequential strategy proves exact matching settled assessment/intent identity. Preserve attempt/correction budgets and all worker effects. Set only read-only assessment due time; never a productive execution/replay grant. Old held-legacy/approval question/manual pause/opaque intents are excluded. No live ledger edits or competing writers. 6 regression cases: current old one-hour checkpoint runs independent publication without replay, reload/idempotency, manual pause, held-legacy, expiry, opaque intent and disabled session guards. Full suite/typecheck/build pass (2054 passed, 1 existing skip); preserving normal protected merge and exact-head CI before native activation.
fix(recovery): adopt ready-step assessment policy once for retained evidence
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 2m19s
2189659eaf
Author
Owner

LIVE VERIFIED: Both Shikamaru and Akira selected AND running Core 42c14cc577 via supported native owner. Authenticated API identity and software provenance checked; installed scheduling code and process paths verified. No config/ledger edits, SIGKILL, cancelled mandates or maintenance-created business writer.

Actual existing blocked execution 559dbf4d resumed under #373: persisted order [0,1,3,2], original blocked live-verification report retained, original stable publication intent step:559dbf4d-4a7b-4860-ac94-178c3c97734f:3:medium. Existing original worker ran real tools and published previously stranded test commit 938ae8e9ebdf2b84d645ab1f4a6cba8f3951e643 to the existing PR; remote head independently verified. This is not a claim that the genuine live dependency has been resolved or that the business PR is already merged. A newer parent timing decision woke its old retry while #374 was being prepared; the once-only migration is additionally covered by six old-hour-backoff recovery regressions, not falsely claimed as the cause of that particular wake.

Final #374 full suite 2054 passed / 1 existing skip / zero failures; typecheck/build pass. #373 and #374 exact-head Forgejo full-validation green before normal non-force merge. Real configured validator evaluated actual retained task read-only: independently selects source step 4 while refusing a required-approval bypass control. Evidence ~/.cache/hayate-maintenance/dispatcher-ready-step-scheduling/summary.json and original-writer-progress.json.

LIVE VERIFIED: Both Shikamaru and Akira selected AND running Core 42c14cc577bfe191ae971ff5f8b8836a5ef3bab9 via supported native owner. Authenticated API identity and software provenance checked; installed scheduling code and process paths verified. No config/ledger edits, SIGKILL, cancelled mandates or maintenance-created business writer. Actual existing blocked execution 559dbf4d resumed under #373: persisted order [0,1,3,2], original blocked live-verification report retained, original stable publication intent step:559dbf4d-4a7b-4860-ac94-178c3c97734f:3:medium. Existing original worker ran real tools and published previously stranded test commit 938ae8e9ebdf2b84d645ab1f4a6cba8f3951e643 to the existing PR; remote head independently verified. This is not a claim that the genuine live dependency has been resolved or that the business PR is already merged. A newer parent timing decision woke its old retry while #374 was being prepared; the once-only migration is additionally covered by six old-hour-backoff recovery regressions, not falsely claimed as the cause of that particular wake. Final #374 full suite 2054 passed / 1 existing skip / zero failures; typecheck/build pass. #373 and #374 exact-head Forgejo full-validation green before normal non-force merge. Real configured validator evaluated actual retained task read-only: independently selects source step 4 while refusing a required-approval bypass control. Evidence ~/.cache/hayate-maintenance/dispatcher-ready-step-scheduling/summary.json and original-writer-progress.json.
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!374
No description provided.