Fullscreen renderer: with a task list on screen, a long prompt hides the line being typed (input cap ignores the rows above the prompt)

Status Open
Reported on v2.1.286
Maintainer reply None cached
Activity 0 comments · opened Oct 3, 2026

Version: Claude Code 2.1.286, fullscreen renderer (default; tui unset), macOS. Reproduces in any terminal; measured at 60×43, 60×57 and 60×86.

Follow-up to #84228, which a maintainer reproduced on 2.1.233 and which was closed as stale on 2026-09-14. It is still present in 2.1.286; this report adds the cause.

Steps

  1. Have a task list on screen (e.g. 6 tasks, so the list takes header + 5 items + "… +1" + a blank row).
  2. In the prompt, type a multi-line message (Ctrl+J for new lines, or long wrapped text) and keep going past ~11 lines on a 43-row terminal.

Expected

The prompt scrolls inside its box and keeps the line being typed, the prompt's bottom border and the footer visible — as it does when no task list is shown.

Actual

  • At 60×43 with the 6-task list, the footer is cut from line 8, the prompt's bottom border disappears at line 11, and from line 12 the line being typed is no longer drawn (the screen stays on lines 1–11).
  • Past the input cap (16 lines) the visible text lags 5 lines behind what is typed.
  • The real cursor is parked on the terminal's last row at the typing column, away from any visible text.
  • Ctrl+T (hide tasks) restores the layout at once.

| Grid | Live-region budget | Input cap | Visible prompt lines, no task list | Visible prompt lines, 6-task list |
|---|---|---|---|---|
| 60×43 | 21 | 16 | all (scrolls past 16) | 11, then 5 hidden |
| 60×57 | 28 | 23 | all (scrolls past 23) | 18, then 5 hidden |
| 60×86 | 43 | 38 | all (scrolls past 38) | 33, then 5 hidden |

Cause

  • The fullscreen layout gives the whole live region floor(rows / 2) rows: the box above the prompt gets maxHeight: floor(rows/2), overflowY: "hidden", and the prompt box gets maxHeight: max(0, floor(rows/2) − height above). It is cut from the bottom.
  • The prompt's own line cap is max(3, floor(rows / 2) − 5), computed from the full screen. It does not subtract the rows already used above the prompt (task list, effort row, spinner).
  • So with A rows above the prompt's top border, the prompt can show floor(rows/2) − A − 1 lines, but it scrolls only past its cap. When A ≥ 5, A − 4 lines, including the line being typed, are hidden at any terminal height.

Suggested fix

Compute the prompt's line cap from the rows actually left for it, the same remaining-rows value the layout already uses for the prompt box (and for dialogs): max(3, remaining − border/footer rows). The prompt then scrolls before it is cut, and the line being typed stays visible.

View original on GitHub ↗