[P0] Desktop Code tab: struck-through superseded prompt text does not wrap or clip — overflows the composer and the window
Summary
In the Claude desktop app (Code tab), the struck-through "superseded / previously typed prompt" text that is drawn in the composer is laid out as a single unwrapped line. When that text is longer than the composer width it does not wrap and is not clipped — it runs past the right edge of the input box, past the pane, and off the edge of the window, painting over the surrounding chrome (session header, close button, model/effort controls).
The result is unreadable overlapping text across the bottom of the window and a composer that no longer visually contains its own content.
Steps to reproduce
- Open a session in the Code tab.
- While Claude is working, type a long prompt (~1–2 sentences, no newlines) into the composer so it is queued.
- Interrupt / supersede it by typing a new short prompt (e.g.
yes, go ahead,). - The previous prompt is rendered struck-through in the composer area.
Expected: the struck-through text wraps inside the composer (or is truncated with an ellipsis / clipped at the composer bounds) and occupies its own row above the active input.
Actual: the struck-through text renders on one line at its intrinsic width, overflowing horizontally out of the composer and out of the window, and overlapping the active input box and the surrounding UI.
Likely root cause
The struck-through text node appears to be rendered as an overlay/sibling of the input rather than as flow content of a width-constrained container:
- no
white-space: pre-wrap/overflow-wrap: anywhereon that node, so it never wraps; - no
max-width: 100%/min-width: 0on it or its flex parent (a flex child defaults tomin-width: auto, so it refuses to shrink below its content width); - no
overflow: hiddenon the composer, so nothing clips the overflow at the pane boundary.
Any one of those three would prevent the escape; all three appear to be missing.
The desktop app bundle only ships the Electron shell locally (app.asar → .vite/renderer/main_window is a thin host), so I could not point at the exact component — this is from observed behavior.
Impact — why P0
- The composer, the primary input surface, becomes visually broken and the active input is hard to read.
- The overflowing text paints over window chrome including the session close control, so it can be mistaken for interactive text / obscure real controls.
- It is triggered by an extremely common flow (typing while Claude is working), not an edge case.
Environment
- Claude desktop app 2.2553.1 (macOS)
- Claude Code CLI 2.1.278
- macOS 26.5.1
(Screenshot omitted: the reproduction contained internal project names. Happy to provide a redacted capture on request.)
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗