Desktop model picker doesn't remember 1M variant; a subagent's 1M-credits 429 clamps the whole session to 200k

Status Open
Reported on v2.1.260
Maintainer reply None cached
Activity 0 comments · opened Sep 6, 2026

Environment

  • Claude Code Desktop app (Code tab) driving remote ccd-cli 2.1.255 / 2.1.260 on Linux
  • Max subscription, usage credits enabled but balance 0 (out_of_credits)

Summary

Two related problems around the [1m] model variants:

  1. Picker does not persist the 1M choice. Selecting e.g. claude-opus-4-6[1M] works for that session, but every new session starts again with the bare claude-opus-4-6 / claude-sonnet-4-6 ID (Desktop always passes --model <full id>, so settings.json model and ANTHROPIC_DEFAULT_*_MODEL cannot influence it). There is no setting to make the 1M variant the default.
  1. One subagent 429 silently clamps the main session to 200k for the rest of the process. With ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6[1M], an Agent(model: "sonnet") call gets rate_limit_error: Usage credits are required for long context requests. The 429 handler then sets a process-level latch (accountCreditLatches.longContext1mCreditsBlocked, telemetry tengu_1m_credits_clamp_activated), and the context-window resolver returns 200k for every model in the process, including the main session running a natively-1M model (Fable 5.1 / Opus 4.7) that never needed credits. Observed effect: the main session immediately auto-compacts from ~500-750k down, and every later compaction fires at ~167-170k. Nothing in the UI indicates this happened; /model X[1M] still prints "(1M context)" but the compaction threshold stays at 200k. The latch is never reset; only a process restart (new session / resume) clears it.

Steps to reproduce (2)

  1. settings.json env: ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6[1M] on an account without usage credits.
  2. Start a session with --model claude-fable-5-1 (or any native-1M model). Work until context > 200k.
  3. Call the Agent tool with model: "sonnet". Subagent fails with the 429 above.
  4. Within 2-3 minutes the main session auto-compacts; all subsequent compactions happen at ~170k preTokens.

Expected

  • The 1M entitlement clamp should be scoped to the model/request that actually requires credits, not to the whole process. A native-1M main model should keep its window.
  • The clamp should be visible (status line / message) and clearable without restarting.
  • The picker should remember the last 1M choice, or expose a setting for the default variant.

Workaround we use

Remove [1M] from the sonnet alias so subagents run bare claude-sonnet-4-6 (200k), and restart sessions that were already clamped.

View original on GitHub ↗