Desktop app: assistant text emitted before tool calls is never rendered, and may not be persisted to the session transcript

Open 💬 1 comment Opened Jul 11, 2026 by Gythiro

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When a single assistant turn interleaves text with tool calls in the Windows desktop app, any assistant text that is followed by more tool calls is lost to the user. Two manifestations:

A. Persisted but never rendered. An assistant message containing only a text block, emitted between tool calls, exists in the session .jsonl (standalone assistant record with a single text content block) but is not displayed anywhere: not in the conversation view, and not inside the expanded "used N tools" activity group either. Only the final text block of the turn (with no tool calls after it) is rendered.

B. Not persisted at all. A text block that shares the same assistant response with tool_use blocks (text preamble + tool calls in one message) leaves no trace in the .jsonl — searching for multiple distinctive substrings of that text yields zero hits, while the surrounding tool_use/tool_result records of the same turn are present.

This looks related to #76635 (CLI: text between tool calls and AskUserQuestion never persisted), but this report is from the desktop app, involves only ordinary tool calls (no AskUserQuestion), and adds variant A where the text IS persisted to disk yet still never rendered.

Practical impact: when the user sends questions while the agent is mid-task and the model answers before continuing with tool calls, the answer is invisible — the model appears to have ignored the user. In variant B the text is unrecoverable even from disk.

What Should Happen?

Assistant text emitted mid-turn should be visible in the conversation (inline, or at minimum inside the expanded activity group), and should always be persisted to the session .jsonl transcript.

Error Messages/Logs

None — the text is dropped silently, with no error output anywhere.

Steps to Reproduce

  1. In the Windows desktop app, give the agent a long multi-step task that involves several tool calls (edit files, run background commands).
  2. While it is working, send a message containing several questions (it is surfaced to the model mid-turn).
  3. The model replies with a text block answering the questions, then continues with further tool calls (Write/Bash/Edit), and ends the turn with a short unrelated wrap-up text.
  4. Observe the conversation: only the wrap-up text is rendered. Expanding the "used N tools" activity group shows only tool cards — the answer text is not there either.
  5. Search the session transcript (%USERPROFILE%\.claude\projects\<project>\<session-id>.jsonl) for distinctive substrings of the missing answer:
  • If the text was emitted as its own assistant message before tool calls: the record exists in the jsonl but was never rendered (variant A).
  • If the text shared one assistant response with tool_use blocks: zero hits anywhere in the jsonl (variant B).

Claude Model

Other

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.202 (Claude Code) — bundled in Windows desktop app build 1.20186.1.0 (Microsoft Store)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

  • Desktop app: Claude 1.20186.1.0 (Microsoft Store build); claude --version from the bundled core reports 2.1.202.
  • Verified variant A by locating the standalone text record in the session jsonl (present on disk, absent from the UI).
  • Verified variant B by exhaustively searching unique substrings of the missing message (0 hits) while the same turn's tool_use/tool_result records are present; a control text message that ended a later turn is persisted and rendered normally.
  • Permission mode: auto; heavy multi-tool agentic session (background tasks + file edits) when observed.
  • Happy to provide a sanitized session .jsonl excerpt on request.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗