feat(desktop): slash-command autocomplete in composer from ACP available_commands_update (follow-up to #919)
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Problem
Agents already advertise their slash commands over ACP, but Buzz Desktop users have no way to discover them — typing `/` in the composer shows nothing, so you have to memorize and type full command names (`/ce-commit-push-pr`, `/ffrc-slide-forge`, …) by hand. For users whose agents load large skill libraries (hundreds of Claude Code skills/plugins), this makes the shipped slash pass-through hard to use in practice.
## Background — plumbing already exists
#919 (merged 2026-06-09) shipped slash-command pass-through to ACP connectors and explicitly deferred this piece:
> **No UI discovery/autocomplete yet** — `available_commands_update` is logged; persisting + surfacing it to the desktop composer is a follow-up.
So today `acp.rs` receives each agent's command list via the ACP `available_commands_update` session update and drops it after logging. This issue tracks the follow-up: persist that list and feed it to a composer autocomplete.
## Proposed UX
- Typing `/` at the start of the message — or after a leading `@AgentName` mention — opens a fuzzy-filterable dropdown, styled like the existing `@`-mention autocomplete.
- The list shows the commands the mentioned agent last advertised (name + one-line description from `available_commands_update`). With no mention yet, fall back to the union of commands from agents in the channel, grouped by agent.
- Enter/Tab inserts the command; typing continues to filter. Escape dismisses and leaves the literal `/` text.
- Commands persist per agent (last-received `available_commands_update`), so the list is available even before the agent's session is warm; refresh on each new update.
## Non-goals
- No command execution semantics in Buzz — #919's contract stands: connectors own parsing and execution; Desktop only helps compose the text.
- No new protocol work — the ACP update already carries name + description.
## Prior art
- Existing `@`-mention autocomplete in the composer (interaction pattern to reuse).
- Zed's ACP client surfaces `available_commands_update` as composer completions — same protocol, same shape.
Contributor guide
Research direction
Start with acp.rs, where available_commands_update is currently logged, and trace how the existing @-mention autocomplete is implemented in the composer. Persist each agent’s latest command name and description, feed the relevant commands into a fuzzy-filterable slash dropdown, and verify insertion, filtering, dismissal, mention scoping, and refresh behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100