What changed
v2.1.311 ships the largest single-release fix set in recent Claude Code history โ 20+ targeted bug fixes across MCP, subagents, remote sessions, cloud environments, and UI, plus several behavioral changes. Key fixes: (1) subagents now have access to MCP tools from servers that connected after the subagent started; (2) SubagentStop hooks no longer run ~2ร/min per subagent (now once); (3) background sessions in auto mode no longer start a new main turn on every scheduled wake; (4) claude mcp add/remove no longer targets the wrong project entry when run below a repo root; (5) the startup freeze caused by very long CLAUDE.md list items is fixed; (6) claude -p and SDK sessions no longer save messages out-of-order or retain retracted messages. Behavioral changes: ultrathink now maps to xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5, and Fable 5.1 (was max); [1m] suffix dropped from model labels in the UI (still accepted as input); DISABLE_COMPACT in settings files can only turn compaction off, not back on; --output-format json now escapes DEL/C1/Unicode format characters; Bedrock, Mantle, Vertex, and Foundry load model settings from a signed file on downloads.claude.ai.
TL;DR
Claude Code v2.1.311 fixes subagents silently missing MCP tools from late-connecting servers, SubagentStop hook over-firing, and background agent spurious wake starts โ plus changes ultrathink to xhigh effort (was max).
Developer signal
Upgrade immediately if you run unattended agents: The subagent MCP tool fix is the highest-priority bug for multi-agent setups where subagents need access to tools registered in MCP servers that start after the parent session โ previously subagents failed silently. ultrathink behavior change: If you use ultrathink in prompts expecting max effort (the highest possible compute/quality), it now maps to xhigh instead. If you specifically need max effort, use maxthink or pass effort explicitly. The previous behavior was inconsistent with how xhigh and max are differentiated across models, so this is a clarification, but it will change token usage and quality ceilings for existing ultrathink prompts. SubagentStop hooks: If you have a hook on SubagentStop and saw it firing at an unexpected rate, this is now fixed โ review any rate-sensitive hooks. MCP add/remove bug: If you manage multiple Claude Code projects from a shared parent directory and ran claude mcp add in a subdirectory, the wrong project entry was being targeted โ upgrade before your next MCP server change. --hold-idle-file flag: New self-hosted runner option that keeps an idle session alive while the host reports active processes โ useful for self-managed cloud compute that needs to defer scale-down.