Repository navigation
Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH - #3386
Merged
Merged
Conversation
wpfleger96
force-pushed
the
wpfleger/pairing-keep-on-lapse
branch
from
November 12, 2026 22:38
b947f80 to
45d4e0b
Compare
wpfleger96
marked this pull request as ready for review
November 12, 2026 22:50
kalvinnchau
reviewed
Nov 13, 2026
kalvinnchau
left a comment
Contributor
There was a problem hiding this comment.
🤖 Three low-priority lifecycle concerns below. Native persistence and platform installation remain unverified.
wpfleger96
force-pushed
the
wpfleger/pairing-keep-on-lapse
branch
from
November 13, 2026 00:24
1fbcd3e to
3a42184
Compare
wpfleger96
added a commit
to block/buzz
that referenced
this pull request
Nov 13, 2026
…t a bare relay host (#9417) ## Summary Fixes to `buzz auth desktop pair` and relay selection: - **`pair` skips desktops that aren't running.** A desktop that exited without removing its advertisement no longer counts toward "several Buzz desktops are running". It uses the same running test as `probe`, where only a transport failure means not running. - **`--relay` is global**, so `buzz auth desktop pair --relay …` works and the flag shows in subcommand help. - **A bare host means `https://`** for `--relay` and `BUZZ_RELAY_URL`. An explicit `http://`, `ws://` or `wss://` stays as typed. - **`pair` with no relay sends `[client]`.** The desktop pairs for its active community and returns the bound relays, which the CLI stores. An older desktop answers `invalid_request`, which the CLI reports as "this Buzz can't pick a community; pass --relay". - **`docs/local-credential-provider.md`**: covers the one-parameter `pair`, `unavailable` when no community is active, the older-provider fallback, skipping stale advertisements, and a lapsed sign-in keeping the pairing instead of revoking it. - The existing `concurrent_pair_and_unpair…` test now fails after 60s instead of hanging when the held pair request never reaches the mock desktop. - The CLI tests that run the real `lsof` same-user check now take turns. A nextest test group, `desktop-same-user-check`, serializes the whole `desktop_provider::` module for the pre-push hook. Most of its tests reach the check, and the few that don't run serially too. A test-only lock around the check does the same in `cargo test`. Waiting for a turn doesn't count against the request timeout. The check and its 5s limit are unchanged. `list_tells_a_stale_advertisement_from_a_rejection` keeps the in-cap `retry_after` of 30 and times from the desktop's first answer, so waiting for a turn isn't counted. The desktop half is block/buzz-app#3386. ## Testing - New tests: `pair_skips_a_desktop_that_is_not_running`, `an_older_desktop_asks_for_a_relay`, `relay_flag_is_global_and_a_bare_host_means_https`, plus updated relay-selection cases. - `cargo test -p buzz-cli --locked -- --test-threads=4` passes: 689 tests, both with default threads and with `--test-threads=4`, and under the pre-push hook's nextest run. --------- Signed-off-by: Will Pfleger <[email protected]> Co-authored-by: Hayt <211b96e6a2b7f45fd4047988976c7bbbeeda0c15f3ae7b32eec20834b5a55118@buzz.block.builderlab.xyz>
…e open community A pairing approved while signed in was deleted the first time a tool called after the sign-in expired and Buzz restarted: with no session left the person reads as signed out with no email, which never matched the approval. A real sign-out or change of account already revokes every pairing on its own, so that mismatch now answers "sign in again in Buzz" and keeps the pairing. `pair` with only a client now pairs for the community open in Buzz. The page reports it with the saved communities; with none open, the tool is told to open one or pass --relay. Tools that name a relay are unchanged. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
The installed app links ~/.local/bin/buzz to its bundled CLI at every start, following the app's real path through updates and moves. It replaces a symlink and never a file or directory. Development builds and AppImages skip it: a worktree build's link would dangle, and an AppImage runs from a mount that ends when it quits. On Windows the installer adds the install's bin folder to the user PATH and the uninstaller removes it, editing the registry value in place so a long PATH is never truncated or duplicated, then broadcasts the change. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
tauri::is_dev() is false for a packaged debug bundle, which keeps the release identifier, so a worktree's debug bundle could take over ~/.local/bin/buzz. Debug builds now skip the link too. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
Plain cargo test has tauri::is_dev() true, so the test passed without the debug-profile check. development() now takes the Tauri-dev flag, and the test passes false. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
…ff others' CLIs A pairing past its disuse period now answers revoked even while the sign-in has lapsed, instead of asking for a sign-in that only finds it expired. The buzz link replaces only a dangling link or one to a Buzz app's CLI, leaving a link to a CLI the user chose alone. It is not made from a mounted disk image or an App Translocation copy, which go away. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
Pins block/buzz at the merge of block/buzz#9417, so the bundled CLI pairs for the open community, skips stopped desktops, takes --relay after the subcommand and reads a bare host as https://. The help and the buzz link's doc comment describe the new behaviour. Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Signed-off-by: Will Pfleger <[email protected]>
kazemek21
approved these changes
Nov 13, 2026
kazemek21
left a comment
Contributor
There was a problem hiding this comment.
Kyle reviewed this PR and the Nexus review-tracker notes and approved with no additional comments.
Posted by Codex (gpt-6.1-sol) on behalf of kylez
wpfleger96
force-pushed
the
wpfleger/pairing-keep-on-lapse
branch
from
November 13, 2026 00:33
3a42184 to
e8247cb
Compare
LordMelkor
added a commit
to LordMelkor/buzz-app
that referenced
this pull request
Nov 13, 2026
Co-authored-by: Sigil <06114f072cf21e50fcd4133ab21346cdb1f74ee16d853a9729995fa6c03a251c@buzz.block.builderlab.xyz> * commit '05433fe4af186eeccd85c912f9e60e96b9123232': fix(mentions): don't let outside names block a member's exact @name (block#3254) ci(release): stop scheduled desktop preview builds (block#3425) Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH (block#3386) fix(claude-code): look up the model list again once it is an hour old (block#3398) Signed-off-by: LordMelkor <[email protected]>
ljknight
added a commit
to ljknight/buzz-app
that referenced
this pull request
Nov 13, 2026
* origin/main: Keep deleted agents out of pickers; Delete always archives (block#3418) fix(mentions): don't let outside names block a member's exact @name (block#3254) ci(release): stop scheduled desktop preview builds (block#3425) Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH (block#3386) fix(claude-code): look up the model list again once it is an hour old (block#3398) feat(plugins): let a plugin wake an agent at a channel's top level (block#3299) Enable mouse drag scrolling in the agent avatar picker (block#3401) Signed-off-by: Laura Knight <[email protected]> # Conflicts: # docs/plugin-authoring-guide.md
LordMelkor
added a commit
to LordMelkor/buzz-app
that referenced
this pull request
Nov 13, 2026
Co-authored-by: Sigil <06114f072cf21e50fcd4133ab21346cdb1f74ee16d853a9729995fa6c03a251c@buzz.block.builderlab.xyz> * commit '05433fe4af186eeccd85c912f9e60e96b9123232': fix(mentions): don't let outside names block a member's exact @name (block#3254) ci(release): stop scheduled desktop preview builds (block#3425) Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH (block#3386) fix(claude-code): look up the model list again once it is an hour old (block#3398) Signed-off-by: LordMelkor <[email protected]>
LordMelkor
added a commit
to LordMelkor/buzz-app
that referenced
this pull request
Nov 13, 2026
Co-authored-by: Sigil <06114f072cf21e50fcd4133ab21346cdb1f74ee16d853a9729995fa6c03a251c@buzz.block.builderlab.xyz> * commit '05433fe4af186eeccd85c912f9e60e96b9123232': fix(mentions): don't let outside names block a member's exact @name (block#3254) ci(release): stop scheduled desktop preview builds (block#3425) Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH (block#3386) fix(claude-code): look up the model list again once it is an hour old (block#3398) Signed-off-by: LordMelkor <[email protected]>
LordMelkor
added a commit
to LordMelkor/buzz-app
that referenced
this pull request
Nov 13, 2026
Co-authored-by: Sigil <06114f072cf21e50fcd4133ab21346cdb1f74ee16d853a9729995fa6c03a251c@buzz.block.builderlab.xyz> * commit '05433fe4af186eeccd85c912f9e60e96b9123232': fix(mentions): don't let outside names block a member's exact @name (block#3254) ci(release): stop scheduled desktop preview builds (block#3425) Keep CLI pairings through a lapsed sign-in, pair for the open community, and put buzz on PATH (block#3386) fix(claude-code): look up the model list again once it is an hour old (block#3398) Signed-off-by: LordMelkor <[email protected]>
kleinbem
added a commit
to kleinbem/nix-packages
that referenced
this pull request
Nov 13, 2026
Moves the fleet's mesh-llm to MeshLLM 0.79.0 and buzz-app's Shared compute with it. Both speak skippy stage generation 16 now, so buzz-app can split models with the fleet's mesh-llm nodes again. - **mesh-llm** → `kleinbem/nixpkgs@ddb90897` (mesh-llm-dev: NixOS/nixpkgs#571722 at 0.79.0 plus its follow-ups). Same attrs, paths and module as before. - **buzz-app** → `kleinbem/nixpkgs@00a55a67` (branch `buzz-app-trial-0790`, on that same mesh-llm commit). It builds Block's own 0.79 move, block/buzz-app#3271 at `058e300d`, with no patch of mine. Two changes for current nixpkgs: `aws-lc` and `sqlite` in buildInputs (the cargo hooks now link both from the system). One new test skip: `cli_link::tests::only_the_installed_release_owns_the_link` asserts a debug build, and nixpkgs tests in the release profile (added in block/buzz-app#3386). Checked: - nixpkgs-review-gha, x86_64-linux: mesh-llm (43369399492), skippy-native-runtime-vulkan (43369413074), skippy-tools (43369424969) and nixosTests.mesh-llm (43369437043) built; buzz-app with its full test suite (43376192753) built. - In this flake, buzz-app and mesh-llm use the same two `skippy-native-runtime-0.79.0` derivations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * Updated the pinned versions of Buzz App and Mesh LLM. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 5.5 <[email protected]>
kleinbem
added a commit
to kleinbem/nix-packages
that referenced
this pull request
Nov 13, 2026
Moves buzz-app to `kleinbem/nixpkgs@59d494b6`, which stops the app from linking `~/.local/bin/buzz` to its bundled CLI (added in block/buzz-app#3386). Under Nix that link points into the store and, on Linux, keeps the first installed version until it's garbage-collected. The `buzz` command comes from nixpkgs' `buzz-cli` instead. mesh-llm is unchanged. Checked: nixpkgs-review-gha run 43431218322 built buzz-app with its full test suite on x86_64-linux; this flake's buzz-app is that same derivation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * Updated the packaged version of buzz-app to a newer revision. No user-facing feature changes are included in this update. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 5.5 <[email protected]>
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.
Summary
Keep pairings when the sign-in lapses. If the Builderlab sign-in expired and Buzz restarted before you signed back in, the next CLI call deleted its pairing for good. With no saved session, Buzz reads you as signed out with no email, and that never matched the email the pairing was approved under (
admitincredential_service/pairing.rs). A real sign-out or account change already revokes every pairing on its own, so that mismatch now answers "sign in again in Buzz" and keeps the pairing. Other mismatches still revoke.pairwithout a relay uses the open community.pairwith[client]alone pairs for the community open in Buzz. The page now reports that community along with the saved ones (credential_pairing_communitiesgainsactive). With none open, the tool is refused without asking: "open one in Buzz, or pass --relay".[client, relay]works as before, and the Allow prompt still shows the community.buzzon PATH. At every start, the installed app links~/.local/bin/buzzto its bundled CLI at its real path. It replaces a symlink that dangles or points at a Buzz app's CLI, and leaves any other symlink, file or directory alone. Dev builds (tauri::is_dev()or a non-release identifier), AppImages, and apps run from a mounted disk image (/Volumes/…) or App Translocation skip it. On Windows, the NSIS hooks add$INSTDIR\binto the user PATH on install and remove it on uninstall. PowerShell edits the registry value in place, so a long PATH isn't truncated, unexpanded entries survive and nothing is added twice, and then the change is broadcast. The README's command-line step is updated to match.Testing
a_pairing_survives_a_lapsed_sign_in_and_a_restart: pair while signed in with an email, relaunch signed out with no sign-out recorded, probe. The pairing is kept, the probe answers "sign in again", and the token works once signed back in.a_pairing_without_a_relay_uses_the_open_community: refused with no open community, then approved for it once one is set.cli_linkunit test: creates the link, relinks dangling and Buzz-CLI links, and leaves a link to a custom CLI, files and directories alone.Bundled CLI. Pins block/buzz (
src-tauri/Cargo.toml,Cargo.lock) at630922a9, the merge of buzz#9417, which contains the previous pin0e6037c7. The bundledbuzzthen pairs for the open community when no relay is given, skips stopped desktops, accepts--relayafter the subcommand and reads a bare host ashttps://.docs/buzz-help.mddescribes this, plus a lapsed sign-in keeping its pairings.Related: buzz#9417