Repository navigation
[Bug]: Claude 5.x text written before a tool call is shown as a summarized "Thought" because the adapter forces thinking display "summarized" #18355
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- In a Claude thread on Claude Opus 5.5, give the agent a task where it thinks, writes findings for the user, then calls a tool (e.g.
AskUserQuestion) in the same response. - Look at the timeline while the question is waiting for an answer.
The model decides which form the text takes, so it doesn't happen every time. In one thread, four tests each put a marker word in text written just before an AskUserQuestion call:
| Test | Order in the response | Stored by Claude Code as | Shown in T3 |
|---|---|---|---|
| 1 | text → question | text |
visible |
| 2 | command → text → question | text |
visible |
| 3 | thinking → text → question | thinking |
collapsed "Thought", reworded |
| 4 | thinking → command → text → question | text |
visible |
Expected behavior
Text the model writes for the user before a tool call appears as assistant text, in place, before the tool call.
Actual behavior
It appears as a collapsed Thought row whose text is reworded, not what the model wrote. When the tool is AskUserQuestion, the question card shows up with no visible explanation.
Example from my thread, in order:
- Thought: "I should check the no-spec-docs.md memory file…"
- Command:
cat no-spec-docs.md … - Thought: "There's a memory file saved today…"
- Thought: "Found it:
no-spec-docs.mdturns an offhand comment into a blanket 'never write spec/design docs' rule…" - AskUserQuestion: "What should I do with the no-spec-docs memory?"
The model wrote the third Thought's content as its reply to me. I only saw it as a reworded, collapsed Thought.
Cause
On Claude 5.x, text the model writes between tool calls can come back as a thinking block. Anthropic's Opus 5.5 migration guide says "Text between tool calls is returned in thinking blocks." Under summarized display, those blocks can't be told apart from reasoning. On main at d07a07f3:
apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:980–985defaultsthinking-displaytosummarized, and:1031requeststhinking: { display: "summarized" }.:6708onward stores everythinkingcontent block as areasoningitem.
So text written for the user is summarized and filed as reasoning. This is "problem 2" in this comment on #11353, which measured the shape in 23% of Opus 5.5 responses and 45% of Fable 5.1 responses. #11353 was closed when #2829 merged, and #14698 only changes folding, so neither addresses it.
Possible fix
For Claude 5.x, request the updates display mode (highlights in the CLI). Or, as the migration guide recommends, render the non-empty thinking block that comes right before a tool_use inline as assistant text.
Impact
Major degradation or frequent failure
Version or commit
T3 Code 0.0.46-nightly.20261011.2980. Code checked on main at d07a07f3.
Environment
Linux (Fedora 44), AppImage desktop app, Claude Code 2.1.296, Claude Opus 5.5
Logs or stack traces
The Claude Code session JSONL for the turn above has the user-facing text stored as a thinking block, followed directly by the tool call, with no text block:
{"type":"thinking","thinking":"Found it: `no-spec-docs.md` turns an offhand comment into a blanket \"never write spec/desi…"}
{"type":"tool_use","name":"AskUserQuestion"}
Workaround
None through settings. #11353 mentions the launch argument --thinking-display highlights. I haven't tested it, and the flag isn't listed in claude --help.
Activity
juliusmarminge commentedon Oct 11, 2026
Note
Grok responding on behalf of Julius.
Confirmed on main.
ClaudeAdapterV2.tsdefaultsthinking-displaytosummarized(L980–985, L1031), and the stream handler at L6708 files everythinkingblock as areasoningitem. On Claude 5.x, Anthropic returns text between tool calls asthinking, so user-facing text written right before atool_useends up as a reworded, collapsed Thought.Scope for a fix: we won't change the default display mode. Showing more raw thinking is what we declined in #13640. The narrow fix is to render the final non-empty
thinkingblock right before atool_use(on Claude 5.x) as assistant text, which is what the migration guide recommends. Summarized display may still reword that block, and that part is upstream.#11353/#2829 and #14698 don't cover this, so I'm keeping it open as a bug.
tecnobrat commentedon Oct 11, 2026
More detail on the example under Actual behavior, since it bears on the rewording point above. The turn's full content, from the Claude Code session JSONL:
thinking: "I should check the no-spec-docs.md memory file…"tool_use: Bashthinking: "There's a memory file saved today…"thinking: "Found it:no-spec-docs.mdturns an offhand comment into a blanket 'never write spec/design docs' rule…"tool_use: AskUserQuestionThe turn has no
textblock. Afterward, the model said it had written this reply to the user just before the question:Block 4 is a summary of that reply:
design-discussions.mdalso links to it, but that file is about how to discuss options, not about specs"design-discussions.mdalso links to it despite being unrelated to specs"The full reply was never stored or shown. Only the summarized thinking block exists. The quoted reply is the model's own recollection, since the original wording isn't in any log.
So the rewording isn't hypothetical: with the narrow fix, this case would show block 4's summary as assistant text, not the reply the model wrote.
diogovalada commentedon Oct 13, 2026
I’m seeing this too. When I steer Claude mid-task, it often replies to me and then keeps working, but those replies seem to get buried in the collapsed thinking/tool activity. I end up missing answers to my messages.