fix(acp): add independent turn watchdog and close 15 follow-up findings - #6556
Open
michaelzeyuchen wants to merge 2 commits into
Open
fix(acp): add independent turn watchdog and close 15 follow-up findings#6556michaelzeyuchen wants to merge 2 commits into
michaelzeyuchen wants to merge 2 commits into
Conversation
added 2 commits
August 22, 2026 21:26
Signed-off-by: Michael Ze Yu Chen <michael@Michaels-MacBook-Pro.local>
…l-preserving, drain coverage, mixed-case gate, session-time consolidation, lazy_pool summary, incremental batch budget, BUZZ_AUTH_TAG warn, is_dm_channel background resolve) [skip-ultra-ship] Round 2 of the ultra-ship loop closed 15 confirmed findings across buzz-acp: R2-F3/F12 (observer byte-budget), R2-F4 (mixed-case respond_to gate), R2-F7/F8 (idle_timeout guard + helper consolidation), R2-F15 (lazy_pool in summary), R2-F1/F2 (requeue cancelled-events preservation), R2-F5 (cancelled side-store cap), R2-F9 (native-steer ack drop pin), R2-F6 (drain tests calling real drains), R2-F14 (BUZZ_ACP_EVENT_BUFFER=0 default fallback), R2-F10 (incremental batch budget), R2-F13 (parse_auth_tag warn), R2-F11 (is_dm_channel background resolve). Every fix has a RED-GREEN mutation proof. Pre-commit gate bypassed via [skip-ultra-ship] token per user-approved CHECKPOINT path; round-3 convergence ledger (13 new findings in buzz-auth/buzz-relay/buzz-core/buzz-search) preserved in the receipt at status CHECKPOINT for a follow-up branch. Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Michael Ze Yu Chen <michael@Michaels-MacBook-Pro.local>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related hardening changes to
buzz-acp, extracted from a longer forkbranch onto current
main.1. Independent turn watchdog. A managed-agent turn that stops producing
output without terminating currently holds its pool slot indefinitely — the
existing timeouts cover idle input, not a wedged in-flight turn. This adds a
watchdog armed per turn and disarmed on completion, so an abandoned turn is
aborted, its in-flight entry released, and its slot respawned rather than
leaked.
2. Fifteen follow-up fixes found while reviewing the above:
oldest on overflow instead of growing without limit
the cancelled side-store
respond_togate is case-insensitivelazy_poolreported in the summaryBUZZ_AUTH_TAGparse failure warns instead of failing silentlyis_dm_channelresolves in the backgroundBUZZ_ACP_EVENT_BUFFER=0falls back to the defaultTesting
From a clean checkout of this branch, with the Hermit toolchain active:
cargo fmt --check— cleancargo clippy --workspace --all-targets --all-features -- -D warnings— cleancargo test -p buzz-acp— 841 passed, 0 failedThat includes
watchdog_abort_releases_inflight_and_respawns_slot, which pinsthe watchdog behaviour described above.
Notes for reviewers
[skip-ultra-ship]tokens in the commit subjects are an artifact of alocal pre-commit tool and carry no meaning upstream. Happy to reword or
squash if preferred.
crates/buzz-acp(queue.rs) for managed-agentthreading. The overlap looks small, but flagging it so whichever lands second
can be rebased deliberately rather than hitting a surprise conflict.