[BUG] Claude Desktop/web remote control drops [1m] model suffix, silently downgrading 1M context to 200K

Resolved 💬 2 comments Opened Mar 16, 2026 by tfvchow Closed Apr 13, 2026

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?

When Claude Desktop or Claude Code web connects to a CLI session via /remote-control and sends a message, it issues a set_model control request with claude-opus-4-6 (no [1m] suffix), downgrading the session from 1M to 200K context. The change persists across /clear and /resume within the same process. Any session already using >200K tokens will immediately hit auto-compaction or "context limit reached."

What Should Happen?

Remote control clients should preserve the CLI session's model, including the [1m] suffix. A set_model without [1m] should not be sent if the session is already on [1m].

Error Messages/Logs

Steps to Reproduce

  1. Start Claude Code CLI v2.1.76: claude --debug
  2. Verify: /context shows claude-opus-4-6[1m] · 1000k tokens
  3. Enable /remote-control
  4. Send a message from Claude Desktop (or Claude Code web)
  5. /context now shows claude-opus-4-6 · 200k tokens

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.76

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Other

Additional Information

Under the hood

CLI debug log shows Desktop sending a set_model control request over the remote control bridge on initial connection, immediately before the first message:

20:09:03 [bridge:repl] Inbound control_request subtype=initialize
20:09:05 [bridge:repl] Inbound control_request subtype=set_model        ← strips [1m]
20:09:05 [bridge:repl] Sent control_response for set_model result=success
20:09:05 [bridge:repl] Ingress message type=user: "Hi from Desktop"

After /model reselect, the second Desktop message only sends initialize — no set_model:

20:15:03 [bridge:repl] Inbound control_request subtype=initialize       ← no set_model
20:15:15 [bridge:repl] Ingress message type=user: "Hi from Desktop again"

Desktop main.log from debug zip:

LocalAgentModeSessions.setModel: sessionId=local_..., model=claude-opus-4-6
LocalAgentModeSessions.sendMessage: sessionId=local_..., messageLength=150

Desktop calls setModel("claude-opus-4-6") — without [1m] — before sendMessage.

iPhone remote control is apparently not affected — no set_model event in CLI debug log.

Side effects

  • Banner shows "Opus 4.6" instead of "Opus 4.6 (1M context)"
  • /model menu gains a phantom option (Opus 4.6 / claude-opus-4-6)

Workaround

| Action | Restores 1M? |
|--------|-------------|
| /model reselect | Yes — persists, Desktop won't downgrade again within same session |
| Restart claude | Yes |
| /clear | No |
| /resume (same process) | No |
| /resume (after restart) | Yes |

Tested on Claude for Mac v1.1.6679 (f8f4ff), CLI v2.1.76. Claude Code web also triggers the same behavior.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗