block / block/buzz

Profile UI renders raw `buzz-agent` id as runtime badge (RUNTIME_LABELS has no entry; catalog label unused)

Open Beginner friendly
#6,081 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## Describe the bug

The agent profile surfaces (popover and panel) map the agent's harness command to a friendly label via a hard-coded `RUNTIME_LABELS` map. The map has entries for `goose`, `claude-code`, `codex-acp`, and `aider` — but NOT for `buzz-agent`, the bundled default runtime. Agents running on `buzz-agent` therefore show the raw id `buzz-agent` in the profile badge, while agents on other runtimes get a polished product name ("Goose", "Claude Code", "Codex").

The label already exists in the backend runtime catalog (`AcpRuntimeCatalogEntry.label` = `"Buzz Agent"` in `desktop/src-tauri/src/managed_agents/discovery.rs`), so the frontend is duplicating (a subset of) catalog data instead of consuming it.

## To Reproduce

1. Install Buzz Desktop (reproduced on v0.5.14, also present on `main`).
2. Open the profile/popover of any built-in agent that runs on the bundled harness (e.g. Bumble/Fizz/Honey with the default deployment — `agent_command: "buzz-agent"` in `managed-agents.json`).
3. Observe the runtime badge.

Expected: a friendly label, e.g. "Buzz Agent" (as shown in the runtime picker and onboarding).
Actual: the raw id `buzz-agent`.

## Root cause

The map is duplicated in two files, both missing `buzz-agent`:

- `desktop/src/features/profile/ui/UserProfilePanelFields.tsx` (lines ~28-33)

```ts
const RUNTIME_LABELS: Record = {
goose: "Goose",
"claude-code": "Claude Code",
"codex-acp": "Codex",
aider: "Aider",
};

function runtimeLabel(command: string): string {
return RUNTIME_LABELS[command] ?? command;
}
```

- `desktop/src/features/profile/ui/UserProfilePopover.tsx` (lines ~56-64) — identical copy, same fallback.

Usage:

```ts
// UserProfilePanelFields.tsx
displayValue: runtimeLabel(managedAgent.agentCommand);
// UserProfilePopover.tsx
{runtimeLabel(managedAgent.agentCommand)}
```

Meanwhile the authoritative label is already available from the runtime catalog (`KnownAcpRuntime { id: "buzz-agent", label: "Buzz Agent", ... }` in `discovery.rs`), which the settings/harness surfaces already consume.

## Suggested fix

Either (a) add `"buzz-agent": "Buzz Agent"` to both maps as a minimal fix, or better (b) resolve the label from the ACP runtime catalog the frontend already fetches (`useAcpRuntimesQuery`), falling back to the raw command only for custom harnesses — removing the duplicated hard-coded list.

Related: #5597 (single manifest for capabilities and labels) would address the duplication more broadly.

## Environment

- Buzz Desktop v0.5.14 (Windows 11); verified against `main` (commit 69107dc).
- Any agent whose `agent_command` resolves to `buzz-agent` (the default runtime for built-in personas).

Contributor guide

Open the contributing guide

Research direction

Start with the duplicated RUNTIME_LABELS and runtimeLabel functions in desktop/src/features/profile/ui/UserProfilePanelFields.tsx and UserProfilePopover.tsx, then inspect the existing useAcpRuntimesQuery integration and the catalog entry in desktop/src-tauri/src/managed_agents/discovery.rs. Done means the built-in buzz-agent runtime displays “Buzz Agent” in both profile surfaces while custom commands still have a fallback label.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript
Domain
backend, frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.