[BUG] Terminal rendering corruption during AI response generation (Frosting state)

Resolved 💬 3 comments Opened Feb 3, 2026 by minislively Closed Feb 7, 2026

Environment

  • Platform: macOS Darwin 25.2.0
  • Terminal: iTerm2
  • Claude Code Version: Latest
  • Plugin: oh-my-claudecode (with HUD statusline)

Description

During AI response generation ("Frosting..." loading state), the terminal rendering becomes corrupted. Text gets truncated, overlapped, and mispositioned.

Screenshots

The issue manifests as:

  • Text fragments appearing at wrong positions
  • Truncated text ("ard shortcuts for locked" instead of full text)
  • Input prompt $ appearing in wrong location
  • Status bar text bleeding into main output area

Steps to Reproduce

  1. Start Claude Code with a plugin that adds a status line (e.g., oh-my-claudecode HUD)
  2. Submit a query that requires tool use / multiple operations
  3. While AI is generating response ("Frosting..." state)
  4. Observe: Text rendering becomes corrupted intermittently

Expected Behavior

Text should render cleanly without overlap or truncation during all loading states.

Actual Behavior

  • Text fragments appear truncated
  • Lines overlap with each other
  • Cursor/prompt position becomes incorrect
  • Rendering artifacts persist until screen refresh

Analysis

This appears to be a race condition in React Ink's rendering during:

  1. Concurrent updates (AI streaming + status line updates)
  2. Terminal resize/reflow calculations
  3. Multiple render regions updating simultaneously

The issue is exacerbated when plugins add additional render regions (like status bars) that compete for terminal space during rapid updates.

Impact

  • Severity: Medium - Cosmetic but confusing
  • Frequency: Intermittent, more common with plugins
  • Workaround: Wait for completion, screen usually corrects itself

Related

  • May be related to terminal escape sequence handling
  • Similar to IME positioning issues (#18291, #16322) in that Ink rendering assumptions break

View original on GitHub ↗

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