[BUG] Desktop & Mobile: summarizedThinking feature flag (3531779070) forces --thinking-display summarized on all models with no user opt-out — full thinking chains completely inaccessible
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?
The CC desktop and mobile apps inject --thinking-display summarized into every CLI spawn via a hardcoded feature flag (summarizedThinking, ID 3531779070), causing all thinking blocks to arrive with empty content ("thinking": ""). The showThinkingSummaries user preference only toggles between "summarized" (empty content) and "omitted" (no thinking blocks at all) — neither returns full thinking chains. There is no user-facing setting, environment variable, or CLI flag to opt out and restore full thinking.
Confirmed across all models tested: claude-opus-4-6, claude-opus-4-7, claude-opus-4-8, claude-sonnet-5, claude-sonnet-4-6, claude-haiku-4-5. All return empty thinking content on both desktop (macOS) and mobile (iOS). Pro subscription.
What Should Happen?
Users should be able to see full thinking chains (complete thinking content in thinking blocks), not empty strings. There should be a way to opt out of the summarizedThinking feature flag — e.g., a thinkingDisplay: "full" setting in settings.json, an environment variable, or a CLI flag.
Continuation sessions (created by CLI on context overflow) already return full thinking — proving the API supports it. It's the desktop/mobile app layer that strips it.
Error Messages/Logs
From ~/Library/Logs/Claude/main1.log:
2026-08-25 12:06:29 [info] [CCD] thinking display → summarized (view_open) for local_ca8acfea-...
2026-08-25 12:12:38 [info] [CCD] thinking display → summarized (view_open) for local_e5e0ee29-...
From transcript JSONL — every thinking block looks like this:
{"type": "thinking", "thinking": "", "signature": "EuYBCk..."}
thinking_tokens in usage data is non-zero (model IS thinking), but content is empty string.
Steps to Reproduce
- Open Claude Code desktop app (macOS) or mobile app (iOS)
- Ensure ~/.claude/settings.json has "thinking": true and "preferences": {"showThinkingSummaries": true}
- Open a new session on any model
- Send any message that triggers thinking
- Check the transcript JSONL file — thinking blocks have "thinking": "" with only signature present
- Alternatively, check ~/Library/Logs/Claude/main1.log — you'll see thinking display → summarized (view_open)
For comparison (proving API supports full thinking): 7. In the same session, keep chatting until context overflows and a continuation session is auto-created 8. The continuation session's thinking blocks will have full content — because the CLI spawns it directly, bypassing the desktop app's buildBaseExtraArgs()
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
I don't remember, but worked before ~2026-08-25.
Claude Code Version
2.1.247
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Root cause (reverse-engineered from app.asar):
Feature flag 3531779070 (summarizedThinking) is hardcoded to true via WC(true) in .vite/build/index.chunk-6ly5IEOz.js. This drives buildBaseExtraArgs() in .vite/build/index.chunk-CDfY79W6.js:
Both branches set a thinking-display value. There is no code path where the flag is on and thinking-display is left unset (which would give full thinking).
What does work (workarounds, neither is a real solution):
Terminal CLI (claude in Terminal.app) — bypasses desktop injection
Continuation sessions (context overflow auto-continue) — CLI self-spawns, bypasses desktop
Related issues:
#49268 — Opus 4.7 display: "omitted" default (different mechanism, same symptom)
#77460 — Desktop ignores showThinkingSummaries on 4.7+/Fable 5 (closed, partial fix)
#31326 — Terminal analog
3 Comments
Update — CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 does not restore full thinking
Tried setting CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 in ~/.claude/settings.json env, as suggested by another user as a potential workaround.
Result: No effect. Thinking blocks still arrive with empty content on both desktop and mobile. This variable only controls adaptive thinking depth — it does not bypass the summarizedThinking feature flag that strips thinking content.
Confirmed with CLAUDE_EFFORT=max and thinking: true already enabled. The summarizedThinking flag remains the sole blocker.
Worth noting: thinking_tokens in API usage is non-zero — the model IS consuming thinking tokens (and users are being billed for them), but the content is being stripped before it reaches the client. This isn't a cost-saving measure; it's a visibility removal.
Seeing this on the macOS desktop app, Code tab.
Versions: Claude desktop 2.37337.1 · Claude Code 2.1.295 (Code tab) · macOS 15.6.1
What happens
Logs: my
main.logshows the samethinking display ‚Üí summarized (view_open)line, about 3 s after each session view opened (2026-08-21 to 2026-09-02).Data on disk: on 2026-10-14 every thinking block in the session JSONL under
~/.claude/projects/was non-empty (32 blocks), and the display still showed only the label.View control
Likely intent
I think this change addresses a legitimate UX issue: thinking text takes up a lot of the session's screen real estate, and it makes the session harder to navigate without getting lost.
Requested fix
Thinking blocks that collapse and expand, with the full text there when expanded. That keeps the transcript navigable and the reasoning readable. And the transcript view setting reachable from the session menu and Preferences.
Impact
I use the thinking display both to help retain my own focus and to internalize how Claude is going about a task. Without it, I'm blind. The current set-up is truly unworkable.