[BUG] Desktop app (Windows): settings.json effortLevel and the app's stored ccd-effort-level diverge silently; file edit never reaches app sessions

Status Fixed / completed
Reported on v2.1.136
Maintainer reply None cached
Activity 0 comments · opened Aug 22, 2026 · closed Aug 25, 2026

What's wrong

On the Windows desktop app, effortLevel in ~/.claude/settings.json and the app's own stored effort preference can sit at different values, and the app's copy is what new app sessions use. There is no visible sign the two disagree, so editing settings.json looks like it worked and does nothing for app sessions.

Observed state on this machine

  • ~/.claude/settings.json contains "effortLevel": "medium" (edited today).
  • The desktop app's Local Storage holds key ccd-effort-level with value high. Found by grepping %APPDATA%\Claude\Local Storage\leveldb\*.ldb.
  • No other override exists: no effortLevel in the project .claude/settings.json, ~/.claude/settings.local.json, or ~/.claude.json; no managed-settings file at C:\ProgramData\ClaudeCode\; no effort-related environment variable other than the session's own CLAUDE_EFFORT.
  • ~/AppData/Roaming/Claude-3p/claude_desktop_config.json has no effort key at all and has not been written since April, so on this version the preference lives only in Local Storage.

Reported symptom from the user side: new sessions keep starting at high after the setting is changed to medium.

What should happen

One source of truth, or a visible reconciliation. Either the app reads effortLevel from settings.json at launch, or the app's picker writes back to settings.json. If both stores are kept on purpose, the app should say which one is in effect rather than leaving them silently out of step.

What I could not verify

I did not test whether choosing an effort in the app's picker persists across a restart, and I did not restart the app to see whether it normalizes ccd-effort-level from settings.json on launch. So I cannot say which of the two stores is meant to win. The report here is the divergence itself and the fact that the file edit does not reach the app.

Related

  • #71774 describes the same key (ccd-effort-level) and reports the app resetting it toward the settings.json value, which is the opposite direction from what is happening here.
  • #66266 reports effort selection not persisting across chats.
  • #87326 reports Remote Control ignoring settings.json effortLevel.

Environment

  • Windows 11 Home 10.0.26200
  • Claude Code CLI 2.1.136
  • Claude Code desktop app (version not determined from logs)

View original on GitHub ↗