Skip to content

fix(web): show previous worktree branch on second line - #13314

Merged
Yash-Singh1 merged 2 commits into
mainfrom
worktree-dropdown-width
Sep 23, 2026
Merged

Yash-Singh1 merged 2 commits into
mainfrom
worktree-dropdown-width

Conversation

@Yash-Singh1

@Yash-Singh1 Yash-Singh1 commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

The compact workspace menu truncates the branch in "Previous worktree" so heavily that the destination is hard to identify.

Show the action and branch on separate lines, use smaller muted text for the branch, and widen the menu to 21rem when that option is present. The compact menu and wider composer picker use the same row.

Before

Previous worktree branch truncated in the original menu

After

Previous worktree branch on a smaller muted second line

Verified in the T3 Code dev client with a long branch name. Selecting the row updated the draft's branch and worktree path. Web typecheck, focused lint, and formatting checks passed.

Model: GPT-6 Astra. Harness: Codex.

Summary by CodeRabbit

  • New Features
    • The “Previous worktree” option now shows its branch name when available, making it easier to identify the worktree.
    • The menu is positioned above its trigger and adjusts its width to fit the available screen space.

@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Sep 23, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies.

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 23, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR is a localized web UI presentation fix that preserves existing worktree-selection behavior. Human review is still warranted because an unresolved review finding identifies a concrete potential operation-identifier issue in a separate server provider.

No code changes detected at 2e4b4f6. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

Comment thread apps/web/src/index.css Outdated
Comment thread apps/web/src/index.css Outdated
Comment thread apps/web/src/index.css Outdated
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

UI consistency review completed with three inline findings in apps/web/src/index.css.

Posted via Macroscope — UI Consistency

Comment thread apps/server/src/pullRequest/ForgejoPullRequestProvider.ts
Comment thread apps/server/src/pullRequest/ForgejoPullRequestProvider.ts
@github-actions

github-actions Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB 0 B (0.0%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB −5 B (−0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB +5 B (+0.1%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.3 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 10 10 0 (0.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB −39 B (−0.3%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB −8 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.5 KiB 6.4 KiB −31 B (−0.5%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.1 KiB 57.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: 68fb7f4 · PR result: 2e4b4f6 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@Yash-Singh1
Yash-Singh1 force-pushed the worktree-dropdown-width branch from 7480df0 to ab79364 Compare September 23, 2026 21:45
@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). and removed 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 1,000+ changed lines (additions + deletions). labels Sep 23, 2026
@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 793bb22b-e149-4430-8e9b-9775f074b45c

📥 Commits

Reviewing files that changed from the base of the PR and between ab79364 and 2e4b4f6.

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: fae4b045-7321-4304-9126-3b72d21adf45

📥 Commits

Reviewing files that changed from the base of the PR and between f5ef0dd and ab79364.

📒 Files selected for processing (3)
  • apps/web/src/components/BranchToolbar.tsx
  • apps/web/src/components/BranchToolbarEnvModeSelector.tsx
  • apps/web/src/components/PreviousWorktreeItemContent.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

Both run-context selectors now show previous-worktree content through a shared component. The component displays the branch name when provided. The selectors constrain popup width when the previous-worktree option is present.

Changes

Previous Worktree Menu

Layer / File(s) Summary
Shared previous-worktree content
apps/web/src/components/PreviousWorktreeItemContent.tsx
The new component renders the history icon and label. When a branch name is provided, it displays the name using MiddleTruncate.
Selector integration and popup sizing
apps/web/src/components/BranchToolbar.tsx, apps/web/src/components/BranchToolbarEnvModeSelector.tsx
Both selectors pass the previous-worktree branch to the shared component and constrain popup width when the option is present. The mobile popup also sets its alignment and side.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to ab793

The previous-worktree option displays the branch on a second line, and the popup sizing concern was ruled out. No identified issue blocks merging.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main UI change: showing the previous worktree branch on a second line.
Description check ✅ Passed The description explains the change and its reason, includes before-and-after UI screenshots, and records verification results. It does not use the template headings or include the checklist, but the …
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

@Yash-Singh1
Yash-Singh1 merged commit effaab9 into main Sep 23, 2026
22 checks passed
@Yash-Singh1
Yash-Singh1 deleted the worktree-dropdown-width branch September 23, 2026 23:24
@Yash-Singh1
Yash-Singh1 restored the worktree-dropdown-width branch September 23, 2026 23:33
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 24, 2026
## What's Changed
* fix(ci): shard release tests like pull request CI by @juliusmarminge in pingdotgg/t3code#13321
* fix(web): show previous worktree branch on second line by @Yash-Singh1 in pingdotgg/t3code#13314
* fix(providers): restore compatibility ranges for every harness by @juliusmarminge in pingdotgg/t3code#13328
* fix(preview): use the visible browser for new agent sessions by @Bil0000 in pingdotgg/t3code#13064
* fix(server): stop replaying old agent alerts on restart by @juliusmarminge in pingdotgg/t3code#13340
* fix(web): use a brain icon for the effort dropdown by @t3-code[bot] in pingdotgg/t3code#13309
* fix(desktop): SnapShot shortcut helper no longer adds a Dock icon on macOS by @Gigioxx in pingdotgg/t3code#13286
* fix(web): composer chip rings no longer clip at the editor edge by @flamboh in pingdotgg/t3code#13301
* fix(web): switches announce their real state to screen readers by @Leos-Khai in pingdotgg/t3code#11580
* fix(shared): preserve final quoted empty CSV records by @Lucenx9 in pingdotgg/t3code#11425
* feat(web): add an interactive 3D device workspace by @juliusmarminge in pingdotgg/t3code#12787


**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260923.2173...v0.0.43-nightly.20260924.2187

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260924.2187
aorwall added a commit to aorwall/t3code that referenced this pull request Sep 24, 2026
Merges `pingdotgg/t3code` up to `78af372cf`: 27 commits on top of base
`aca3c87cd`. It branches from `main`; no earlier merge PR was open.

## Resolution

Six files conflicted, and each was resolved with the verdict
`preflight.mjs` printed:
- `AGENTS.md` (decide): the fork's Taste prose stays. Upstream's rule
change is folded into it: `shadcn/no-restyle` now fails lint, and a look
that belongs to one feature stays in that feature's component.
- `GitActionsControl.tsx`, `ProjectScriptsControl.tsx`,
`settings/ProjectActionsList.tsx`, `settings/SettingsSidebarNav.tsx`
(converged): these take upstream's markup that no longer restyles `ui`
components. The `FEATURES.openInEditor` gate, the
`editable`/`taskScoped` gates and the personal/admin settings-nav split
are re-applied at their new anchors.
- `pnpm-lock.yaml` (theirs): upstream's copy, re-derived with
`install.mjs`.

`projectScriptEditor.tsx` merged without a conflict but had no
path-policy entry, so it now has one: `project-script-editor`.

**Changes needed after the merge.** Upstream pingdotgg#13210 made
`shadcn/no-restyle` a lint error. That surfaced 65 violations, all in
fork-only files, and I fixed them at the call sites:
- `DialogPanel` in the Moatless settings dialogs keeps its own padding.
- Inputs use `font="mono"`.
- The sandbox tooltip uses `variant="code"`.
- The repository search field uses `InputGroup`.
- Muted captions in the sidebar filter are plain elements.
- The task-link empty state uses the `Empty` defaults.

`ui/textarea.tsx` gained the same `font` prop `Input` already has,
recorded as inventory entry `textarea-mono-font`. **Visual change to
review:** these panels now use the `ui` defaults for font size (13px →
14px) and dialog padding.

## Numbers
- Landed: 255 files, against 239 in the upstream range. The gap of 16 is
the lint fixes above plus `docs/fork/inventory.json`.
- Fork delta: 787 files.

## Verification
`verify.mjs` passed all 10 checks, including the full test step. The
unsupported-method derivation had nothing to add or drop.

## Feature classification

### Usable as-is
- Back/forward navigation with mod+[ and mod+] (pingdotgg#13212,
`AppSidebarLayout.tsx`, keybindings contract).
- Command palette sorts title matches by recent activity (pingdotgg#13219).
- The previous worktree branch shows on a second line in the branch
toolbar (pingdotgg#13314).
- A context-chip component, `ui` components owning their own variants,
composer chip rings no longer clip, a brain icon for the effort
dropdown, and accessible switch state (pingdotgg#13192–pingdotgg#13210, pingdotgg#13301, pingdotgg#13309,
pingdotgg#11580).
- CSV preview keeps a final quoted empty record (pingdotgg#11425).
- Mobile recovers from screen render errors (pingdotgg#13197); mobile version
bump.

### Unsupported in Moatless / needs implementation
- **Interactive 3D device workspace** (pingdotgg#12787,
`apps/web/src/components/device/**`). It sits behind the existing
`FEATURES.deviceHub` gate, and the `device.*` methods are still not
dispatched. It is covered by the existing device-hub gap.
- **Preview automation drives the visible browser for new agent
sessions** (pingdotgg#13064, `PreviewAutomationBroker.ts`,
`previewAutomation.ts`). Added to the existing preview-automation gap.
- **Mobile environment and provider update management** (pingdotgg#13302). It is
a paired-device surface, covered by the existing mobile gap.
- Desktop-only fixes (SnapShot Dock icon pingdotgg#13286, keyring test removal):
not applicable.

### Backend behavior to consider reproducing in Moatless
- **Don't replay stale agent alerts after a restart** (pingdotgg#13340,
`AgentAwarenessRelay.ts`). The relay publishes a completed or failed
thread only if its latest turn finished after the server started.
- **Normalise vendor-specific provider versions before the compatibility
check** (pingdotgg#13328, `providerCompatibility.ts`, `model-manifest.json`). It
strips Cursor's build hash and Antigravity's `agy_acp_server_` prefix,
and restores the ranges for every harness.

Both are recorded under "Runtime fixes upstream made to its own server"
in `docs/fork/gaps.md`. The tracker entry is in
`docs/fork/upstream-merge-log.md`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/0735cf38-d4cd-497a-87e7-ed2bc5c58ba6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 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