[Bug] Severe terminal scroll lag starting in 2.1.112 (statusline ruled out)

Resolved 💬 3 comments Opened Apr 17, 2026 by 001005HS Closed Apr 20, 2026

Environment

  • Claude Code: 2.1.112 (regression; prior versions through ~2.1.108 were smooth in the same setup)
  • OS: Linux 6.19.6 (Ubuntu noble, t2 kernel on MacBook Pro)
  • Terminal: xterm-256color, tmux 3.4
  • Relevant env:
  • CLAUDE_CODE_NO_FLICKER=1
  • CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
  • CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Symptom

Scrolling the terminal buffer (mouse wheel, PgUp/PgDn, Shift+Up/Down) is severely laggy — the UI hitches for hundreds of ms per scroll event, making the CLI effectively unusable for reviewing earlier output. Appeared the day I auto-updated to 2.1.112; no other environment changes.

Reproduction

  1. Start claude and run any command that produces moderately long output (e.g. a few tool calls with diffs, or a long agent response).
  2. Try to scroll the buffer up with mouse wheel or PgUp.
  3. Observe stutter / delayed repaint on every scroll tick.

Expected

Scrolling should be smooth as it was on 2.1.108 and earlier (same terminal, same tmux, same settings).

Diagnostic done

  • Disabled statusline (removed statusLine block from ~/.claude/settings.json and set claude-hud@claude-hud: false). Restarted Claude Code.
  • Lag still present with statusline fully off.
  • This suggests the regression is in the core renderer / buffer handling in 2.1.111–2.1.112, not in plugin/statusline invocation frequency.

Related prior rendering issues

  • #42087 — terminal rendering: 100% write ratio, input latency during streaming
  • #48810 — /context output overlaps with diff/tool output
  • #43571 — rendering corruption with concurrent background agents

These suggest the renderer has been churning recently; this report is specifically about scroll performance regression in 2.1.112 independent of statusline.

Requests

  • Confirm whether buffer redraw / scroll handling changed in 2.1.111 or 2.1.112.
  • If possible, provide a flag to fall back to the prior renderer while this is investigated.

Notes

  • Statusline ruled out (still laggy without it).
  • Have not yet isolated tmux vs. bare terminal; happy to retest outside tmux if it helps narrow this down.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗