Buffered gitExecFileAsync reads now always fence login-shell rc output, and
non-zero exits de-fence error.stdout. The per-call captureWslLoginShellOutput
opt-in is removed since it is no longer meaningful.
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
* Support explicit remote branch reuse across workspaces
- Preserve selected branch identity, tracking, and busy-branch handling
- Add explicit branch-off intent with v2 runtime capability gating
* Style existing workspace action in branch reuse UI
* Preserve explicit branch reuse with versioned host support
- Gate strict reuse on a new request capability while retaining legacy behavior
- Warn when a reused remote branch cannot be configured as the push upstream
* Clarify selected branch checkout options
* Offer existing or new branch choices for worktrees
* Preserve new-branch intent when reusing a branch name
* Adapt branch composer tests and catalog after rebase
* Refresh mobile RPC recordings for branch intent capabilities
* Remove retired Russian localization entries
* Remove retired German and Turkish localization entries
* Add branch selection translations for existing workspaces
* Localize mobile worktree branch selection
* perf(worktrees): look up a branch's PR only after a name collision on the host's create
The host's create (agent.launch, worktree.create, the phone and the CLI) called gh pr list for every
create, a 1-3 s network round trip, while the desktop create probes only after a branch collision. A
branch with an open PR exists on the remote, so the branch-conflict check already moves past it.
* test(worktrees): pin first-name PR lookup skip on the host's create
The runtime service specs still expected a PR lookup for a free first
name. Update them to the desktop-parity behavior: no lookup without a
branch collision, and a free push-target name is kept. Pin the exact
suffixed name, and that a later name with a PR is skipped.
* perf(worktrees): overlap the host create's base fetch with naming
Keep the first-name PR lookup (restores main's naming) and take it off
the critical path instead: start the base-ref refresh before naming and
await it after, as the desktop create does, so the lookup and the fetch
run concurrently. A refresh rejection while naming fails stays handled.
* test(worktrees): pin the overlapped origin fetch on the host's create
Cover the best-effort fetch origin path: it runs while the first-name PR
lookup is pending, and its rejection while naming fails stays handled.