Repository navigation
Description
Summary
Buzz Desktop v0.5.2 has two bugs that prevent OpenCode (and other ACP-based agents) from working properly as agents.
Bug 1: agent_args silently reset to [] by Buzz Desktop
Observed behavior:
When configuring an agent to use OpenCode via the Buzz Desktop UI, the agent_args field in managed-agents.json keeps getting silently reset to [] (empty array) after being set to ["acp"].
Impact:
OpenCode requires the acp subcommand to start in ACP server mode (e.g., opencode acp). Without it, Buzz Desktop launches opencode with no arguments, which starts in interactive mode instead of ACP mode. buzz-acp waits 60s and times out with:
agent initialize failed: Request timeout — agent did not respond within 60s
Root cause:
Buzz Desktop's internal state management overrides the agent_args value in managed-agents.json on every restart/sync, discarding any user-set value.
Expected behavior:
When a user explicitly sets agent_args through the UI or directly in the config file, Buzz Desktop should preserve that value.
Workaround discovered:
Replace the opencode binary with a wrapper script that detects buzz-acp as its parent process and auto-injects the acp argument:
#!/bin/bash
if [ \$# -eq 0 ] || { [ \$# -eq 1 ] && [ -z "\$1" ]; }; then
PARENT_NAME=\$(ps -p \$PPID -o comm= 2>/dev/null)
case "\$PARENT_NAME" in
*buzz*)
exec /path/to/opencode-real acp
;;
esac
fi
exec /path/to/opencode-real "\$@"Bug 2: missing_binary unknown variant in setup payload
Observed behavior:
When provider and/or provider_binary_path are set in the agent config, buzz-acp crashes with:
Error: setup payload error: malformed BUZZ_ACP_SETUP_PAYLOAD: unknown variant `missing_binary`, expected one of `normalized_field`, `env_key`, `cli_login`, `cli_config_invalid`, `git_bash`
Root cause:
The setup payload format sent by Buzz Desktop or the relay contains a missing_binary variant that the buzz-acp binary (v0.5.2) does not recognize. This suggests a version mismatch — buzz-acp's setup payload parser does not include missing_binary in its valid variants enum.
Environment
- Buzz Desktop version: 0.5.2 (bundle xyz.block.buzz.app)
- OS: macOS (arm64)
- Agent runtime: OpenCode 1.18.9-fork
- Relay: WebSocket relay (tested with
wss://kamil22.communities.buzz.xyz)
Steps to Reproduce (Bug 1)
- Install Buzz Desktop 0.5.2 and OpenCode CLI
- Create a team with agents (e.g., Fizz, Bumble, Honey personas)
- Configure an agent to use OpenCode runtime via UI
- Edit
managed-agents.jsonto setagent_args: ["acp"] - Restart Buzz Desktop or toggle the agent
- Observe that
agent_argsreverts to[]
Steps to Reproduce (Bug 2)
- In
managed-agents.json, setproviderand/orprovider_binary_pathon an agent - Toggle the agent on
- Observe the
missing_binaryerror in agent logs
Suggested Fixes
-
For Bug 1: Ensure Buzz Desktop preserves
agent_argswhen syncing agent configuration. The args array should only be modified through intentional user action. -
For Bug 2: Add
missing_binaryto the valid variants enum inbuzz-acp's setup payload parser, or ensure the relay does not emit this variant to older clients.
Activity
iroiro147 commentedon Jul 31, 2026
Cross-reference for reviewers — both halves of this issue appear to be covered by open PRs, so likely no independent fix needed here.
Bug 1 (
agent_argssilently[]→ interactive mode → 60s timeout): Root cause isopencodemissing from thedefault_agent_argsidentity table used by the Tauri spawn path (desktop/src-tauri/src/managed_agents/discovery.rs). Open PR #3706 already adds exactly"opencode" => Some(vec!["acp"])to that table — the same fix class as #3793 (omp) / #3458 (grok). That preserves the user's "no args →acp" intent without needing the wrapper-script workaround.Bug 2 (
missing_binaryunknown variant): Buzz Desktop serializesRequirement::MissingBinaryintoBUZZ_ACP_SETUP_PAYLOAD, butbuzz-acpv0.5.2'sSetupPayloadhas no matching variant. Open PR #3598 adds themissing_binaryvariant + rendering tocrates/buzz-acp/src/setup_mode.rsdirectly.Suggest holding this issue for #3706 + #3598 to land rather than duplicating effort. cc @m-faizan-tariq
jimparkins commentedon Aug 3, 2026
Confirming this on Oh My Pi (
omp) as well — same failure, same 60s timeout — and I think I can pin the root cause, which neither this issue nor #3457 quite locates.Environment: Buzz Desktop 0.5.x, macOS arm64,
ompat/opt/homebrew/bin/omp, relay = a hosted community.Symptom (identical to yours):
The
EPIPEis just the aftermath —ompwriting to a pipebuzz-acphas already dropped after giving up.Root cause
Buzz holds the correct value in one place and never consults it in the other.
desktop/src-tauri/src/managed_agents/discovery/presets.rs— correct:desktop/src-tauri/src/managed_agents/discovery.rs:466— the fallback that actually runs:So any preset outside goose / the codex-claude family gets no args whenever
agent_argsis empty, and launches in interactive mode instead of ACP. That covers this issue (OpenCode), #3457 (Grok Build) and Oh My Pi — one bug, three reports.A fix might be to have
default_agent_args()fall back to thePresetHarness.argsfor the matching preset, rather than maintaining a second hardcoded list that has to be kept in sync.Workaround that worked here
Setting
agent_argsexplicitly in~/Library/Application Support/xyz.block.buzz.app/agents/managed-agents.json(quit Buzz first — it rewrites on exit):After relaunch the handshake completes:
This is safe for
ompspecifically becausedefault_agent_args("omp")returnsNone, sonormalize_agent_argsreturns the stored value verbatim. Note the branch atdiscovery.rs:489— a lone"acp"is stripped whendefault_argsisSome(vec![]), so the same workaround would not hold for the codex/claude family.FWIW I have not yet seen the reset-to-
[]behaviour you describe — the value has survived a relaunch and ~25 minutes of use here — so that part may be narrower than the missing-args bug itself.Also worth noting:
BUZZ_ACP_AGENT_ARGScannot be used as a workaround viaenv_vars, since it is on the reserved list inmanaged_agents/env_vars.rs(code-execution surface) and is rejected on save.jimparkins commentedon Aug 3, 2026
Still reproduces on Buzz Desktop 0.5.4 (released 2026-08-03). Verified with a controlled test — one agent changed, two left as controls, same machine, same relaunch:
agent_argsinmanaged-agents.jsonagent_cmd[]/opt/homebrew/bin/omp— noacp["acp"]/opt/homebrew/bin/omp acp["acp"]/opt/homebrew/bin/omp acpSo the missing-args behaviour is entirely down to
agent_argsbeing empty; nothing in 0.5.4 supplies the preset's declared args as a fallback.I had hoped #3580 ("fix(config-bridge): add harness-definition env tier", shipped in 0.5.4) might cover this, since a harness-definition tier sounds like the right home for a harness's default args. It does not — that change is about config-resolution precedence and origin reporting, and does not make
default_agent_args()consultPresetHarness.args.desktop/src-tauri/src/managed_agents/discovery.rsis unchanged in the relevant part:default_agent_args()still matches only"goose"and the codex/claude family, returningNonefor everything else — whilediscovery/presets.rscontinues to declareargs: &["acp"]foromp,opencode, Cursor and others.One extra data point for the reset-to-
[]half of this report: my manually-setagent_args: ["acp"]survived the 0.5.3 → 0.5.4 in-place update and several app relaunches. So on this machine the values persist once set; the bug I can reproduce reliably is purely the missing default.hbdevv commentedon Aug 7, 2026
Confirmation on Desktop 0.5.6 (macOS arm64)
This issue still occurs on Buzz Desktop v0.5.6 with Grok-backed managed agents (Fizz / similar), not only OpenCode on 0.5.2.
Symptom. After stop/restart (or an app update), agents fail immediately with:
malformed BUZZ_ACP_SETUP_PAYLOAD: unknown variant
missing_binary, expected one ofnormalized_field,env_key,cli_login,cli_config_invalid,git_bashCause (observed). Desktop emits a setup requirement with surface: "missing_binary", but the bundled buzz-acp binary does not accept that variant, so setup mode exits instead of handling the condition. This is easy to trigger when the CLI is not on Desktop’s probe paths (e.g. ~/.local/bin, Homebrew) and the agent override is a bare command name such as grok.
Workaround.
After recovery, logs should show a normal buzz-acp starting line with an absolute agent_cmd and presence set to online, without the missing_binary parse error.
Request. Align Desktop and buzz-acp on the setup-payload schema (accept or stop emitting missing_binary), and avoid hard-failing setup mode when readiness checks fail.