Skip to content

fix(dev): stage real sidecar binaries in just dev and desktop-standalone - #3984

Open
brentvanw wants to merge 2 commits into
block:mainfrom
brentvanw:fix/dev-real-sidecar-binaries
Open

fix(dev): stage real sidecar binaries in just dev and desktop-standalone#3984
brentvanw wants to merge 2 commits into
block:mainfrom
brentvanw:fix/dev-real-sidecar-binaries

Conversation

@brentvanw

Copy link
Copy Markdown

What this fixes

On the documented dev flow (just setup && just dev), agent sign-in fails during onboarding and in Settings → Agents:

Couldn't load sign-in options: failed to run buzz-acp auth helper: Permission denied (os error 13)

Fixes #3927. Fixes #3664.

Root cause

_ensure-sidecar-stubs touches zero-byte placeholders in desktop/src-tauri/binaries/ so Tauri's compile-time externalBin validation passes, and the Tauri build copies those stubs next to the app executable. The desktop app resolves buzz-acp (and the other helpers) beside its own executable first — and because the stub exists, the PATH fallback never runs. The app then tries to execute an empty, non-executable file → EACCES.

just dev already builds the real helper crates (buzz-acp, buzz-agent, buzz-dev-mcp, buzz-cli, git-credential-nostr); it just never staged them. just desktop-standalone already has the copy loop that fixes this.

Change

  • Extract desktop-standalone's copy loop into a shared _sync-sidecar-binaries recipe.
  • Run it after the cargo build in both dev and desktop-standalone.
  • _ensure-sidecar-stubs is untouched, so compile-only lanes (desktop-tauri-clippy/check/test) keep the cheap placeholder path and don't pay for sidecar builds.

Relationship to existing PRs

Overlaps with #2597, which fixes the same bug by staging real binaries inside _ensure-sidecar-stubs itself. This version keeps the stub recipe cheap for the compile-only lanes that depend on it; happy to close either PR in favor of the other.

Testing

  • just _sync-sidecar-binaries stages all five real binaries (real sizes, +x) into desktop/src-tauri/binaries/.
  • With the staged binaries in place beside the app executable, the Codex sign-in options load in Settings → Agents on macOS (previously the EACCES above).
  • just -n dev / just -n desktop-standalone parse and show the expected script.
  • Pre-push rust tests and desktop Tauri checks pass. Note: mobile-test was excluded locally — channel_detail_page_test.dart ('keeps follow mode off while a tall newest message stays visible') fails on an unmodified main tree on this machine while main CI is green; unrelated to this Justfile-only change.

🤖 Generated with Claude Code

goodsventures and others added 2 commits July 31, 2026 11:27
The desktop app resolves buzz-acp and the other agent helpers next to its
own executable. In the documented dev flow (just setup && just dev) the
Tauri build copies the zero-byte externalBin stubs from _ensure-sidecar-stubs
there, and because the stub exists, the PATH fallback never runs — agent
sign-in fails with 'failed to run buzz-acp auth helper: Permission denied
(os error 13)' during onboarding and in Settings → Agents.

just dev already builds the real helper crates; it just never staged them.
Extract desktop-standalone's copy loop into a shared _sync-sidecar-binaries
recipe and run it after the cargo build in both lanes. _ensure-sidecar-stubs
stays untouched so compile-only lanes (desktop-tauri-clippy/check/test) keep
their cheap placeholder path.

Fixes block#3927. Fixes block#3664. Overlaps with block#2597, which fixes the same bug by
staging real binaries inside _ensure-sidecar-stubs itself.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: goodsventures <bosses@goodscompany.io>
…binaries

Signed-off-by: goodsventures <bosses@goodscompany.io>
@brentvanw
brentvanw requested a review from a team as a code owner July 31, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants