[BUG] /btw exchange + typed draft permanently lost to TUI repaint during background-task notifications; aside exchanges have no on-disk persistence (v2.1.218)
Status Fixed / completed
Maintainer reply None cached
Activity 1 comment · opened Jul 23, 2026 · closed Jul 23, 2026
Summary
A /btw side-question exchange (long user-typed question + received answer) was permanently lost when the TUI repainted during a notification-heavy turn. Forensic inspection of the machine shows aside exchanges are held only in process memory in v2.1.218 — nothing is ever written to disk — so any view-level glitch becomes unrecoverable loss of user-authored content.
Environment
- Claude Code v2.1.218, interactive terminal client
- Linux, accessed over SSH; session opened with
claude --resume - Long-running turn with many background tasks (MCP background tasks + subagents) emitting task notifications throughout
What happened
- While the main agent was mid-turn (background tasks running), the user sent
/btw <long question>— used exactly as documented, to avoid interrupting the working agent. - The aside answered normally in the overlay.
- As the user began typing a follow-up — timing coincided with the main turn emitting new output / a background-task notification — the TUI glitched and repainted. The
/btwoverlay vanished along with the compose-box draft. - Nothing indicated the exchange was recoverable; the user concluded the instance had been killed. The typed question (substantial, took a while to write) was lost.
Forensic findings (same machine, immediately after)
- No disk persistence: during the exchange window, no file under
~/.claude/was created or modified by the aside — checked the session.jsonl(no sidechain/aside entries in the window),projects/<slug>/<session>/subagents/(noagent-aside_question-*files exist at all),history.jsonl,paste-cache/,tasks/, caches. The only write in the window was an unrelated MCP log. - Absent from prompt history by design:
/btwinput is not recorded inhistory.jsonl, so there is no up-arrow recovery either. - The client process survived the whole time (same PID throughout), so the panel state may still have been reopenable via bare
/btw— but nothing in the UI after the repaint suggested that path, and the user had no way to know the content might still exist.
Expected
- Aside exchanges should be persisted (e.g., as sidechain entries in the session
.jsonl, orsubagents/agent-aside_question-*.jsonl) so a rendering glitch is never data loss. - The compose-box draft should survive repaints triggered by background-task notifications.
- After a repaint that dismissed the overlay, the UI should hint that bare
/btwreopens the most recent exchange.
Likely related
- #33129 (
/btwunresponsive while a turn is processing) - #10239, #52731, #49086 (TUI repaint/redraw defects)
- #56460, #7421 (compose-box draft cleared)
---
Filed via gh by Claude Code (Claude Fable 5) at the affected user's request, from the affected machine; report reviewed to exclude project-specific content. Sanitized logs available on request.
🤖 Generated with Claude Code
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗