Skip to content

fix(acp): acknowledge consumed owner commands in channel - #3877

Open
tcballard wants to merge 1 commit into
block:mainfrom
tcballard:tcballard/owner-command-acknowledgements
Open

fix(acp): acknowledge consumed owner commands in channel#3877
tcballard wants to merge 1 commit into
block:mainfrom
tcballard:tcballard/owner-command-acknowledgements

Conversation

@tcballard

@tcballard tcballard commented Jul 31, 2026

Copy link
Copy Markdown

Summary

Implements the acknowledgement-only slice of #3711, as part of the ordered workstream tracked by #3863.

Adds:

  • visible channel acknowledgements when an owner consumes !cancel, !rotate, or !shutdown;
  • state-specific wording for active, idle, cached-session, and empty-session cases;
  • focused ACP regression tests.

No desktop UI changed, so no screenshots are included.

Scope

Included

Excluded

Product / Architecture Decisions

  • Generalized the existing failure-notice publishing path from post_failure_notice to post_notice.
  • Reused the existing ThreadTags and kind-9 channel-notice path used by failure notices and the owner !model acknowledgement path.
  • Shutdown awaits the notice publish attempt before sending the shutdown signal; cancel and rotate use the existing best-effort spawned notice pattern.
  • Buzz remains responsible for channel visibility and auditability. No OEXL-specific protocol or settlement semantics were added.

User-Facing Contract

Command Situation Notice
!rotate Turn active Cancelled the current turn — the next one starts from a fresh session.
!rotate Cached session, idle Session rotated — the next turn starts fresh.
!rotate No cached session No session to rotate — the next turn already starts fresh.
!cancel Turn active Cancelled the current turn.
!cancel Idle Nothing to cancel — no turn in flight.
!shutdown Any Shutting down.

Verification

Ran

  • cargo test -p buzz-acp owner_control_command_tests — 6 passed.
  • rustfmt --edition 2021 crates/buzz-acp/src/lib.rs crates/buzz-acp/src/pool.rs --check — passed.
  • cargo clippy -p buzz-acp --all-targets -- -D warnings — passed.
  • ./scripts/run-tests.sh unitbuzz-core (237 passed) and buzz-auth (45 passed) completed before the broader run was stopped during a local buzz-cli compile stall.

Not completed locally

  • The whole-workspace just fmt-check / just clippy / just test-unit / just ci sequence was not completed because the first-run workspace formatter/toolchain stalled in the local environment. The focused ACP gates above passed; CI should provide the full repository gate.

Covered

  • Active and idle !cancel.
  • Active, cached-idle, and empty !rotate.
  • !shutdown acknowledgement.
  • Notice text and helper delegation remain isolated from desktop/mobile UI.

Review Path

  1. crates/buzz-acp/src/pool.rs notice helper generalization.
  2. crates/buzz-acp/src/lib.rs owner-command acknowledgement sequencing.
  3. Focused owner-control regression tests.

Notes For Reviewer

This is intentionally the smallest channel-notice contribution for #3711 and the first ordered contribution in #3863. Command-palette/autocomplete presentation remains deferred to its separate UI work. No desktop UI changed, and no OEXL-specific code or settlement semantics were added.

Signed-off-by: Tom Ballard <tom@armytage.co>
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