fix(dev): stage real sidecar binaries in just dev and desktop-standalone - #3984
Open
brentvanw wants to merge 2 commits into
Open
fix(dev): stage real sidecar binaries in just dev and desktop-standalone#3984brentvanw wants to merge 2 commits into
brentvanw wants to merge 2 commits into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes
On the documented dev flow (
just setup && just dev), agent sign-in fails during onboarding and in Settings → Agents:Fixes #3927. Fixes #3664.
Root cause
_ensure-sidecar-stubstouches zero-byte placeholders indesktop/src-tauri/binaries/so Tauri's compile-timeexternalBinvalidation passes, and the Tauri build copies those stubs next to the app executable. The desktop app resolvesbuzz-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 devalready builds the real helper crates (buzz-acp,buzz-agent,buzz-dev-mcp,buzz-cli,git-credential-nostr); it just never staged them.just desktop-standalonealready has the copy loop that fixes this.Change
desktop-standalone's copy loop into a shared_sync-sidecar-binariesrecipe.devanddesktop-standalone._ensure-sidecar-stubsis 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-stubsitself. 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-binariesstages all five real binaries (real sizes, +x) intodesktop/src-tauri/binaries/.just -n dev/just -n desktop-standaloneparse and show the expected script.mobile-testwas excluded locally —channel_detail_page_test.dart('keeps follow mode off while a tall newest message stays visible') fails on an unmodifiedmaintree on this machine whilemainCI is green; unrelated to this Justfile-only change.🤖 Generated with Claude Code