claudekit / updates / claude-code-2-1-311
[ PATCH · ]

Claude Code 2.1.311

`ultrathink` now runs its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1, and `self-hosted-runner` gains options to keep an idle session. Over 50 fixes, including standard-context sessions stopping with "Usage credits required for 1M context" past 200K tokens and long freezes when a CLAUDE.md file holds a very long list item.

Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.311 shipped on October 26, 2026. ultrathink now runs at xhigh effort on the latest models, and Claude Code on Bedrock, Mantle, Vertex and Foundry now loads model settings from a signed file. Most of the release is reliability work: over 50 fixes across startup and edit freezes, context limits and compaction, subagents and background sessions, MCP management commands, Remote Control and cloud sessions.

New features

  • --hold-idle-file and --max-hold-min for self-hosted-runner

    A session can leave processes running on its host after its own work is done. These new options keep an idle session while your host reports processes it left running.

  • Tip for the Explanatory output style

    A tip for the Explanatory output style is now shown when you ask Claude for explanations.

  • [VS Code] Syntax coloring in code blocks

    Code blocks in Claude’s replies now have syntax coloring in light, dark and high contrast dark themes.

  • [VS Code] Status for slow UserPromptSubmit hooks

    Slow UserPromptSubmit hooks now show a “Running UserPromptSubmit hooks” spinner status and a screen reader announcement, so it’s clear what the panel is waiting on.

  • [Claude Tag] Skills view in analytics

    Claude Tag analytics now has a Skills view showing how often Claude runs each attached skill in Slack channels and which go unused, with Usage links in admin settings.

Key improvements

  • ultrathink runs at xhigh effort

    In the interactive terminal, ultrathink now runs its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic’s API. Typed while Claude is working, it raises the rest of that turn. The rainbow now appears only where the keyword can raise effort, not when the word is quoted or part of a file path.

  • Model settings from a signed file on Bedrock, Mantle, Vertex and Foundry

    Claude Code on these providers now loads model settings from a signed file on downloads.claude.ai. Set CLAUDE_CODE_MODEL_CATALOG=off to turn this off.

  • Faster startup

    Pro and Max accounts skip two network requests on launches within an hour of the last check. Launches whose only arguments are options and their values, such as claude --model opus, also start faster.

  • Compaction asks again for a missing summary

    When the model’s reply has no summary in it, Claude Code now usually asks for the summary once more before it replaces the conversation.

  • Shell commands that reach their timeout

    The result now shows the output so far and says the command is still running in the background.

  • “Connection dropped” API error

    The error now says where to look first: the proxy or gateway in use, else VPN or firewall. This applies to the Anthropic API only; Bedrock, Vertex and Foundry are unchanged.

  • Background session exit messages

    When a background session’s process exits, the messages no longer promise a restart that isn’t coming, and they say how to resume the session.

  • /teleport warning for compacted cloud sessions

    /teleport and claude --teleport now warn when a compacted cloud session loads from its last compaction, so the messages it summarized aren’t in the local copy.

  • DISABLE_COMPACT can only turn compaction off

    DISABLE_COMPACT in settings files and in a mod’s $.env.set can now only turn compaction off, not back on.

  • [1m] suffix dropped where it has no effect

    Model names and IDs drop the [1m] suffix and its label on models where the suffix has no effect. The suffix is still accepted.

  • Escaping in --output-format json and stream-json

    DEL, C1 control and Unicode format characters inside strings are now written as \uXXXX escapes. Parsed values are unchanged.

  • Permission rule warnings shown once

    Startup warnings about permission rules in settings files now show once per user until the rule changes.

  • Shared skills list with CLAUDE_CODE_SYNC_SKILLS

    Sessions that set CLAUDE_CODE_SYNC_SKILLS with feature-flag fetching off reuse a claude.ai skills list up to 10 minutes old that another session on the machine fetched.

  • Artifact pages vs. documents

    The Artifact tool now makes explainers and visual or interactive work into artifact pages; documents are for writing people keep editing or pass around. Artifacts with several views route each view on the link’s #name.

  • Slack connector sends

    Claude now checks a channel’s topic for posting rules before messaging a channel you didn’t name.

  • [VS Code] Respecting VS Code’s telemetry setting

    The extension now starts Claude Code sessions with DISABLE_TELEMETRY set while VS Code’s telemetry setting is off, so they send no usage metrics or error reports and fetch no feature flags. The session list side bar loads Web sessions when the Web tab is first opened, not at startup.

  • [Claude Tag] Routines with nothing to report

    Claude Tag routines that run in a new session can now end without posting a throwaway message to the channel.

  • [Code Review] Reliability and retry status

    A review whose session fails to start because of a transient server fault is now retried once automatically, and its check run says so. When the model still can’t analyze a change on the automatic retry, the check run says no further automatic review will start.

  • Other changes — /code-review now tells Claude to put the effort level first and use max only when asked. Ctrl+D in agent view matches the prompt: on an empty input, pressing it twice exits. Clicks on scrollbar arrows and bars in fullscreen lists act on mouse release. claude purge says it deletes data only on this computer, not anything stored by Anthropic. A refused pasted sign-in code now says the code may have expired or been used, and to sign in again. Screen reader mode announces deleted /permissions rules right away and lists Claude’s questions without arrows or symbols.

Bug fixes

Freezes & hangs

  • Long freezes at startup and after reading or editing files when a CLAUDE.md file holds a very long list item.
  • Interrupting Claude not taking effect until a timeout while an MCP server had not answered a resource read or a skill was still downloading.
  • Write and Edit stalling for up to 5 seconds after they ran, and reporting 0 lines changed, when changing thousands of lines in a file.
  • Claude Code retrying requests the API marked not to retry, which could hold a turn for minutes or, in unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG), indefinitely.
  • Long hidden thinking being cut off as idle on Google Vertex AI, Microsoft Foundry and Claude Platform on AWS.
  • WebFetch and WebSearch hanging on a stalled response in Cowork cloud sessions; an unfinished request now fails after 300 seconds.

Context & compaction

  • Standard-context sessions stopping with “Usage credits required for 1M context” when a request ran over 200K tokens; Claude Code now compacts the conversation and continues.
  • Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session.
  • claude -p and SDK sessions saving transcript messages out of order or keeping messages that were taken back.
  • Agent teammates compacting their history, and the rewind menu offering “Summarize from here” and “Summarize up to here”, when DISABLE_COMPACT is set.

Subagents & background sessions

  • Subagents being unable to use MCP tools from servers that finish connecting after the subagent starts.
  • SubagentStop hooks running about twice a minute for each running subagent instead of once when it finishes.
  • A subagent’s isolated worktree being removed while a background subagent it started was still working in it.
  • Background agents in auto mode that wait on their own shells starting a new main conversation turn on every wake.
  • A background session that crashed between turns not being restarted while it was attached, pinned, or had a scheduled task or wake-up set.
  • A finished /code-review, or another skill that runs in a sub-agent, running a second time when a cloud or background session restarts.
  • Agent teams sessions showing an empty task list when coming back with --resume, --continue, /resume or --session-id, including after /clear or a crash, and /branch writing to the original session’s list.
  • The “background service did not respond” error suggesting the disabled claude daemon restart; it now suggests claude daemon stop --any and says it ends background sessions.
  • claude respawn <id> starting the background service before reporting that no background session matches the id.

MCP & plugins

  • claude mcp add, claude mcp remove and /mcp naming the current folder instead of the project entry in ~/.claude.json that holds a local-scope server when run below a repository root.
  • claude mcp list and claude mcp get showing the error code twice on failed-connection lines (for example ENOENT: ENOENT: …).
  • /mcp showing a remote server as failed after “Clear authentication” when the server works without sign-in, and showing “authenticated” for a remote server that Claude Code sends no credentials to.
  • A --plugin-dir folder of plugins loading as one plugin when an empty .mcp.json was at its top.

Tools & shell

  • The Bash tool description claiming the working directory always persists between calls.
  • The environment block naming a shell commands don’t run in, such as fish when the Bash tool uses zsh.
  • The @ file picker ignoring .ignore/.rgignore negation rules that re-include git-ignored files.
  • Pasting text that mentions an image file, such as ! open /tmp/shot.png, attaching the image and dropping its path from the prompt.
  • A lone backslash in quotes or brackets, like "\" or (\), disappearing from Claude’s responses.
  • The Write tool’s file preview skipping rows and miscounting hidden lines when a line is wider than the terminal.
  • Linux: sandboxed Bash commands failing with bwrap: Can't create file when a --plugin-dir folder was also an added directory and permissions.blockReadsOutsideWorkingDirectories was on.

Remote Control, cloud & self-hosted runner

  • Remote Control sessions staying on “Connecting” for about two minutes when a network proxy blocks a startup request.
  • Messages that Claude sends to a cloud or Remote Control session appearing as your own message in the Claude mobile apps.
  • Claude not being told the cause when an attached file could not be saved because the disk was full, or that attachments past the first 20 were left out.
  • Cowork cloud sessions losing their connectors and most tools after a restart when a plugin or your settings named an agent; Cowork cloud sessions now ignore that setting.
  • Self-hosted runner: a session failing to start when a rate limit (HTTP 429, or a git wrapper that exits 75) blocks an added read-only repository; it now starts without that repository.

Messages & UI

  • /effort not warning about a prompt cache miss in plan mode when the plan model differs from the session model.
  • /usage never showing large prompt-cache misses under “What’s contributing to your limits usage?”
  • /ide saying the VS Code extension was installed before the install finished or when it failed, and saying it had installed the JetBrains plugin when nothing was installed.
  • Claude Pro and Max subscribers being told to ask their admin when their subscription can’t be used; the message now points to billing settings.
  • The /rewind confirmation saying the conversation “will be forked” when the later messages are removed, and the /rewind warning wrongly saying manual and Bash edits are never affected by a code restore.
  • ↑ in an agent’s chat tab recalling a message still waiting to be delivered, so resending it sent a second copy.
  • The diff pane opening by itself after an edit in wide fullscreen terminals when it had nothing to show.
  • Plan approval in screen reader mode sending feedback you had dismissed with Escape.
  • Status line links staying plain text in background sessions, and the feedback draft card showing its 1/2/0 and Esc shortcuts while the prompt has text.

VS Code extension

  • Custom skills and custom slash commands sent from the VS Code or JetBrains panel leaving out the open file or selected lines that ordinary messages include (#102799).
  • The extension host freezing while the login shell ran its start-up files to read PATH on macOS and Linux.
  • Clicking an image in a tool result, or closing its preview, also opening the result’s text in an editor tab.
  • Voice dictation continuing to record after a message was sent with the Send button; sending now stops dictation first, as pressing Enter already did.

Cloud sessions

  • Routines in Anthropic-hosted environments staying locked after their owner left the organization and rejoined; the owner can now turn them back on.
  • A failed routine API token delete or regenerate showing nothing if the edit dialog had already closed; it now shows an error toast.
  • Cloud environment dialogs, including the admin dialog, accepting duplicate names.

Notes

  • If you use Bedrock, Mantle, Vertex or Foundry, Claude Code now loads model settings from a signed file on downloads.claude.ai. Set CLAUDE_CODE_MODEL_CATALOG=off to turn this off.
  • If you use ultrathink, its turn runs at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic’s API, and typing it mid-turn raises the rest of that turn.
  • If a session stopped with “Usage credits required for 1M context” after passing 200K tokens, Claude Code now compacts the conversation and continues.
  • If a script compares --output-format json or stream-json output as raw text, note that control and Unicode format characters are now \uXXXX escapes. Parsed values are unchanged.
  • If VS Code’s telemetry setting is off, sessions the extension starts now send no usage metrics or error reports and fetch no feature flags.