# Claude Code v2.1.311

> Claude Code v2.1.311, released 26 Oct 2026 (2026-10-26). 425 entries read out of the shipped bundle. Unofficial, and not affiliated with Anthropic.

[Web version](https://changelogs.core-directive.com/v/2.1.311)

Claude Code can now download files with two new tools, FetchAttachment and DownloadTaskFile. Self-hosted runners get `--hold-idle-file` and `--max-hold-min`, which keep a session held while a file you update stays recent. Apps that embed Claude Code can pass a separate sign-in token for cloud sessions with `CLAUDE_CODE_SESSIONS_OAUTH_TOKEN`. Organizations can now list fingerprints of approved plugin releases in managed settings. A hooks plugin then loads only from a folder that matches one of them. Setting `CLAUDE_CODE_PLAIN_DELTA_FAST_PATH` turns on a quicker way to pass along plain streamed text when Claude Code runs without its interactive screen.

Some work in this build is not switched on yet. A built-in plugin that connects Claude to the Claude Platform developer docs is bundled but stays off. Background memory extraction can be made to run as a task you can stop, but this is off by default. Claude Code can also combine held-back pieces of a streamed reply into one update, and that is off unless switched on remotely. Several new server-controlled switches appear too, and what they control is not known.

Agent worktrees are no longer removed while another task is still working inside them. Attachments too big to hold in memory are now saved to the uploads folder instead of being rejected. Large images also get a smaller copy for Claude. Interrupting Claude Code while it reads an MCP resource or folder now cancels the read cleanly. Text with wide characters no longer overflows the terminal, because Claude Code now re-wraps such lines character by character. These are part of the fixes, and the full list is below.

## Sections

Each section is its own markdown document of whole entries, in pages of about 40 KB. The whole release in one document is [full.md](https://changelogs.core-directive.com/v/2.1.311/full.md).

- [What probably matters to you](https://changelogs.core-directive.com/v/2.1.311/what-probably-matters-to-you.md): 50 entries, 2 pages
- [Improvements](https://changelogs.core-directive.com/v/2.1.311/improvements.md): 203 entries, 6 pages
- [Bug Fixes](https://changelogs.core-directive.com/v/2.1.311/bug-fixes.md): 24 entries
- [In Development](https://changelogs.core-directive.com/v/2.1.311/in-development.md): 10 entries
- [Internal Changes](https://changelogs.core-directive.com/v/2.1.311/internal-changes.md): 138 entries, 4 pages

## What probably matters to you

The first 10 of 50, one line each. The section's own pages have every one in full.

- [New --personal flag and persistentVolumeFromSessionId for cloud sessions](https://changelogs.core-directive.com/v/2.1.311/e/personal-accepted-as-a-flag-ccr-disk-watchdog-log-now-con.json): Claude Code recognizes a --personal flag, and session start-up and cloud session creation gain persistentVolumeFromSessionId
- [New CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS variable and protections that bypass cannot waive](https://changelogs.core-directive.com/v/2.1.311/e/new-env-var-claude-code-even-more-dangerously-skip-permissio.json): A new `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` variable appears, and some permission rules are now marked as not waivable in bypass mode
- [New remote file-download handlers and a prompt-paint layer for plugin UIs](https://changelogs.core-directive.com/v/2.1.311/e/plugin-ui-gains-prompt-paint-layer.json): Remote sessions gain handlers that place downloaded files in a session folder, and plugins can paint text and decorations into the prompt box
- [New bundled cc-plugin-claude-platform plugin for Claude Platform docs](https://changelogs.core-directive.com/v/2.1.311/e/claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr.json): A built-in plugin, cc-plugin-claude-platform, packages the claude-api skill with a docs MCP server, and is registered but not turned on by default
- [New CLAUDE_CODE_PLAIN_DELTA_FAST_PATH setting for headless streaming](https://changelogs.core-directive.com/v/2.1.311/e/fast-path-for-plain-stream-deltas.json): New environment variable `CLAUDE_CODE_PLAIN_DELTA_FAST_PATH` turns on a shortcut for streamed output in headless sessions
- [Organizations can pin plugin hooks by digest with pluginDigests](https://changelogs.core-directive.com/v/2.1.311/e/plugindigests-added-to-the-marketplace-schema-managed-setti.json): Managed settings can list `pluginDigests` on a marketplace, so plugins in `prependPlugins` or `appendPlugins` run at the organization tier
- [SDK hosts can hand Claude Code a separate cloud-sessions token](https://changelogs.core-directive.com/v/2.1.311/e/second-host-handed-oauth-bearer-for-the-cloud-sessions-api.json): Apps embedding Claude Code can now supply a second token for the cloud-sessions API via CLAUDE_CODE_SESSIONS_OAUTH_TOKEN or a sessions refresh request
- [Self-hosted runners can keep idle sessions while a left-running process lives](https://changelogs.core-directive.com/v/2.1.311/e/self-hosted-runner-can-hold-sessions-while-a-host-file-stays.json): New `--hold-idle-file` and `--max-hold-min` runner flags stop idle release while a host-kept file stays fresh, with a startup line reporting the hold
- [Plugin hooks modules can load sealed from organization-provided texts, with a reworked load check](https://changelogs.core-directive.com/v/2.1.311/e/plugin-hooks-modules-can-now-load-sealed-from-org-provided.json): Plugin hooks modules can now load from organization-provided texts instead of disk, and the check deciding whether a hooks module may load moved into one helper
- [Agent, workflow and Skill results now list the tools that were used](https://changelogs.core-directive.com/v/2.1.311/e/prompts-record-tools-used-new-secretpromptdialog.json): Background agents, workflows, forked Skills and prompt records now carry a toolsUsed list naming the tools that ran
