[BUG] Ghost characters from status area appear in scrollable content
Bug Description
Ghost characters from the status/hint area (bottom-right of screen) appear as artifacts in the scrollable conversation content. These characters persist and scroll with the content.
Environment
- Platform: macOS (Darwin 25.0.0)
- Claude Code Version: 2.1.4
- Terminals tested:
- Terminal.app (macOS native) - issue appears
- WezTerm + Zellij - issue appears
- Conclusion: Not terminal-specific, appears to be Claude Code TUI issue
Root Cause Analysis
The status area text is not being properly cleared when updated. Characters get "baked into" the scrollable buffer:
- Lowercase
c= first character of "current: 2.1.4" (version hint) - Capital
C= first character of "Checking" (update check status) - Other characters may appear depending on status text at time of bug
Mechanism:
- Status area displays text (e.g., "current: 2.1.4" or "Checking...")
- Status updates or screen scrolls
- First character(s) not properly erased from buffer
- Ghost character now part of scrolled content
- Character persists until scrolled off screen
Steps to Reproduce
- Launch Claude Code
- Have a conversation that causes the screen to scroll
- Observe the right side of screen at empty lines
- Ghost characters (typically
corC) appear at the same column as the status text
Expected Behavior
The status area should be rendered as an overlay or properly cleared when the screen scrolls. No artifacts should remain in the scrollable content.
Actual Behavior
Characters from status text appear on empty lines in the conversation area, at the same column position as the status/version text. These characters scroll with the content.
Evidence
- Characters always appear at same column as status text (right side)
- Multiple
ccharacters visible at different vertical positions (see screenshots) - Characters only appear on empty lines (never overwrite existing content)
- Resizing window triggers full redraw and temporarily fixes issue
Screenshots
!ghost-char-single-c
!ghost-char-multiple-c
(Screenshots show lowercase c appearing at the same column as "current: 2.1.4" version text)
Workarounds
- Resize window (triggers full redraw)
- Ignore (cosmetic only, doesn't affect functionality)
Related Issues
- #10375 - Focus reporting escape sequences (similar TUI rendering category)
- #1509 - Random characters in input area (different root cause)
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗