What changed
v2.1.312 follows yesterday's 20+ fix release with a second targeted fix set. Auth: Added oidc.user_id_claim to the Claude apps gateway so organizations using Microsoft Entra ID (or any IdP that uses a claim other than sub) can configure their identifier field. Large file fix: Claude no longer overwrites a very large CLAUDE.md, rules file, or @-included file after reading only its start โ write now prompts Claude to read the full file or edit in place. Skills routing fix: Per-directory skills and paths:-scoped skills are no longer silently skipped when the working directory changes via cd deeper inside a git repo. Sessions: Fixed a rare bug where the first reply after resuming a terminal session could be missing on the next resume; fixed sessions incorrectly showing as waiting for user input. Commands: Fixed an invalid command name in one plugin/command stopping ALL commands from loading (could leave claude -p with no output). Effort display: The spinner, OpenTelemetry effort values, and transcripts now show the actual effort level in force, not a stale value from earlier in the task. Telemetry: claude_code.safety_event is no longer sent as an OpenTelemetry event. Hooks: Prompt and agent hooks now run at most 24 at a time per session, with at most 12 additional hooks that have exceeded their timeout; a timeout under 1 second is treated as 1 second. Behavior: Bedrock, Vertex, Foundry, and Mantle use the shorter system prompt for unrecognized model names (set CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 to keep the full prompt). Usage limit messages now say "5-hour limit" instead of "session limit." Cloud: Added an effort picker to cloud routines, and a Bash editor with line numbers to cloud environment setup scripts.
TL;DR
Claude Code v2.1.312 fixes per-directory skills silently breaking after cd, the large-file overwrite bug, and a command-name crash that could leave claude -p silent โ plus adds OIDC claim configuration for enterprise gateway.
Developer signal
Skills routing fix (high priority for multi-directory setups): If you have per-directory CLAUDE.md files or paths:-scoped skills and noticed they stopped applying after you cded deeper into a git repo, this is the fix โ upgrade before your next session. Large-file write fix: The bug where Claude would overwrite a file after only reading the first chunk was silent and data-destroying โ if you have a large CLAUDE.md or @-included doc, run git diff after this upgrade on any recent changes to verify nothing was corrupted. OIDC claim configuration: If you deploy the Claude apps gateway with Microsoft Entra ID or another IdP that uses oid or a custom claim as user identifier, set oidc.user_id_claim in your gateway config to get proper user attribution rather than falling back to sub. Hook concurrency: The new 24/12 hook concurrency limits mean hook-heavy setups won't spawn unbounded processes per session โ if you have many concurrent hooks and were relying on unlimited parallelism, review the limit.