Skip to content

Stale scrollback frames interleave with live region in Claude Code panes during CJK streaming (persists on 0.6.8) #572

@resodo

Description

@resodo

Environment

  • herdr 0.6.8 (Homebrew, stable channel), server and client both 0.6.8, protocol 12
  • kitty 0.45.0
  • macOS 26.5 (Darwin 25.5.0)
  • Claude Code 2.1.170, zsh
  • Content: heavy Chinese (double-width) text mixed with English

Symptom

In a long-running Claude Code pane, scrollback intermittently shows fragments of OLD frames interleaved with current content:

  • struck-through task-list lines from Claude Code's footer widget (SGR 9) appear merged into unrelated earlier output lines;
  • the -- INSERT -- auto mode on status line is duplicated 3-4 times at different scrollback positions;
  • characters from two different render cycles concatenate within a single line (e.g. diff content + task-list title interleaved);
  • CJK text occasionally splits/misaligns at the seams.

Ctrl+L (app repaint) or a window resize clears the live screen; already-baked scrollback stays corrupted.

When it triggers

Most reliably when several footer redraw sources coincide while the assistant is streaming large CJK output:

  • Claude Code error banner redraws (API Error: ... ConnectionRefused during a network blip)
  • Claude Code auto-update banner (update failed - Run /doctor)
  • task-list footer updates (items completed -> strikethrough)

What I ruled out

Guess

The pane VT/compositor occasionally mishandles Claude Code's cursor-jump live-region repaints under load, committing partial frames into scrollback; SGR state (strikethrough) leaks across the seams.

Screenshots from both 0.6.6 and 0.6.8 will be attached in a comment. Happy to test a preview build or collect a recording with whatever instrumentation helps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions