fix(fork): truncate the slim composer placeholder under the pills - #23
Conversation
The absolute empty-state overlay wraps without growing the editor, so it painted through the inline model pill; ellipsis it on one line instead. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
Thermo-nuclear code quality review
Verdict: do not approve yet. The CSS truncate is the right fix in the right layer — but the PR also ships a second, redundant special-case path through ChatComposer that should be deleted.
What's good
- Real fix lives in
theme.custom.cssunder the fork root scope - Guard + manifest intent updated with the change
- No new abstraction, cast churn, or density-model complication
Blocker
- Dual-path / spaghetti growth in
ChatComposer—isComposerSlim && "overflow-hidden"is an admitted safety net. The CSS rule already hasoverflow: hidden+nowrap+ellipsis. Keep one mechanism intheme.custom.css; drop the TSX branch and the guard that freezes it.
Non-blocking
- Guard asserts
ellipsis/nowrapbut not CSSoverflow: hidden— assert that on the theme rule once the TSX clip is gone.
No 1k-line threshold crossing from this PR (both files were already over). No approve until the dual path is collapsed.
Sent by Cursor Automation: Thermo-nuclear PR review
ReviewThe diagnosis is right and the mechanism is right. I went looking for a reason the wrap latch couldn't rescue this instead, and there isn't one: What follows is everything I'd want addressed before merge, worst first. 1. This is a 64-character string being fixed with three filesWork out which placeholders can actually reach slim.
Only the last one is long enough to be at risk. So the entire observable effect of this change is eating the tail of the default hint — and since the column is The tail being eaten is A slim-specific placeholder — 2. The
|
Truncation would eat $skills and /commands discovery. Slim gets a shorter string that still names all three affordances; drop the CSS/JSX clip path. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed the review:
Visual check of a started-thread slim composer is next — will attach a screenshot. |
Visual / geometry checkMeasured at the composer’s 768px max with the live prompt font (
(Couldn’t keep a seeded started-thread projection alive across server restart — projector rebuilds wipe bare |


Summary
Ask anything, @tag, $skills, / commandsinstead of truncating the 64-character default — truncation would silently eat the only in-UI discovery for$and/. Tall keeps the long form.ChatComposeroverflow-hiddenclip from the first pass.Test plan
vp test run apps/web/src/__fork_guards__/forkComposerShell.test.ts@,$, and/remain in the slim hint