block / block/buzz

feat(desktop): slash-command autocomplete in composer from ACP available_commands_update (follow-up to #919)

Open
#2,528 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.