Skip to content

feat(acp): surface error-class outcomes to the activity feed only, never the channel#1010

Merged
wpfleger96 merged 2 commits into
mainfrom
duncan/visible-timeout-death-notice
Jun 12, 2026
Merged

feat(acp): surface error-class outcomes to the activity feed only, never the channel#1010
wpfleger96 merged 2 commits into
mainfrom
duncan/visible-timeout-death-notice

Conversation

@wpfleger96

@wpfleger96 wpfleger96 commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Error-class turn outcomes — agent exits, timeouts, transport errors, and application errors — surface to the agent/observer activity feed and never post a channel message.

Policy

  • Never the channel. No death/timeout/error is posted as a channel-level message. handle_prompt_result no longer takes a relay handle, so it has no way to send one — re-introducing a channel notice would require re-adding that parameter, which the new test's construction refuses to compile against. Channel silence is enforced structurally, not by assertion.
  • Always the feed. Every error branch emits exactly one turn_error observer event via emit_turn_error, routed to the activity panel.

Changes

  • crates/buzz-acp/src/lib.rs: drop the relay parameter from handle_prompt_result and its call site. Add error_outcome_emission_tests covering all error branches — AgentExited, Timeout, a transport-class Error (AcpError::Io), and an application-class Error (AcpError::IdleTimeout) — each asserting exactly one feed event. The runtime assertion goes red if any branch drops its emit_turn_error call.
  • crates/buzz-acp/src/relay.rs: remove publish_death_notice and build_death_notice (zero callers after the channel-notice call sites were removed), the now-unused RelayError::EventBuild variant, and the three builder unit tests plus their make_test_relay helper.

publish_death_notice and build_death_notice no longer exist anywhere in the tree.

@wpfleger96 wpfleger96 force-pushed the duncan/visible-timeout-death-notice branch from 9d8e32a to 0550ddd Compare June 12, 2026 18:18
@wpfleger96 wpfleger96 changed the title fix(acp): post visible channel notice on IdleTimeout and HardTimeout fix(acp): remove channel-level death notices from handle_prompt_result Jun 12, 2026
@wpfleger96 wpfleger96 marked this pull request as draft June 12, 2026 18:52
@wpfleger96 wpfleger96 changed the title fix(acp): remove channel-level death notices from handle_prompt_result feat(acp): surface error-class outcomes to the activity feed only, never the channel Jun 12, 2026
@wpfleger96 wpfleger96 marked this pull request as ready for review June 12, 2026 21:31
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 and others added 2 commits June 12, 2026 17:42
Death/timeout notices are debugging signals that belong in the activity
feed (emit_turn_error/observer), not as regular channel messages. Remove
all publish_death_notice calls from handle_prompt_result — the observer
path already fires for every error outcome and routes to the activity
panel.

Removes the thread_root extraction that was only consumed by these calls.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
After the channel-notice call sites were removed, publish_death_notice
and build_death_notice in relay.rs had zero callers — dead public API
that left a path for re-introducing channel notices. Remove them, their
EventBuild error variant, and the three builder unit tests.

Add error_outcome_emission_tests pinning the policy that error-class
outcomes surface only to the activity feed: handle_prompt_result takes no
relay handle (channel silence is structural — re-adding a notice would
have to re-add the parameter), and each error branch must emit exactly
one turn_error observer event (asserted at runtime, red if any branch
drops emit_turn_error).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
@wpfleger96 wpfleger96 force-pushed the duncan/visible-timeout-death-notice branch from 62b97ba to 05f17da Compare June 12, 2026 21:45
@wpfleger96 wpfleger96 merged commit 6db9051 into main Jun 12, 2026
26 checks passed
@wpfleger96 wpfleger96 deleted the duncan/visible-timeout-death-notice branch June 12, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant