Claude Code v2.1.321: Fable 5.2 default, MCP OAuth secret-leak fix, Bash permission fixes#
Published by Alex Sorokoletov
Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog
Claude Code 2.1.321, the build after 2.1.319, makes Claude Fable 5.2 (claude-fable-5-2) the default Fable model, with a 1M-token context window and $8/$40 per Mtok pricing.[1] It also stops MCP OAuth requests from sending secrets such as refresh tokens to another host when a server redirects them, and closes several Bash permission-prompt gaps.[1]
Fable 5.2 is the model the fable alias resolves to#
Claude Fable 5.2 (claude-fable-5-2) is now the default Fable model, priced at $8/$40 per Mtok with $0.20/Mtok cache reads and carrying a 1M-token context window.[1] Its catalog entry lists a June 2026 knowledge cutoff and a fallback to Fable 5.1 on third-party providers. Saved Fable 5.1 picks move to the fable alias on Pro and Max plans at once, and on Team and Enterprise plans once the organization allows it; /model claude-fable-5-1 switches back.[1] On Enterprise seats whose plan includes Fable, the "Draws from usage credits" note no longer shows after a switch to Fable.[1]
MCP OAuth requests stay with the intended host#
MCP OAuth requests no longer send secrets such as refresh tokens to another host when a server redirects them.[1] Separately, claude mcp login no longer prints a SEP-2352 issuer warning on each repeat sign-in to a server that Claude Code registered.[1]
Bash permission checks follow the real target#
A read-only Bash command that ran outside the sandbox without a prompt, and a file write that was judged from the wrong folder, now prompt.[1] Deny rules and protected-file prompts apply to the file a cp or mv into a directory writes, and a cp or mv spelled by a path such as /bin/cp gets the same path checks as cp and mv.[1] A read such as grep -r foo "$PWD/src" runs without asking, matching the same command with the path typed out, and Bash commands sent together no longer run in the wrong folder when an earlier one changed directories.[1]
A settings file for claude remote-control#
claude remote-control takes a --settings <file> flag that applies a settings file to every session it starts; if the file changes, no new session starts until you restart claude remote-control.[1] A Remote Control session also keeps the folder it was started in, so a connected client can no longer move it to another folder.[1]
New environment variables#
| Variable | What It Does |
|---|---|
CLAUDE_CODE_HOST_OWNED_CONFIG_DIR | Names the configuration directory that the application launching Claude Code owns. When the global config file cannot be parsed and this names its folder, Claude Code starts with default settings and skips the usual manual-restore advice, because a later save overwrites the file. |
CLAUDE_CODE_GIT_CHECK_ONLY_IN_REPOSITORY | When set, Claude Code runs its git check only when the working directory is inside a git repository, and the session counts the times it skips the check outside one. |
Permission checks that resolve where a command lands#
Across this build, several checks settle the real target before they decide: the folder a Bash write lands in, the host an OAuth redirect points to, and whether the working directory sits inside a git repository. For a shell command, the form that reaches the filesystem is what gets checked, so a script that leaned on a full-path /bin/cp or a cd earlier in a chained command meets the same deny rules and prompts as the plain command. CLAUDE_CODE_HOST_OWNED_CONFIG_DIR carries the same idea into configuration: when a host owns the config folder, a parse failure at startup falls back to defaults instead of waiting on advice nobody is there to act on.
This analysis is conducted for educational and research purposes under fair use principles. All trademarks and software referenced belong to their respective owners.
Sources#
- Claude Code Official Changelog, v2.1.321 release notes
Related Versions#
- Claude Code v2.1.319: background MCP tasks, auto-denied permission prompts
- Claude Code v2.1.318: sign-in expiry warnings and an experimental Code Mode
- Claude Code v2.1.317: a prompt before tools send your email, SDK hooks that block on failure
- Claude Code v2.1.315: subagent effort control, certificate-trust drops
- Claude Code v2.1.314: writes confined to the working directories, idle compaction in the IDE
Previous Claude Code analysis: v2.1.319 (November 6, 2026)
All 88 Claude Code analyses: Claude Code Version Tracker · Official Claude Code changelog