Skip to content

Add experimental multi-machine picker - #3563

Merged
ymichael merged 4 commits into
mainfrom
bb/add-machine-search-to-picker-thr_naxivupsnv
Sep 14, 2026
Merged

ymichael merged 4 commits into
mainfrom
bb/add-machine-search-to-picker-thr_naxivupsnv

Conversation

@ymichael

@ymichael ymichael commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

The environment picker grouped every available environment under every machine, so adding machines repeated options and pushed frequently used choices below the fold. The machine-only picker also had no way to narrow a long host list.

What changed

  • Added a searchable, target-first environment picker for projects with at least three machines. Physical machines and hostless machine providers share a capped Machines section, while the selected physical machine's environments appear in a separate section.
  • Made machine selection update the composer's actual host immediately without closing the picker. The tab's current environment option is reused across machines, falls back to the first usable option, and remains explicit when the target needs project setup.
  • Preserved offline and project-setup states, aligned target icons, and gave the selected machine and its environment sub-selection independent checked states.
  • Added search to machine-only pickers with more than five machines.
  • Put both behaviors behind the default-off multiMachinePicker experiment, exposed through Settings and bb settings experiment multiMachinePicker <true|false>.
  • Updated stories, tests, system-config fixtures, CLI coverage, and the configuration/BB guide docs. No server/daemon wire contract changed.

Environment picker

Before:

Environment picker before the experiment

After:

Searchable target-first environment picker

Machine picker

Before:

Machine picker before search

After searching:

Machine picker filtered by search

How you verified

  • pnpm exec turbo run test --filter=@bb/app -- --run src/components/pickers/EnvironmentPicker.test.tsx src/components/plugin/PluginNewThreadComposer.test.tsx src/views/RootComposeView.test.ts (144 tests)
  • Focused experiment contract tests for @bb/server, @bb/domain, @bb/db, @bb/cli, and @bb/desktop (16 tests)
  • pnpm exec turbo run typecheck --filter=@bb/app --filter=@bb/server --filter=@bb/domain --filter=@bb/db --filter=@bb/cli
  • Live browser verification with the experiment disabled and enabled, using connected, offline, project-not-configured, and hostless machine fixtures. The rebased build also verified immediate host selection, an open menu after selection, and same-tab selection restoration after reload.

Fixes #3562

AGENT GENERATED

@ymichael
ymichael force-pushed the bb/add-machine-search-to-picker-thr_naxivupsnv branch 4 times, most recently from 9e18640 to efe469d Compare September 12, 2026 05:45
@ymichael
ymichael force-pushed the bb/add-machine-search-to-picker-thr_naxivupsnv branch from efe469d to 1c9d590 Compare September 13, 2026 20:19
@ymichael
ymichael merged commit f87cd51 into main Sep 14, 2026
16 checks passed
@ymichael
ymichael deleted the bb/add-machine-search-to-picker-thr_naxivupsnv branch September 14, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make environment and machine pickers scale to many machines

1 participant