Claude Code releases 2.1.200/2.1.201 with Manual approval fixes
Claude Code 2.1.200 changed Manual permission defaults and fixed background-agent crash and recovery paths; 2.1.201 removed mid-conversation Sonnet 5 harness reminders. Update to reduce accidental advances and repeated reminders in stalled sessions.

TL;DR
- ClaudeCodeLog's 2.1.200 overview says Claude Code changed its default permission mode to Manual across the CLI,
--help, VS Code, and JetBrains, with commands requiring manual approval. - The 2.1.200 changelog is mostly reliability plumbing: background sessions, stale daemon locks, daemon handover, plugin loading, screen readers, voice dictation, and tmux rendering all got fixes.
- ClaudeCodeLog's 2.1.200 diff reported prompt tokens up 4,817 (+8.3%), prompt files down 3, and a Grep tool description that now explicitly says it is ripgrep-based.
- The 2.1.201 release note followed with one CLI change for Sonnet 5: sessions no longer use the mid-conversation system role for harness reminders.
- ClaudeCodeLog's 2.1.201 metadata put the second update 16 hours after 2.1.200 and measured another 10,607 prompt tokens (+16.8%).
Anthropic's official changelog has both entries, the permission-mode docs spell out Manual as the read-only-by-default mode, and the settings docs put askUserQuestionTimeout at "never" for 2.1.200. In a Hacker News thread, commenters separated AskUserQuestion from action authorization: the timer applied to follow-up planning choices, not command approval.
Manual permissions
The headline change was a safer default in the harness. The full 2.1.200 changelog says the old default permission mode is now Manual across CLI, --help, VS Code, and JetBrains.
The mechanics are narrow:
- Surfaces changed: CLI,
--help, VS Code, JetBrains. - Accepted forms:
--permission-mode manualand"defaultMode": "manual". - Behavior: according to Anthropic's permission-mode docs, Manual reviews edits, shell commands, and network requests while reads run without asking.
- Compatibility: Anthropic's permissions docs say
defaultremains the standard mode, labeled Manual in 2.1.200 and later.
AskUserQuestion timeout
2.1.200 also changed unanswered AskUserQuestion dialogs so they no longer auto-continue by default. Anthropic's settings docs define the new askUserQuestionTimeout key with default "never", allowed values of "60s", "5m", "10m", and "never", and a /config label of Question auto-continue timeout.
That setting is user-scoped. The docs say it is not read from project or local settings, which keeps a repository from silently changing how long a personal prompt can wait.
Background-agent recovery
The 2.1.198 note is useful context: background agents had just gained auto-commit, push, and draft PR creation after finishing code. The 2.1.200 changelog reads like a cleanup pass for the failure cases that show up once agents run longer:
- Background sessions silently stopping mid-turn after sleep, wake, or reopening a stalled session.
- Cancelled turns re-running after a stall respawn.
- Stale
daemon.lockfiles blocking future background agents after PID reuse. - Older builds taking over the daemon after reinstall, now blocked by embedded build timestamp checks.
- Roster corruption disabling orphan cleanup, newer fields being dropped by older binaries, and socket auth tokens being stripped during daemon restarts.
- Subagents cut off by rate limits returning empty results instead of failing cleanly.
- Control bytes from background-agent output leaking into the terminal agent view.
Grep and prompt diffs
The small release had a measurable prompt-side shift. ClaudeCodeLog's diff counted these 2.1.200 changes since 2.1.199:
- Removed env var:
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE. - Bundle file size: +130.8 kB (+0.4%).
- Prompt files: -3 (-7.9%).
- Prompt tokens: +4,817 (+8.3%).
- System-reminder token share: 48.3% to 53.9%.
- Tool token share: 46.8% to 41.6%.
- Grep description: now identifies Grep as ripgrep-based and explicitly recommends it for search tasks.
Christmas come early for people who diff agent harness prompts for sport.
Sonnet 5 harness reminders
2.1.201 was a one-line behavioral change for Sonnet 5. The 2.1.201 changelog item says Claude Sonnet 5 sessions no longer use the mid-conversation system role for harness reminders.
The 2.1.201 metadata diff measured the release as small in bundle bytes but large in prompt text:
- Time since 2.1.200: 16h 10m 26s.
- Bundle file size: -1.2 kB.
- Prompt files: +3 (+8.6%).
- Prompt tokens: +10,607 (+16.8%).
- System-reminder token share: 53.9% to 54.6%.
One community read came from nummanali, who called system reminders one of the traits that made Anthropic models feel tied to Claude Code and said the change made Sonnet 5 worth trying in Pi with a modified system prompt.
Accessibility and terminal fixes
The same 2.1.200 changelog also shipped user-facing polish outside the headline safety changes:
/mcp server listnow tracks focus for screen readers and magnifiers.- Decorative glyphs are hidden from screen readers.
- Transcript symbols now read as short labels.
- Nested tables now read as
Header: value.lines. - tmux 3.4+ rendering flicker is fixed through synchronized terminal output.
- Voice dictation no longer shows a misleading
Voice connection failedmessage when a recording captures no audio. - The install script now explains when installation is killed because the system ran out of memory.