fix(acp): wake quiet hosts for respawns and queued retries - #7459
Conversation
Signed-off-by: Logan Johnson <loganj@squareup.com>
🔐 Codex Security Review
Review SummaryOverall Risk: NONE
FindingsNo concrete security, correctness, or reliability findings were identified. Notes
Generated by Codex Security Review | |
|
@buzz-security-review e4b3cb9 |
Independent combined evidence (host + companion adapter) — exact heads, no source changesThis PR (host scheduling fix): independent host-only review of exact head Companion adapter PR (pic-suite): buzz://pr?id=7473c7f5bab6568886f33b56738613f3d4321ae22b727622f4859a4157ee9850&owner=efccd8ff4cab0cf2fc878d4ce288c336756c4fb2376ba98922002e6d5b7afd8a&d=pic-suite — repaired head Composed quiet-recovery results: each case (before retry eligibility, after eligibility, circuit reopen, normal typing) redelivered the original interrupted input exactly once with one durable worker run, one worker write, one terminal, one callback; startup children retire within bounded grace; the hard turn cap is preserved (the new progress path does not bypass it). Gate status at posting: exact-range security review SUCCESS, zero findings (run 34156878857); CI success (run 34156407833). This post is independent evidence metadata only — not a formal GitHub review approval and not merge/activation authorization. Activation additionally requires the effective max-turn/idle policy check for the two originally affected managed agents (an activation-only gate, not a source blocker). |
Problem
With
--no-presence --no-typing --heartbeat-interval 0, a crashed ACP transport can leave work queued indefinitely. Background respawn results were only drained beforeselect!; neither their arrival nor queue retry eligibility woke the host. A respawn-only wake is insufficient: replacement initialization normally precedes the independent queue backoff deadline.Change
mark_completepath.No reconnect/gateway changes or adapter retry engine. Based directly on main, independent of other ACP plumbing work. Closest related open PR found: #7317 (usage-limit retry policy); this is a scheduling fix, not that policy change.
Validation
cargo test -p buzz-acp: 920 library tests + 9 integration tests pass.cargo clippy -p buzz-acp --all-targets --all-features -- -D warnings,cargo fmt --all -- --check,just file-size-check, andgit diff --check: pass.801d23374a588fd1154bb3da8783f6dcc9084e15and upstream pi-acp 0.0.33. Loopback-only synthetic relay/provider; no live agent/config changes.3c7f288c60d67df78577b237e27c3dfc8831aaa1: expected failure at the 45-second callback bound.Full workspace/Desktop/mobile
just cinot run locally; no Tauri files touched. Relevant ACP package checks above are complete.Review / integration gate
Draft for independent review. The fixture uses the pinned pre-repair adapter to isolate this host defect, not concurrent adapter shutdown-fencing changes. Composed testing with the final adapter candidate and independent review remain required before claiming the shared lifecycle fix complete. No activation, merge, direct main push, or incident replay performed. Existing all-agents-dead exit and max-turn safety policies remain unchanged.