buzz-sprig container does not include Goose binary but UI allows Goose harness selection for k3s agents
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Problem
When creating a k3s agent via the Buzz desktop app with "Goose" as the agent harness, the agent deploys successfully and the pod shows as Running, but the agent never sends text replies — only emoji reactions.
There is no warning in the UI about this. The failure is silent.
## Root Cause
The `buzz-sprig` container image does not include the Goose binary.
`BUZZ_ACP_AGENT_COMMAND` is set to `goose` by the Goose harness, but `goose` does not exist inside the container.
Pod logs show:
```
agent failed to spawn: IO error: No such file or directory (os error 2)
```
Binaries available in buzz-sprig (`/usr/local/bin/`):
```
buzz, buzz-acp, buzz-agent, buzz-dev-mcp, sprig, sprig-entrypoint
```
Additionally, `BUZZ_ACP_AGENT_COMMAND` is a reserved env var and cannot be overridden via the desktop app environment variables UI — so there is no workaround from the UI side without recreating the agent.
## Steps to Reproduce
1. Create a k3s agent from Buzz desktop app
2. Select Agent harness: **Goose**
3. Set Run on: **kubernetes**
4. Use image: `ghcr.io/block/buzz-sprig@sha256:`
5. Deploy the agent
6. Send a message to the agent — it reacts with emoji but never sends a text reply
## Fix (workaround)
Use **Buzz Agent** harness instead of Goose — `buzz-agent` binary exists in the container and works correctly.
## Expected Behavior
One of the following:
1. Remove Goose as a selectable harness option when **Run on: kubernetes** is selected, OR
2. Include Goose in the `buzz-sprig` container image, OR
3. Show a clear error in the UI when the selected agent command binary is not found in the container
Contributor guide
Research direction
Start with the desktop app's harness-selection flow for Kubernetes and the buzz-sprig image configuration, then trace how BUZZ_ACP_AGENT_COMMAND is set. Verify the selected command exists in the container and that a missing command produces a clear UI outcome; done means Goose no longer deploys silently broken.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- desktop, devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100