anthropics / anthropics/claude-code

[BUG] Input box overflows past the bottom of the screen when the task widget is visible — re-file of #84228 (reproduced by maintainer, closed stale), still present on 2.1.272

Open
#94,556 0 comments 0 reactions 0 assignees View on GitHub
area:tui bug has repro platform:linux
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

### What's Wrong?

Re-filing #84228, which the stale bot closed on 2026-09-14 after a maintainer had reproduced it (2026-08-17, on 2.1.233) and described the cause. The bug is unchanged on **2.1.272** — re-reproduced today with the original steps.

When the task-list widget is visible (any tasks in the list), typing a long message makes the input box grow **past the bottom edge of the terminal** instead of capping its height and scrolling. The rendered box keeps showing the *head* of the message; the tail — and the cursor — are pushed below the last terminal row, so you keep typing without seeing what you type. Hiding the widget with Ctrl+T re-lays out correctly; showing it again breaks it again, deterministically.

Maintainer diagnosis from #84228 (bcherny, 2026-08-17): *"in the fullscreen TUI the input area's height budget doesn't account for the task widget (and other rows sharing that bottom area), so the box is clipped from the bottom instead of scrolling."* No CHANGELOG entry between 2.1.233 and 2.1.272 mentions a fix, and the repro below still fails.

### What Should Happen?

The input box caps its visible height to the space actually remaining under the widget and scrolls its viewport so the cursor line is always visible — the same behavior it has when no task widget is shown.

### Steps to Reproduce

Deterministic, config-free tmux server (`tmux -f /dev/null`, 89x45), Linux, 2.1.272, `"tui": "fullscreen"`:

1. `claude "Create 6 tasks in the task list titled Task A through Task F"` — the task widget renders above the input.
2. Type ~250 five-character words as real keystrokes (`v001 v002 … v250`), then a marker `TAIL-MARKER-1`.
3. Once the input exceeds the rows left under the widget, the bottom border and statusline are gone off-screen; `tmux capture-pane` shows the last visible row holding `v188 … v204` while the cursor sits on the pane's last row (row 44 of 45). `TAIL-MARKER-1` appears nowhere on screen.
4. Ctrl+T (hide the task list) → full re-layout, tail + marker visible; Ctrl+T again → clipped again.

Capture excerpt at step 3 (last visible rows; the input continues to v250 + marker below the screen edge):

```
v171 v172 v173 v174 v175 v176 v177 v178 v179 v180 v181 v182 v183 v184 v185 v186 v187
v188 v189 v190 v191 v192 v193 v194 v195 v196 v197 v198 v199 v200 v201 v202 v203 v204
```

(`tmux display-message '#{cursor_y} #{pane_height}'` → `44 45`.)

### Environment

* Claude Code 2.1.272 (Linux, NixOS); originally reported on 2.1.222 macOS and reproduced by the maintainer on 2.1.233 macOS.
* Terminal: tmux (config-free server for the repro); iTerm2 + tmux and eternal-terminal in daily use.
* Renderer: fullscreen. Statusline and background-agent roster add more footer chrome, which only makes the overflow trigger sooner.

### Related

* #84228 — the original report (closed stale 2026-09-14, labeled `reproduced`).
* #74322 — open, `reproduced`: fullscreen clips the shell-details footer and output box; a commenter on #84228 attributes both to the same bottom-area layout budget.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by running the config-free tmux reproduction in the fullscreen TUI with the task widget visible, then compare the layout after Ctrl+T hides and restores it. Trace the input height budget and viewport behavior for the task-widget and footer rows; done means the box stays within the terminal and keeps the cursor and tail visible.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.