Skip to content

Preserve explicit machine choice for project checkouts - #3567

Merged
ymichael merged 1 commit into
mainfrom
bb/fixer-preserve-explicit-machine-choice-for-proje-thr_a9ipk9h9ax
Sep 12, 2026
Merged

Preserve explicit machine choice for project checkouts#3567
ymichael merged 1 commit into
mainfrom
bb/fixer-preserve-explicit-machine-choice-for-proje-thr_a9ipk9h9ax

Conversation

@ymichael

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

The shared new-thread composer treated checkout-capable providers as eligible on every connected machine, even when a machine had no source for the selected project. That exposed Project checkout and Worktree on an unconfigured machine; if that explicit choice later became invalid, resolution could silently fall back to the primary machine. This regressed in b3c5434 (#3274).

What changed

  • Derive existing-machine checkout eligibility from the project's sources and the existing project-scoped provider query.
  • Hide Project checkout and Worktree when that project is not set up on a machine, while preserving valid local, remote, and hostless choices.
  • Retain an explicit selected machine and block submission if its checkout disappears or becomes unavailable instead of redirecting the thread elsewhere.
  • Add focused composer regressions for per-machine eligibility, invalidation, availability, keyboard behavior, and valid fallback-free selections.
Before After
Before: an unconfigured remote machine incorrectly offers Project checkout After: the unconfigured remote machine says it is not set up and offers no checkout options

The paired 390×844 dark-theme captures use the actual source components with synthetic SDK and machine data. The before image is from base 1ebdc56a50; the after image is from pushed head 63920f8faa.

No server/daemon wire contract, CLI, public SDK, generated file, or lockfile changes.

How you verified

  • New eligibility regressions failed before the fix and passed after it.
  • pnpm exec turbo run build typecheck test --filter=@bb/app --force — build and typecheck passed; 4,469 tests passed and 3 were intentionally skipped.
  • Extra templates validation — 44 tests passed.
  • Browser target matrix — 20 submission/control cases plus four rejection, keyboard, focus, root, and overflow cases passed at 1280×900 and 390×844 in light and dark themes.
  • git diff --check origin/main...HEAD passed, and Git reports a conflict-free merge with current main.

AGENT GENERATED

@ymichael
ymichael merged commit 5d4b91d into main Sep 12, 2026
16 checks passed
@ymichael
ymichael deleted the bb/fixer-preserve-explicit-machine-choice-for-proje-thr_a9ipk9h9ax branch September 12, 2026 04:10
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.

1 participant