GNOME Terminal window shrinks vertically during response streaming (Wayland)
Description
While Claude Code is actively generating a response, the GNOME Terminal window shrinks vertically from the bottom up, one row at a time, in sync with the live status/spinner updates — eventually leaving only the title bar and almost no viewing area. Dragging the window back to its original height works, but it immediately starts shrinking again on the next update tick. This repeats continuously until the response finishes streaming, at which point it stops shrinking (window stays at whatever reduced height it was last left at).
Notably, this did not happen at the start of the session — it began partway through an otherwise normal session, with no identifiable triggering action (no specific command, idle period, or screen lock/unlock that the user could pin it to). Once it started, it has recurred on every subsequent response.
This points at one of the live-redraw escape sequences being misinterpreted as an actual window-resize request (e.g. the XTWINOPS CSI 8 ; height ; width t family) rather than just a cursor reposition/in-place rewrite, specifically under GNOME Terminal + VTE + Wayland.
Environment
- Claude Code version: 2.1.185
- Terminal: GNOME Terminal 3.56.2, VTE 0.80.3
- Session type: Wayland (
XDG_SESSION_TYPE=wayland) - OS: Ubuntu 25.10
Steps to reproduce
- Open Claude Code in GNOME Terminal under a Wayland session.
- Use the session normally; the issue was not present at the start.
- At some unpredictable point, send any prompt that takes more than a few seconds to answer (so the live status line updates repeatedly).
- Observe the terminal window's height shrinking by approximately one row per status update.
- Manually drag/resize the window back to its original height — it snaps back successfully.
- Observe shrinking resumes on the next status update, continuing until the response finishes.
- Once triggered, the behavior recurs on every later response in the session.
Expected behavior
The terminal window's geometry should never change during normal operation — live status/spinner updates should only rewrite content within the existing window size, not resize the window itself.
Actual behavior
The window height shrinks by one row per live status update while a response is streaming, recoverable by manual resize but recurring on each subsequent update, until the response completes. The onset was sudden and not tied to any specific identifiable action.