fix(web): composer chip rings no longer clip at the editor edge - #13301
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughPrompt editor spacing and height classes change in the editor, chat composer, and font preview. The editor wrapper also adds ChangesPrompt editor layout
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The composer layout change preserves the inspected sizing behavior and keeps chip outlines within the scroll area; no merge-blocking issue was found. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped UI layout fix that adjusts composer padding, height, and containment so chip rings are not clipped, while preserving editor behavior and data handling. The settings change only keeps the font preview aligned with the updated editor geometry. You can add or adjust custom eligibility rules. Learn more. |
14b4996 to
82720ce
Compare
Dismissing prior approval to re-evaluate 82720ce
This comment has been minimized.
This comment has been minimized.
82720ce to
1e5e9ee
Compare
Dismissing prior approval to re-evaluate 1e5e9ee
This comment has been minimized.
This comment has been minimized.
## 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
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
Note
🤖 Claude Opus 5.5 on behalf of Oliver
ELI5
When you click a chip at the start of the message box, the highlight around it got its edges cut off. The message box now has a little invisible breathing room, so the highlight shows in full without moving any text.
Problem
The composer editor is its own scroll container with no padding, so chips at the start of a line or on the first line sit flush against its edge. The node-selection ring on chips (file mentions, skills, chat references, context references) extends 3px outside the chip and the chip's focus ring 4px, and a scroll container clips anything painted past its padding box.
Fix
The editor gets 4px of padding cancelled by a -4px margin (
-m-1 p-1), so text stays put while the scroll area gains room for both rings at their existing offsets. The container is aflow-rootso the negative margin does not collapse through it and shift the placeholder. Min and max heights (default, approval state, settings font preview, and the mobile pending-answer bottom padding) grow by the 8px the margins take back, and the resting composer drops the vertical part, so every layout height is unchanged. Measured before and after: text, placeholder, container and card positions are identical in the expanded composer, the resting composer and the settings font preview.UI Changes
Chat reference, node-selected at the start of a line:
After, the same chip between words for comparison:
File mention, node-selected at the start of a line:
Skill, focused after closing its popover:
Made by Claude Opus 5.5 in Claude Code (T3 Code).
Summary by CodeRabbit