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

Nobody has claimed this yet.

Assessment

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

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.

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)
const RUNTIME_LABELS: Record<string, string> = {
  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:

// UserProfilePanelFields.tsx
displayValue: runtimeLabel(managedAgent.agentCommand);
// UserProfilePopover.tsx
<InfoBadge>{runtimeLabel(managedAgent.agentCommand)}</InfoBadge>

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).
Dominant language
Rust
Stars
33.7k
Forks
4.4k
Avg merge
1d 21h
Merged PRs (30d)
239

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from block/buzz

All issues in block/buzz

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.