Statusline/layout oscillates ±1 line while a background task runs (blank status row toggling) — regression in 2.1.186

Status Closed — not planned
Reported on v2.1.186
Maintainer reply ✓ Yes — bcherny
Activity 6 comments · opened Jun 23, 2026 · closed Aug 24, 2026
💡 Likely answer: A maintainer (bcherny, collaborator) responded on this thread — see the highlighted reply below.

Summary

On 2.1.186, whenever a background task/command is running, the terminal layout
oscillates up and down by exactly one line, continuously — even while completely
idle (not typing, no model output). There is no visible status text: it looks like
a blank/zero-content status row is being toggled in and out, shifting everything above
it ±1 line. The oscillation stops the instant the background task completes.

Environment

  • Claude Code: 2.1.186 (native installer; ~/.local/share/claude/versions/2.1.186)
  • OS: macOS
  • Terminal: Apple Terminal
  • TERM=xterm-256color

Steps to reproduce

  1. Start a long-running background command (e.g. a Bash tool call with

run_in_background: true, or any task that shows in the background-task UI).

  1. Leave the session idle — don't type; no assistant generation in progress.
  2. Observe the lines above the input area jump up/down by one line, repeatedly,

the whole time the task runs.

  1. When the background task finishes, the oscillation stops immediately.

Expected

Stable layout while a background task runs — the status row should render its content
stably or reserve a fixed height, with no per-tick relayout.

Actual

A blank / zero-content status row appears to toggle in and out on a redraw timer,
producing continuous ±1-line vertical jitter for the entire duration of the task.

Regression

  • Did not occur on 2.1.185.
  • Began immediately after the native installer auto-updated to 2.1.186 (2026-06-22);

the symptom's onset matches the update time exactly.

  • 2.1.186's notes include background-task display changes (e.g. "Fixed background task

previews flashing raw tool names before the agent's plan loaded", "Fixed background
session recaps being duplicated") — likely the same rendering area.

  • Sibling statusline regression in the same version: #70421 (OSC 8 hyperlink escape

sequences stripped in statusline output, also a 2.1.185 → 2.1.186 regression).

Workaround (believed, not yet confirmed)

Pinning to the prior build — claude install 2.1.185 with the auto-updater disabled —
is expected to avoid it, since the symptom began precisely with the 2.1.186 update.

View original on GitHub ↗

5 Comments

github-actions[bot] · 2 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/20427
  2. https://github.com/anthropics/claude-code/issues/69817
  3. https://github.com/anthropics/claude-code/issues/43391

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

ha2223 · 2 months ago

Not a duplicate of the three suggested — checked each:

  • #20427 — viewport jitter from auto-scroll/anchoring during active generation (filed Jan 2026, closed). Different cause; this report is about an idle, blank status row toggling, and is specific to 2.1.186.
  • #43391duplicated/overlapping task panes and status rows (render-on-top corruption), already closed as a duplicate. Different symptom from a single blank row toggling ±1 line.
  • #69817 — closest, and likely the same root cause (a status row whose show/hide changes terminal height → the whole view flickers). But the trigger and surface differ: #69817 is the VS Code extension's ⧉ In <file> context line under the VS Code integration. This issue has no VS Code involved — it's a background-task status row in plain Apple Terminal, and it's a clean 2.1.185 → 2.1.186 regression (onset matched the auto-update exactly; 2.1.186 changed background-task display and also shipped statusline regression #70421).

Requesting this stay open. If maintainers confirm #69817 and this share one underlying "status-row height toggling" fix, happy to consolidate — but the background-task trigger (no VS Code) and the precise 2.1.186 regression window are distinct, repro-backed data points worth keeping.

steveyegge · 1 month ago

Still reproduces on 2.1.201 (current latest as of this writing), macOS, native installer.

Two data points to add:

  1. The 2.1.198 change making subagents run in the background by default has widened the blast radius. Since any actively-working session now almost always has a background task alive, the ±1-line oscillation runs for essentially the entire duration of normal work (the whole time the spinner is going), not just during explicit run_in_background commands. With several parallel worker sessions on screen, all of them twitch continuously.
  1. Not specific to Apple Terminal. Also reproduces with Claude Code running inside Emacs terminal emulators (TERM=xterm-256color). The symptom matches OP's diagnosis exactly: a blank/zero-content status row toggling in and out directly below the permission-mode footer line (">> bypass permissions on"), shifting everything above it up/down by one line.

No custom statusLine configured, so the statusline-script trailing-newline cause is ruled out.

bcherny collaborator · 14 days ago

Thanks for the detailed report. I tried hard to reproduce this on Linux on the current release 2.1.233 — and also on 2.1.186, the version you identified as the first bad one — and couldn't get the oscillation in either:

  • Started a background task both ways: a sleep run in the background by Claude (run_in_background: true) and a ! bash-mode command backgrounded with ctrl+b
  • Left the session idle with the task running, in both the default and fullscreen (/tui) renderers, at 100×30 and 80×24
  • Captured the screen every 0.5s for 15–20s and diffed: every snapshot was byte-identical — no ±1-line movement

Since 2.1.186 itself doesn't show it in this setup, it looks environment-specific rather than fixed-in-the-meantime. To pin it down, could you share:

  1. Does it still happen for you on the current release (2.1.233+)?
  2. Do you have a custom status line configured (a statusLine command in ~/.claude/settings.json)? If so, does removing it temporarily stop the oscillation?
  3. Your terminal window size, and the output of /status
  4. If possible, a short screen recording of the oscillation

🤖 Generated with Claude Code

github-actions[bot] · 14 days ago

We weren't able to reproduce this. Could you provide steps to trigger the issue — what you ran, what happened, and what you expected? This issue will be closed automatically if there's no activity within 7 days.

Showing cached comments. Read the full discussion on GitHub ↗