What Changed
This page lists the changes in 2.1.312, the release this site covers.
It is short on purpose. The site only repeats what its sources say. It does not guess.
For every fix and small change, read the official Changelog.
How to Check Your Version
Run claude --version.
The /release-notes command shows a cached copy of the changelog.
This site covers 2.1.312, the version shown in the navbar.
Version 2.1.312
Released October 27, 2026. Source: release notes.
Rows marked with the program come from a comparison of the 2.1.311 and 2.1.312 programs. The flags, settings, hook events, tools, models, and permission rules did not change.
| Change | Status | What it means for you | Where to read more |
|---|---|---|---|
| Hook concurrency caps | Undocumented: Only the program shows this item. It can change without notice. | Prompt and agent hooks run at most 24 at a time for each session, sub-agents included. In addition, at most 12 hooks that waited longer than their event's timeout run. A timeout under 1 second counts as 1 second (the program). | Hook Handlers, Hook Configuration |
Subagent auto | Documented: An official docs page names this item. | A subagent's value can now lower the window that CLAUDE_ sets. It still never raises it (the program). | Subagent Frontmatter, Context and Compaction |
Write on a part-read file | Undocumented: Only the program shows this item. It can change without notice. | Write refuses to overwrite a very large CLAUDE., rules file, or @-included file when Claude read only its start. The message asks Claude to read it all or to edit in place (the program). | File Tools |
Skills after a Bash cd | Undocumented: Only the program shows this item. It can change without notice. | Claude Code finds per-directory and paths: skills after a cd deeper into the same git work tree. The base stays the session's first directory (the program). | Skill Frontmatter |
| Effort level in force | Undocumented: Only the program shows this item. It can change without notice. | The spinner, the OpenTelemetry effort attribute, and the transcript name the level the model applied, not a level just picked (the program). | OpenTelemetry Events, Transcript Format, Models and Providers |
claude_ | Gated: Works only behind a flag or a server gate. Server flag tengu_snoopy_creek, default false | Claude Code no longer sends the event by default. The gate tengu_ now defaults to false. The code that sends the event is still there (the program). | OpenTelemetry Events |
mcp_ | Undocumented: Only the program shows this item. It can change without notice. | The attribute reports the real name of a fixed-URL remote MCP server. This applies when a plugin from an official marketplace declares the server. The name replaces custom (the program). | OpenTelemetry Events |
| Shorter system prompt | Documented: An official docs page names this item. | A model name that Claude Code does not recognize, such as a custom deployment name or an inference profile ARN, gets the shorter system prompt. CLAUDE_ keeps the full one (the program). | System Prompt, Models and Effort |
| Model switch after a flag | Documented: An official docs page names this item. | The automatic switch after a flagged message also covers a model name that Claude Code does not recognize. CLAUDE_ turns the switch off (the program). | Models and Providers |
oidc. | Undocumented: Only the program shows this item. It can change without notice. | The Claude apps gateway can identify a person by an id_token claim other than sub, such as Microsoft Entra ID's oid. The default is sub (the program). | Authentication Settings |
Vim d, c, y with gj or gk | Undocumented: Only the program shows this item. It can change without notice. | A count larger than the display lines left only moves the cursor. Before, it could delete or copy text (the program). | Keybindings |
| Click to send | Undocumented: Only the program shows this item. It can change without notice. | In fullscreen rendering with mouse mode full, a click on the "send now" hint under a queued message sends it (the program). | Keybindings |
| A command with a bad name | Undocumented: Only the program shows this item. It can change without notice. | One command whose name is not a string no longer stops the whole command list. The program skips it and reports why (the program). | Slash Commands |
/ in the menu | Documented: An official docs page names this item. | / and the / menu show the short description "Try your change and report if it works". The long description still goes to Claude (the program). | Bundled Skills |
| "5-hour limit" | Documented: An official docs page names this item. | Usage limit messages call the 5-hour window the "5-hour limit", not the "session limit" (the program). | Account and Access |
| Cache warning wording | Undocumented: Only the program shows this item. It can change without notice. | The / and / confirmation no longer promises that the re-read waits for your next message (the program). | Models and Providers |
/ rate-limit wording | Undocumented: Only the program shows this item. It can change without notice. | A rate-limited usage page now says Claude is temporarily limiting requests to the usage page (not your usage limit). The panel suffix is (requests temporarily limited — try again in a moment). Both say that the limit is on the page, not on your usage (the program). | Slash Commands |
| Three commands removed | Documented: An official docs page names this item. | /, /, and / are gone (the program). | Bundled Skills |
| Two new environment variables | Undocumented: Only the program shows this item. It can change without notice. | CLAUDE_ and CLAUDE_. CLAUDE_ and CLAUDE_ are gone (the program). | Environment Variables |
| One new endpoint | Undocumented: Only the program shows this item. It can change without notice. | PATCH / (the program). | API Endpoints |
| One new error text | Undocumented: Only the program shows this item. It can change without notice. | The plugin CLI reports a run that was granted artifact publishing (the program). | Plugin CLI |
The release notes also list fixes that no setting and no page covers. One fix is for a Read of a PDF page that failed while the clean-up of old session files ran. One is for a first reply that could be missing after a resume. One is for a session that showed as waiting on you. Two are agent view fixes. The notes list more items for VS Code, Cloud sessions, Remote Control, Claude Tag, and Code Review. This site does not cover them.
Earlier Releases
The Release Archive keeps the sections for 2.1.300 to 2.1.311.
The official Changelog lists every release.
Example
You update to 2.1.312 and run a hook of the prompt type on a busy session. Claude Code runs at most 24 of those hooks at a time.
Check the hook concurrency row. Then check your version:
claude --version