Follow Discord

Claude Code v2.1.312

latestnext 312 entries read Grouped into 265 v2.1.311 → v2.1.312 Mods API: +0 added · 0 removed · 0 changed · 1 docs only Markdown JSON Follow Unofficial

You can now set oidc.user_id_claim to choose which sign-in token field holds the user ID for the OIDC gateway. It defaults to sub. Among the other shipped changes, the prompt asking whether Claude may use a skill now shows the skill's description in a scrollable box. Usage messages now call your short-term limit the "5-hour limit". Programs that embed Claude Code can now mark a question as skipped, answered in chat or dismissed with the ask_user_question_unanswered_v1 capability. Remote control can now ask a session to start a shell command in the background, and the usual permission checks still apply.

Several features are in this build but are not switched on yet. Cloud sessions can enforce a policy on model and effort changes, but only when a worker policy is set to enforce. Auto mode gains a remote list that can turn off its extra safety checks. A tip about Claude Design shows only if a flag is switched on from Anthropic's servers. A note telling Claude that staged files are still being copied is also off by default.

Among the fixes, agent calls cut off by a container restart now resume, or Claude is told plainly why they cannot. Skills supplied by MCP servers can no longer be run through the Skill tool and now return an "Unknown skill" error. Plan mode is read-only again because its workshop and prototype offers are removed. Signed policy documents are no longer rejected for being older than one already accepted. Mantle is gone from the built-in list of model providers.

Written by our agent from the shipped bundle, not by Anthropic.

Five to try today

Picked from 10 you can use now
  1. AskUserQuestion: questions must stand alone, and unanswered questions can be marked

    AskUserQuestion's instructions now say the user may see only the question dialog, and hosts can mark a question skipped, replied in chat or dismissed

    Extensions
  2. Loading an MCP skill can wait for a person to answer the permission prompt

    When loading an MCP skill needs permission, Claude Code can now hold the request until a person answers it

    Extensions
  3. The OIDC gateway can take the user ID from a claim other than sub

    A new oidc.user_id_claim setting picks which sign-in token field holds the user ID, defaulting to sub

    Platform & internals
  4. /effort handles 'default' and 'auto' better and tracks the effort sent

    /effort now reads 'default' and 'auto' from what you typed, its auto keyword comes from a helper, and sessions record the effort sent each turn

    Elsewhere
  5. Queued messages can be clicked to send them now

    A queued message can now show a send-now hint, and in the fullscreen display you can click it to send the message straight away

    Sessions & agents

Want the reasoning? Read walks the 24 entries that probably matter to you, each one opening to what changed and why.

Read this release → Every row →
Reading as
Show only
Who it's for
Tier
Flag state
Names
Pick an entry · j / k steps through · rest on a row to peek
109 entries

Improvementsopen

Continued from page 1

5 more of these are in What probably matters to you, on page 1.

↑Improved
You'll notice
Useful1 Signal1
Hooks unclear

Changed repair of tool input passed to hooks#

Claude Code reworked how it fixes up a tool's input before passing it to hooks, now keeping extra fields and checking more tools

Unclear It is not clear what a hook now receives that it did not before.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Plan Mode unclear

Claude Code now watches only one plan file per plan#

Claude Code now watches only the single main markdown file for a plan, not a list of files for that plan

Unclear It is not clear whether plans ever had more than one file in practice, so the effect for you is unknown.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Usage & Limits

Credit notice now says "Now using credits"#

The short notice shown when you switch to paying with credits now reads "Now using credits" instead of "Now using usage credits"

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Teleport

New wording while a session moves to the cloud#

The message while moving a session now reads "Moving this session to the cloud…" and says it continues from your branch's last push

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Usage & Limits unclear

Asking for usage in a remote chat now points you to claude.ai#

A remote chat that cannot show usage now says so and links to Settings → Usage on claude.ai

Unclear Which command or chat surface shows this message is not established.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal0
Models

Shorter wording in the model-switch warning#

The warning shown when you switch models now ends at "means the full history gets re-read." without "on your next message"

Details 0 0 Feedback
19 entries

Bug Fixesopen

1 more of these is in What probably matters to you, on page 1.

✓Fixed
You'll notice
Useful2 Signal1
Group of 2 Subagents unclear

More subagents now have their shells cleaned up when they finish#

Subagents started through a 'call' path are flagged reapsShellsUnlessMoved, so their shells are cleaned up even when they run in the background

Unclear Which subagents carry the setting to clean up their shells unless moved is not stated.

Details 0 0 Feedback
✓Fixed
You'll notice
Useful2 Signal1
Compaction unclear

Compaction now keeps messages from the matching result#

When Claude Code compacts a conversation, the messages it keeps now come from the same compaction result as the rest of the outcome

Unclear The two values may always have been the same, in which case nothing changes for users.

Details 0 0 Feedback
✓Fixed
You'll notice
Useful1 Signal1
MCP unclear

Skills passed through from MCP now keep their name and description#

When the Skill tool runs a skill passed along from an MCP server, it now carries that skill's name and description

Unclear Where these passed-along MCP skills come from, and whether this is switched on, is not established.

Details 0 0 Feedback
4 entries

In Developmentopen

4 more of these are in What probably matters to you, on page 1.

◌In dev
Nothing to try yet
Useful1 Signal2
Internals unclear

A new remote on/off switch that defaults to off#

Claude Code now checks a new remotely controlled switch that stays off when the server sends nothing; what it controls is not yet visible

Unclear What feature or behaviour this switch controls is not known.

Details 0 0 Feedback
◌In dev
Nothing to try yet
Useful1 Signal2
Internals unclear

Three new server-controlled switches appear#

Claude Code now checks three new switches that Anthropic controls from its servers; what they do is not known

Unclear What the three switches control is not known.

Details 0 0 Feedback
◌In dev
Nothing to try yet
Useful1 Signal2
Internals unclear

A hidden feature check now listens to a different remote switch#

A hidden feature check now depends on a different remote switch, and stays off unless that switch is turned on from the server

Unclear It is not known what behaviour this check controls.

Details 0 0 Feedback
96 entries

Internal Changesopen

6 more of these are in What probably matters to you, on page 1.

·Internal
Under the hood
Useful2 Signal2
Group of 2 Telemetry

Shell CPU time is now reported per turn#

Claude Code now records how much CPU time Bash and Monitor shells used in each turn, read from a Linux cgroup, in optional internal fields

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal1
Plan Mode unclear

Plan tracking reads tool results in more formats#

Claude Code now finds a plan's link in more kinds of tool result, and some workshop snapshot tracking was removed

Unclear It is not clear what these changes mean for what you see when using plans.

Details 0 0 Feedback
10 entriesTelemetry · none marked notable
8 entriesSessions · none marked notable
·Internal
Under the hood
Useful1 Signal2
Sessions unclear

Saving the conversation record is now grouped by turn#

Claude Code now groups the steps that add or remove messages in the saved session record under the turn they belong to

Unclear It is not clear whether this changes anything you can see when resuming a session.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal1
Sessions unclear

Remote sessions keep request IDs on API errors in uploaded transcripts#

In remote sessions, API error messages in the uploaded transcript can now keep their request ID, which makes failures easier to trace

Unclear It is not clear what decides whether the request ID is kept, so it may not apply to every remote session.

Details 0 0 Feedback
8 entriesTips · none marked notable
7 entriesCloud Sessions · none marked notable
·Internal
Under the hood
Useful2 Signal3
Cloud Sessions unclear

Cloud sessions take a pool, a correlation ID and a no-monorepo option#

Creating a cloud session can now pass a pool, a correlation ID and a no-monorepo option, plus a notice naming an agent that needs a repository

Unclear It is not clear which commands or options let you set these values, or whether they are in use yet.

Details 0 0 Feedback
·Internal
Under the hood
Useful2 Signal2
Cloud Sessions

Cloud worker connections can ask for compression#

Claude Code's worker connection can now offer compression when it connects, and a fault in how the connection was stored is fixed

Details 0 0 Feedback

Continues on page 3 →

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.312. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

Of these 39 bullets, 5 name something an entry on this page also names, 8 name something no entry here does, and 26 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

  • Added oidc.user_id_claim to the Claude apps gateway, to identify people by an id_token claim other than sub, such as Microsoft Entra ID's oid Probably oidc-proxy-gains-oidcuser-id-claim
  • Added click to send: in fullscreen, clicking the "to send now" hint under a queued message sends it right away, as its key does No entry names this
  • Fixed managed settings and organization policy not being fetched for the rest of the session after signing in from the VS Code extension Nothing to match on
  • Fixed Claude overwriting a very large CLAUDE.md, rules file or @-included file in a subdirectory after seeing only its start; Write now asks Claude to read it all or edit in place Nothing to match on
  • Fixed per-directory and paths: skills not being found after a Bash cd deeper into a git repository Nothing to match on #105250[BUG] Skill paths: globs match against the Bash tool's current directory, so a persisted cd hides path-scoped skills (rules unaffected) Open
  • Fixed a rare case where the first reply after resuming a session in the terminal could be missing the next time the session was resumed Nothing to match on
  • Fixed a command with an invalid name stopping all commands from loading, which could leave claude -p with no output No entry names this
  • Fixed the Read tool sometimes failing on PDF pages with "pdftoppm failed: Could not write image" when the clean-up of old session files ran at the same time No entry names this
  • Fixed the spinner, OpenTelemetry effort values and transcripts naming a newly picked effort level during a task before the model applied it; they now show the level in force Nothing to match on
  • Fixed the /model and /effort cache warning saying the re-read waits for your next message; a change made while Claude is working can trigger it sooner Probably effort-usage-text-uses-a-function-provided-label-instead-of, effort-reset-message-names-the-effective-default-instead-of, effort-auto-keyword-now-produced-by-a-helper, effort-command-accepts-more-default-values, agent-view-model-matching-fix-scroll-speed-ui-rework
  • Fixed some sessions showing as waiting on you when the last message only mentioned items waiting on you mid-sentence Nothing to match on
  • Fixed agent view restoring input text on the next launch after it was cleared with Ctrl+C just before exiting Nothing to match on
  • Fixed agent view reopening in shell mode after exiting with Ctrl+D from an empty ! input Nothing to match on
  • Fixed vim mode d, c and y with a gj or gk count larger than the lines left deleting or copying text; like Vim, they now only move the cursor Nothing to match on
  • Fixed /verify showing a long description meant for Claude in /help and the / command menu instead of a short one No entry names this
  • Improved the prompt's effort indicator: a change made mid-task now says it may wait for your next message, and the note clears when it no longer applies Nothing to match on
  • Improved WebFetch errors in cloud sessions: a host that does not resolve is now explained as possibly outside the allowed network domains, so Claude names the host to allow Nothing to match on
  • Changed Bedrock, Vertex, Foundry and Mantle to use the shorter system prompt for model names Claude Code doesn't recognize, such as custom deployment names and inference profile ARNs, even when they front Sonnet or Haiku; set CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 to keep the full prompt No entry names this
  • Changed automatic model switches after a flagged message to also cover model names Claude Code doesn't recognize, such as custom deployment names; set CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 to turn them off No entry names this
  • Changed usage limit messages to call the 5-hour window the "5-hour limit" instead of the "session limit" Probably session-limit-reset-wording-changed-to-5-hour-limit, session-limit-renamed-to-5-hour-limit-in-ui-text
  • Changed cloud sessions started from the CLI to get their names and branch names from the server Nothing to match on
  • Changed prompt and agent hooks to run at most 24 at a time per session, sub-agents included, plus at most 12 that have waited longer than their event's timeout; a timeout under 1 second now counts as 1 second Nothing to match on
  • Changed a subagent's autoCompactWindow to lower the window set by CLAUDE_CODE_AUTO_COMPACT_WINDOW, where it had no effect before; it still never raises that window Probably auto-compact-window-env-override-no-longer-bypasses-the-ceil
  • Changed OpenTelemetry mcp_server.name to report the real name of fixed-URL remote MCP servers declared by plugins from the official Anthropic marketplace, instead of custom No entry names this
  • Changed Claude Code to stop sending the claude_code.safety_event OpenTelemetry event No entry names this
  • [VSCode] Fixed sessions ending on a bare exit code when your organization's settings couldn't be loaded or were refused at startup; the tab now says why and offers Retry or Sign in again Nothing to match on
  • [VSCode] Changed usage limit resets to show a clock time ("Resets at 3:10 PM") and to say "5-hour limit" Probably session-limit-reset-wording-changed-to-5-hour-limit, session-limit-renamed-to-5-hour-limit-in-ui-text
  • [Cloud sessions] Added an effort level to the model picker when you create or edit a routine that runs in the cloud Nothing to match on
  • [Cloud sessions] Added a Bash editor with colors, line numbers and a Copy button to the setup script box in cloud environment settings Nothing to match on
  • [Cloud sessions] Improved the step shown when Claude adds a repository to a cloud session: opening it now shows a short table of what happened instead of raw JSON Nothing to match on
  • [Cloud sessions] Fixed resending an unchanged message after a failed send in a cloud session sometimes running it twice Nothing to match on
  • [Cloud sessions] Fixed a failed cloud environment creation showing its error only as a toast outside the open dialog; it now appears inside the dialog Nothing to match on
  • [Cloud sessions] Fixed Edit in a routine's menu on the Routines page going to the routine's page without opening its edit dialog Nothing to match on
  • [Remote Control] Fixed an unarchived Remote Control session showing as working until a computer reconnected; it now shows as idle Nothing to match on
  • [Claude Tag] Improved Claude Tag's retry notice in Slack to name the model in use, or say rate limits were hit, instead of a generic API error Nothing to match on
  • [Claude Tag] Fixed a Claude Tag channel's on/off switch and agent settings falling back to workspace defaults when an older private Slack channel goes public and gets a new ID Nothing to match on
  • [Claude Tag] Fixed Claude in Slack not replying in channels whose environment has network access set to None Nothing to match on
  • [Claude Tag] Fixed Claude in Slack sometimes posting a file in the wrong thread when it was answering in another thread of the same channel Nothing to match on
  • [Code Review] Fixed Code Review reviewing an outdated commit, or none at all, when GitHub delivered a push event late; it now reviews the pull request's current commit Nothing to match on

A model matched these bullets to the GitHub issues they fix, so a link can be wrong.

System prompt

1 of 30 tool descriptions changed.

Claude Code, interactive mode

One prompt change in this release could not be quoted from the build, so no entry on this page describes it.

Documentation

What the docs did around this release

473 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Every time above is when this site's poller recorded the change, which is up to half an hour after the edit on an ordinary read and up to a day after it on a full sweep. Upstream's own edit time is used instead wherever a capture carries one. None of these do.

Switches

Every name in this release

The 25 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.

Slash commands

Settings and names in the code

Feedback