Skip to content

Clarify worktree, machine, and Git context - #2711

Open
brsbl wants to merge 19 commits into
mainfrom
bb/improve-worktree-name-display-thr_5vi3d8bpih
Open

Clarify worktree, machine, and Git context#2711
brsbl wants to merge 19 commits into
mainfrom
bb/improve-worktree-name-display-thr_5vi3d8bpih

Conversation

@brsbl

@brsbl brsbl commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

On main, thread context mixes the worktree resource with its machine and locality, while Diff does not identify the branch or commit behind the changes. Generated worktree identifiers are unreadable, but substituting a machine name can make a managed worktree look like a direct machine workspace. The affected tooltips also repeat taxonomy or include parenthetical shortcut copy.

What changed

Composer

  • Shows an existing custom worktree name as read-only context. An unnamed worktree keeps the worktree icon, uses the machine name as its readable fallback, and shows the Git branch separately.
  • Shows separate machine context only when it adds information: a named remote, multi-machine, or offline worktree. A single connected local machine stays compact; direct contexts remain Machine.
  • Uses the issue-state laptop icon for an offline machine. The status icon exposes Offline, only a truncated machine name exposes the full name, the generic machine icon has no redundant tooltip or focus stop, and the worktree icon retains its Worktree tooltip.
  • Removes parenthetical shortcut copy and redundant Project: / Machine: prefixes only from the affected Composer tooltips.

Info

  • Uses explicit Worktree and Machine rows. A missing custom worktree name appears as Unnamed; supporting labels are Path, Base, and Status.
  • Keeps full truncated values available on hover and keyboard focus.
  • Keeps worktree naming in the existing sidebar action. Composer and Info do not add rename or Add name actions, and this PR does not change rename persistence, permissions, validation, or behavior.

Diff and shared Git context

  • Shows the branch or Detached at <sha> above the Diff selector without a generic Branch or Checkout heading.
  • Keeps branch and commit values copyable with concise action tooltips while preserving the exact value in accessible names and copy-result messages.
  • Uses the same checkout-formatting contract in Composer, Info, and Diff.

Coverage and boundaries

  • Consolidates the changed fixtures under the existing Info and Composer story groups and covers custom, maximum-length, unnamed, direct-machine, machine-visibility, branch, and detached-commit states.
  • Adds the offline laptop icon to the shared, registry, and mobile icon maps used by the affected surfaces.
  • Changes no daemon wire contract, public API, CLI, guide, protocol, persistence, or server behavior.

Screenshots

Historical references — replacement required

The four embedded images below are retained only as historical references. They are not final comparison evidence: the pairs use different threads, content, repository state, and panel state, and the after images predate the current PR head.

Composer context

Before reference — source revision is not recorded in the attachment

Historical before reference: composer context before the worktree taxonomy change

After reference — branch revision 14d130ad5, not the current head

Historical after reference: read-only worktree name with separate branch context

Diff branch and commit context

Before reference — source revision is not recorded in the attachment

Historical before reference: Diff panel without branch or commit context

After reference — branch revision 14d130ad5, not the current head

Historical after reference: branch context above the Diff selector

Before merge, replace each pair with the same fixture, route, interaction state, and 1440×900 viewport captured from merge base f4bbc2fe81a9b7639ff9a7396e172bddd89109e4 for before and exact PR head 538bf478b9e81ea4cb1432acf1789b1f481eaf76 for after.

How you verified

  • Exact reviewed head: 538bf478b9e81ea4cb1432acf1789b1f481eaf76.
  • Chrome for Testing 151 against the exact-head Ladle output at 1440×900: Offline appears only from the issue icon, the full machine name appears only from the name target, direct machine icons have no Machine focus target, worktree icons retain their Worktree target, Diff contains no Checkout heading, and the detached value reads Detached at abcdef1.
  • Static Chrome captures confirmed bounded offline-machine, branch, and detached-commit layouts with no overlap, unexpected layout shift, or page console errors.
  • Focused regression coverage verifies resource taxonomy, machine visibility, split status/name tooltips, accessible names, worktree icon help, Git copy contracts, and the absence of generic Diff headings.
  • All 13 non-skipped GitHub checks passed on the reviewed head. Node compatibility and iOS simulator jobs were skipped by workflow conditions. Local CI-equivalent tests, typecheck, and lint were intentionally not run per repository policy.
  • Screenshot audit: all four historical attachments are 1440×900, but the pairs are not comparable and the after assets are not from the exact PR head.

BB-Thread-ID: thr_5vi3d8bpih

AGENT GENERATED

@brsbl brsbl changed the title Clarify worktree context and rename flow Clarify worktree, machine, and checkout context Aug 31, 2026
@brsbl brsbl changed the title Clarify worktree, machine, and checkout context Clarify worktree, machine, and Git context Aug 31, 2026
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