fix(event-driven): orphaned-lease release + durable-event recheck + paginated runs #345

Merged
conductor merged 3 commits from deadline-return-fix into master 2026-09-18 17:28:04 +01:00
3 Commits
Author SHA1 Message Date
Nick fd9e1bffb8 chore(deps): apply regenerated lock (multidict 6.9.0)
CI Pipeline / lint (pull_request) Successful in 41s
CI Pipeline / canary (pull_request) Successful in 43s
CI Pipeline / best-practices (pull_request) Successful in 6s
CI Pipeline / documentation (pull_request) Successful in 6s
CI Pipeline / gitea-offline (pull_request) Successful in 16s
CI Pipeline / type-check (pull_request) Successful in 36s
CI Pipeline / lint (push) Successful in 44s
CI Pipeline / best-practices (push) Successful in 6s
CI Pipeline / documentation (push) Successful in 5s
CI Pipeline / canary (push) Successful in 39s
CI Pipeline / gitea-offline (push) Successful in 18s
CI Pipeline / type-check (push) Successful in 32s
deploy / deploy (push) Skipped
CI Pipeline / unit-tests (pull_request) Successful in 3m54s
Spec gate (headless) / spec-gate (pull_request) Successful in 15s
CI Pipeline / required-checks (pull_request) Successful in 3s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 12s
CI Pipeline / unit-tests (push) Successful in 3m54s
CI Pipeline / required-checks (push) Successful in 3s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 9s
Auto-version and Release / release (pull_request) Failing after 1m11s
2026-09-18 17:18:30 +01:00
Nick 631426763e chore(deps): re-lock requirements-ci.txt (upstream multidict 6.9.0) — dep-lock gate
CI Pipeline / best-practices (push) Successful in 11s
CI Pipeline / lint (push) Failing after 34s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / canary (push) Successful in 39s
CI Pipeline / best-practices (pull_request) Successful in 8s
CI Pipeline / documentation (pull_request) Successful in 15s
CI Pipeline / canary (pull_request) Successful in 43s
CI Pipeline / gitea-offline (pull_request) Successful in 18s
CI Pipeline / type-check (pull_request) Successful in 31s
CI Pipeline / type-check (push) Successful in 30s
CI Pipeline / unit-tests (push) Successful in 4m4s
CI Pipeline / unit-tests (pull_request) Successful in 4m25s
CI Pipeline / gitea-offline (push) Successful in 22s
deploy / deploy (push) Skipped
Spec gate (headless) / spec-gate (pull_request) Successful in 23s
CI Pipeline / required-checks (push) Failing after 2s
CI Pipeline / lint (pull_request) Failing after 34s
CI Pipeline / required-checks (pull_request) Failing after 3s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 10s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 9s
2026-09-18 17:17:52 +01:00
Nick 09cd18ad54 fix(event-driven): orphaned-lease release + durable-event recheck on re-arm + paginated runs fetch (all pages) + behavioral deadline tests
CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 6s
CI Pipeline / lint (push) Failing after 33s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / canary (push) Successful in 35s
CI Pipeline / type-check (push) Successful in 28s
CI Pipeline / gitea-offline (push) Successful in 18s
Auto-label / auto-label (pull_request) Successful in 6s
CI Pipeline / best-practices (pull_request) Successful in 10s
CI Pipeline / documentation (pull_request) Successful in 9s
CI Pipeline / canary (pull_request) Successful in 37s
CI Pipeline / gitea-offline (pull_request) Successful in 18s
CI Pipeline / type-check (pull_request) Successful in 33s
deploy / deploy (push) Skipped
CI Pipeline / lint (pull_request) Failing after 45s
CI Pipeline / unit-tests (push) Successful in 3m56s
CI Pipeline / required-checks (push) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 5s
CI Pipeline / unit-tests (pull_request) Successful in 4m0s
CI Pipeline / required-checks (pull_request) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 5s
ROOT CAUSE (Defect A, 9db239f + 51416aa deadline_pending->success):
ci_event_wait exited at deadline without releasing the daemon lease.
The orphaned lease blocked the daemon from writing resume tokens to
the FIFO for re-registered waits — so completion events that WERE
persisted (10:43:01 for 9db239f, 12:01:49 for 51416aa) could never be
delivered to a later waiter. Additionally: internal re-arms were
timer-blind (no durable-event recheck), and _fetch_runs used a single
50-run page (scheduled merge-robot floods push older SHAs past it).

FIXES:
- lease release in run() finally block (orphan prevention)
- durable-event recheck on every internal re-arm
- _fetch_runs paginates up to 4 pages, collecting all matches
- deploy_qualify --sha flag (explicit sha, env masked)
- model sha = hint; stored target wins on mismatch
- behavioral tests: terminal-before-deadline, nonterminal-never-returned
2026-09-18 17:09:40 +01:00