Skip to content

Unify temporary worktree branch naming#4278

Merged
juliusmarminge merged 2 commits into
mainfrom
t3code/unify-mobile-branch-naming
Jul 22, 2026
Merged

Unify temporary worktree branch naming#4278
juliusmarminge merged 2 commits into
mainfrom
t3code/unify-mobile-branch-naming

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jul 22, 2026

Copy link
Copy Markdown
Member
  • Normalize generated names to the canonical 8-hex format
  • Accept legacy UUID-shaped mobile branch names
  • Add regression coverage for both behaviors

What Changed

Why

UI Changes

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

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 as t3code/<full RFC 4122 v4 UUID>.

buildTemporaryWorktreeBranchName strips non-hex from the random callback and keeps the first 8 hex digits, so a UUID-shaped generator still emits the short canonical name. isTemporaryWorktreeBranch matches both the 8-hex form and legacy v4 UUIDs (version 4, 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> form

  • Updates TEMP_WORKTREE_BRANCH_PATTERN in git.ts to accept both the canonical t3code/<8-hex> format and legacy RFC 4122 v4 UUID-shaped refs (e.g. t3code/<8-4-4-4-12> with correct version/variant nibbles).
  • Updates buildTemporaryWorktreeBranchName to 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.
  • Behavioral Change: branches built from UUID-shaped random callbacks now produce a shorter t3code/<8-hex> ref rather than a full UUID-shaped ref.

Macroscope summarized 3a822dc.

- Normalize generated names to the canonical 8-hex format
- Accept legacy UUID-shaped mobile branch names
- Add regression coverage for both behaviors
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f2a414a3-4996-4adb-9a39-a0d5b5fb1f85

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/unify-mobile-branch-naming

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Jul 22, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON, but a cloud agent failed to start.

Reviewed by Cursor Bugbot for commit e8d3a06. Configure here.

Comment thread packages/shared/src/git.ts
@macroscopeapp

macroscopeapp Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: 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
@juliusmarminge
juliusmarminge enabled auto-merge (squash) July 22, 2026 14:17
@juliusmarminge
juliusmarminge merged commit 571a8b4 into main Jul 22, 2026
16 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/unify-mobile-branch-naming branch July 22, 2026 14:19
UNN-Devotek pushed a commit to unn-corp/t3code that referenced this pull request Jul 23, 2026
AnanduB13 pushed a commit to AnanduB13/t3code that referenced this pull request Jul 23, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Jul 25, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant