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

未关闭
#94,032 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:desktop bug has repro platform:ios platform:macos
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。