Unify temporary worktree branch naming#4278
Conversation
- Normalize generated names to the canonical 8-hex format - Accept legacy UUID-shaped mobile branch names - Add regression coverage for both behaviors
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but a cloud agent failed to start.
Reviewed by Cursor Bugbot for commit e8d3a06. Configure here.
ApprovabilityVerdict: Approved This change adds backward compatibility for legacy UUID-shaped temporary worktree branch names while normalizing new branches to a canonical 8-hex format. The scope is limited to internal branch naming logic with appropriate test coverage. You can customize Macroscope's approvability policy. Learn more. |
- Restrict legacy UUID matching to RFC 4122 version 4 and valid variant bits - Add regression tests for invalid UUID-shaped branch refs
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
(cherry picked from commit 571a8b4)
…dotgg#2284) (#184) * Sidebar v2 beta: flat thread list with a server-backed settled lifecycle (pingdotgg#4026) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> (cherry picked from commit 32c6012) * fix(settings): validate the add-provider wizard step before advancing (pingdotgg#2813) (pingdotgg#3100) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 282ecb3) * fix(claude): isolate capability probe from user MCP servers (pingdotgg#4015) Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit aa5ec80) * Preserve connecting status while a turn starts (pingdotgg#4101) Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 783692a) * fix(server): stop restoring stale OpenCode models (pingdotgg#4095) Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 4e09cdd) * [codex] keep scoped package references as text (pingdotgg#4167) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> (cherry picked from commit c7b21ff) * fix(web): default provider selection for users without Codex (pingdotgg#4117) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit b6e1b39) * Unify temporary worktree branch naming (pingdotgg#4278) (cherry picked from commit 571a8b4) * fix(web): use message-square icon for settled icon-less project threads in sidebar v2 (pingdotgg#4279) (cherry picked from commit 020179c) * Stabilize sidebar settling animations (pingdotgg#4280) (cherry picked from commit 18b4688) * Restore Copy Link in chat link context menu (pingdotgg#4161) Co-authored-by: Julius Marminge <julius0216@outlook.com> (cherry picked from commit e5fba26) * fix(desktop): handle EPIPE errors on stdout/stderr to prevent crash dialog (pingdotgg#4213) (cherry picked from commit f74eb62) * Preserve draft thread highlighting during promotion (pingdotgg#4283) Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 18fa89c) * Move mobile working timer into the thread timeline (pingdotgg#4285) (cherry picked from commit 7e2bb47) * Stabilize PR status lookups and provider session lifecycle (pingdotgg#4281) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 376c149) * fix: open command palette instead of custom dialog for new thread picker in SidebarV2 (pingdotgg#4269) (cherry picked from commit 9fe4832) * fix(server): don't drop sticky PR fallback when remote URL can't be resolved (pingdotgg#4289) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 9a0a071) * feat(web): copy branch name via right-click in the branch selector (pingdotgg#4275) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 78a0ea5) * Add remote server updates and standalone service management (pingdotgg#4286) Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit ab4a883) * Refine light-mode sidebar surfaces (pingdotgg#4268) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 593289c) * fix(mobile): don't mark Android VPN/Tailscale as offline when connected (pingdotgg#3949) (cherry picked from commit bc9428a) * improve and prevent silent thread branch drift and PR fetching (pingdotgg#2284) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 2d31cb0) * fix(sync): restore fork migration IDs under Sidebar v2 settled Upstream pingdotgg#4026 replaced Migrations.ts with linear upstream numbering and dropped fork-only migrations (NormalizeLegacyProviderKinds, RepairProposedPlanColumns, BackfillForkProviderInstanceIds). Restore the fork registry and append ProjectionThreadsSettled as ID 36. Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com> --------- Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Leonel Rivas <encriptandost@gmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Jaret Bottoms <jaretbottoms@gmail.com> Co-authored-by: Ishan <ishansachu1@gmail.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Maxwell Young <maxtheyoung@gmail.com> Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Henry Zhang <113233555+caezium@users.noreply.github.com> Co-authored-by: Rushikesh Gaikwad <81632222+Wraient@users.noreply.github.com> Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>

What Changed
Why
UI Changes
Checklist
Note
Low Risk
Small shared git helper changes with backward-compatible matching; no auth, data, or orchestration logic beyond branch-name detection.
Overview
Temporary worktree refs now use a single canonical shape (
t3code/<8 hex>) while still recognizing branch names older mobile clients created ast3code/<full RFC 4122 v4 UUID>.buildTemporaryWorktreeBranchNamestrips non-hex from the random callback and keeps the first 8 hex digits, so a UUID-shaped generator still emits the short canonical name.isTemporaryWorktreeBranchmatches both the 8-hex form and legacy v4 UUIDs (version4, variant[89ab]), but rejects other UUID-looking strings so the matcher is not broadly loosened.Regression tests cover canonicalization, legacy acceptance, and invalid UUID-shaped refs.
Reviewed by Cursor Bugbot for commit 3a822dc. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Unify temporary worktree branch naming to canonical
t3code/<8-hex>formTEMP_WORKTREE_BRANCH_PATTERNin git.ts to accept both the canonicalt3code/<8-hex>format and legacy RFC 4122 v4 UUID-shaped refs (e.g.t3code/<8-4-4-4-12>with correct version/variant nibbles).buildTemporaryWorktreeBranchNameto normalize its output by lowercasing, stripping non-hex characters, and truncating to 8 hex characters, so UUID-shaped random values are reduced to the canonical form.t3code/<8-hex>ref rather than a full UUID-shaped ref.Macroscope summarized 3a822dc.