Skip to content

fix(web): composer chip rings no longer clip at the editor edge - #13301

Merged
maria-rcks merged 1 commit into
pingdotgg:mainfrom
flamboh:fix-chip-highlight-clipping
Sep 24, 2026
Merged

maria-rcks merged 1 commit into
pingdotgg:mainfrom
flamboh:fix-chip-highlight-clipping

Conversation

@flamboh

@flamboh flamboh commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

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 a flow-root so 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:

Before After
Before: chat reference ring clipped on the left After: chat reference ring fully visible

After, the same chip between words for comparison:

After: mid-line chat reference ring

File mention, node-selected at the start of a line:

Before After
Before: file mention ring clipped on the left After: file mention ring fully visible

Skill, focused after closing its popover:

Before After
Before: skill focus ring clipped on the left After: skill focus ring fully visible

Made by Claude Opus 5.5 in Claude Code (T3 Code).

Summary by CodeRabbit

  • Style
    • Adjusted the prompt editor’s spacing and height in the chat composer, including its pending-answer and approval layouts.
    • Updated the prompt editor’s sizing and positioning for a more consistent layout.
    • Increased the minimum and maximum heights of prompt previews in settings.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 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.

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: 8a0f8ff8-5065-4787-b502-cefefbfa2951

📥 Commits

Reviewing files that changed from the base of the PR and between 82720ce and 1e5e9ee.

📒 Files selected for processing (3)
  • apps/web/src/components/ComposerPromptEditorTiptap.tsx
  • apps/web/src/components/chat/ChatComposer.tsx
  • apps/web/src/components/settings/SettingsFontPreviews.tsx

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


📝 Walkthrough

Walkthrough

Prompt editor spacing and height classes change in the editor, chat composer, and font preview. The editor wrapper also adds flow-root.

Changes

Prompt editor layout

Layer / File(s) Summary
Adjust prompt editor spacing and heights
apps/web/src/components/ComposerPromptEditorTiptap.tsx, apps/web/src/components/chat/ChatComposer.tsx, apps/web/src/components/settings/SettingsFontPreviews.tsx
The editor spacing and height classes change, and its wrapper adds flow-root. The chat composer resets resting vertical margins and padding, increases mobile pending-answer bottom padding, and raises the approval-state minimum height. The font preview increases its minimum and maximum heights.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Suggested reviewers: utkarshusername

Merge Risk: ⚪ Minimal · up to 1e5e9

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)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 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 summarizes the main change: preventing composer chip rings from clipping at the editor edge.
Description check ✅ Passed The description clearly explains the problem, fix, layout impact, and UI changes. It includes before-and-after screenshots. It does not use the template's exact "What Changed" and "Why" headings and o…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 23, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 1e5e9ee

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.

@flamboh
flamboh force-pushed the fix-chip-highlight-clipping branch from 14b4996 to 82720ce Compare September 24, 2026 02:31
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 24, 2026 02:31

Dismissing prior approval to re-evaluate 82720ce

@macroscopeapp

This comment has been minimized.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 24, 2026
@flamboh
flamboh force-pushed the fix-chip-highlight-clipping branch from 82720ce to 1e5e9ee Compare September 24, 2026 03:02
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 24, 2026 03:02

Dismissing prior approval to re-evaluate 1e5e9ee

@flamboh flamboh changed the title fix(web): composer chip rings no longer clip on the first line fix(web): composer chip rings no longer clip at the editor edge Sep 24, 2026
@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XS 0-9 changed lines (additions + deletions). labels Sep 24, 2026
@macroscopeapp

This comment has been minimized.

@maria-rcks
maria-rcks merged commit 9030a60 into pingdotgg:main Sep 24, 2026
24 of 25 checks passed
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: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.

2 participants