anthropics / anthropics/claude-code
[BUG] Desktop & Mobile: summarizedThinking feature flag (3531779070) forces --thinking-display summarized on all models with no user opt-out — full thinking chains completely inaccessible
- 主要语言
- Python
- 星标
- 145k
- 派生
- 23.1k
- PR 合并指标
- PR 指标待抓取
描述
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) 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
```shell
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
1. Open Claude Code desktop app (macOS) or mobile app (iOS)
2. Ensure ~/.claude/settings.json has "thinking": true and "preferences": {"showThinkingSummaries": true}
3. Open a new session on any model
4. Send any message that triggers thinking
5. Check the transcript JSONL file — thinking blocks have "thinking": "" with only signature present
6. 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
贡献指南
这个仓库没有索引到贡献指南
调研方向
Start by reproducing the empty thinking blocks and checking ~/Library/Logs/Claude/main1.log for the summarized display message. Then inspect .vite/build/index.chunk-6ly5IEOz.js and .vite/build/index.chunk-CDfY79W6.js, especially the summarizedThinking flag and buildBaseExtraArgs() entry point. Done means users have an explicit opt-out that produces full thinking content while existing display preferences continue to work.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- ios, javascript, macos
- 领域
- cli, desktop, mobile
- Issue 类型
- 缺陷
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100