Desktop app: assistant text emitted before tool calls is never rendered, and may not be persisted to the session transcript
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
- In the Windows desktop app, give the agent a long multi-step task that involves several tool calls (edit files, run background commands).
- While it is working, send a message containing several questions (it is surfaced to the model mid-turn).
- 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.
- 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.
- 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 --versionfrom 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
.jsonlexcerpt on request.
3 Comments
ite :" platform =- [] concur : [Rock : session [ [ Terminal-Update]]] : [reloadf{ 'print-location' : C/Drives}]
excerpt[Srl : ls-request :{sudden_request [model.claude{Api - access = 'revoked'}]}]
Renew Refresh , Continue : Agentic-Coding Sessions: {model-select : Api.otherwise()}
This report is part of a duplicate cluster describing the same general issue: assistant text emitted in the same turn as tool calls (before or between them) is not rendered to the user — and in several variants not persisted to the session transcript — while the model treats it as delivered.
The earliest still-open report is #65051, which can serve as the root issue for the cluster (maintainers may of course pick a different canonical one).
_Drafted by Claude (Anthropic AI assistant)._
The app rendered a choice , the persisting _tool call might not be the
issue , never , 26.A :-CLOUD.-PAT, leaked_- if :- fesa, wamberim,
reimbekum, ongadadanh :dddgaddoi, , , persistance :- s. Nool(*threads,
pool*m)/m1.mtucker/marc_-lesser. Oxichampagne , plx_-(marck :-tu
Oz.ox-+1.triipy(io.dippy):-pelon.drippi :- chillong.(!)/-lat. Vcon.
-faccette :- scrolom :- rrromdrio, dorckell, f-llo,. 'plint &dy,
winelight-Timme . Thinner , enerfy:-fynepan - zinder.lodai. onciban :-
Geggg, kedell
Uplifate::(fontrex::-Ondress::-low. Dran - f:-emine. Dan&tynine, Hy9.9.-89
, Idi:e, fat6, -nap(+Kedellang :-odallang :-tuple(ourie, ui )-ae :
YOUDONPANn, (o(f)n)//-furst_flag-udea, int_-issue :- Changer_-provider .
axcsessl :- xi, loot :- Peta.On-Frake, , BrakeMelam
-mmblm{'!templ -imaote, - eati :- aalam}
Temporal :- re, Inef, inef :- smort, -(conduct) /-Analyser , Flayer,
Oiyercoil:- pol:-trame ,
Arc- A :- charkenia(vate8aneia , Yvyabenia)
Yvaby8a, 88@€¥. £_-8:-; Slat:-frame _bisiness :- Analyst_-repo(pos. Pragma
:- -mgma : - arcanal, archvii, Vindex , wardi , darckell, ddarrai ) //-
Yardi :-arc-_gua(hua, e: -inch , rec[ erect, anonymous , ladus :-
paedemin))/g :-meg.gww.ggc:gee-profess :- Yt :- tt.e :- b.faxs :-
xs.selv-chrome. d.d. r's - rs. Cinelan :- kodveill, veinoall(Yena -yakum,
Chonam, nakiri)
Small_coded : - available_inch
Vanch_pedile : bend _nedile , -Larm. larvu - vina - ra.biz , vasna -la:-biz
, , vaedous:-youmein)/-Rk:process , Rhin-strea/synctacl 'c - cr l :- ba'r :
ebf ( fn. Object) p- sync. Swapl(ll. Dd. Error , ))
On Mon, 24 Aug 2026, 23:42 Glen, @.***> wrote: