{"version":"2.1.311","summary":"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.\n\nSome 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.\n\nAgent 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.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":50,"total":425,"next_offset":50,"next_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/entries.json?offset=50","entries":[{"anchor":"dangerous-rm-checks-can-be-waived-by-claude-code-even-more-d","heading":"<code>CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS<\/code> lets dangerous rm skip prompts","glance":"Setting CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS lets dangerous rm commands run without a prompt in bypass permissions mode","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/dangerous-rm-checks-can-be-waived-by-claude-code-even-more-d","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/dangerous-rm-checks-can-be-waived-by-claude-code-even-more-d.json"},{"anchor":"personal-accepted-as-a-flag-ccr-disk-watchdog-log-now-con","heading":"New --personal flag and persistentVolumeFromSessionId for cloud sessions","glance":"Claude Code recognizes a --personal flag, and session start-up and cloud session creation gain persistentVolumeFromSessionId","teaser":null,"tier":"use","area":"CLI","section":"What probably matters to you","position":1,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/personal-accepted-as-a-flag-ccr-disk-watchdog-log-now-con","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/personal-accepted-as-a-flag-ccr-disk-watchdog-log-now-con.json"},{"anchor":"new-env-var-claude-code-even-more-dangerously-skip-permissio","heading":"New CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS variable and protections that bypass cannot waive","glance":"A new `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` variable appears, and some permission rules are now marked as not waivable in bypass mode","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-env-var-claude-code-even-more-dangerously-skip-permissio","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-env-var-claude-code-even-more-dangerously-skip-permissio.json"},{"anchor":"fast-path-for-plain-stream-deltas","heading":"New CLAUDE_CODE_PLAIN_DELTA_FAST_PATH setting for headless streaming","glance":"New environment variable `CLAUDE_CODE_PLAIN_DELTA_FAST_PATH` turns on a shortcut for streamed output in headless sessions","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":3,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/fast-path-for-plain-stream-deltas","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/fast-path-for-plain-stream-deltas.json"},{"anchor":"mcp-debug-log-files-can-be-skipped-via-env-var","heading":"New option to stop Claude Code writing per-server MCP debug log files","glance":"Setting `CLAUDE_CODE_SKIP_MCP_DEBUG_LOG_FILES` to true can stop Claude Code writing a debug log file for each MCP server","teaser":null,"tier":"use","area":"MCP","section":"What probably matters to you","position":4,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/mcp-debug-log-files-can-be-skipped-via-env-var","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/mcp-debug-log-files-can-be-skipped-via-env-var.json"},{"anchor":"chrome-mcp-server-loading-deferred-behind-claude-code-chrome","heading":"New setting to load the Claude in Chrome connection later in startup","glance":"Setting CLAUDE_CODE_CHROME_LATE_MCP_SERVER makes Claude Code skip its early Chrome setup and load the Chrome connection a different way","teaser":null,"tier":"use","area":"Claude in Chrome","section":"What probably matters to you","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/chrome-mcp-server-loading-deferred-behind-claude-code-chrome","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/chrome-mcp-server-loading-deferred-behind-claude-code-chrome.json"},{"anchor":"plugindigests-added-to-the-marketplace-schema-managed-setti","heading":"Organizations can pin plugin hooks by digest with pluginDigests","glance":"Managed settings can list `pluginDigests` on a marketplace, so plugins in `prependPlugins` or `appendPlugins` run at the organization tier","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":6,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugindigests-added-to-the-marketplace-schema-managed-setti","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugindigests-added-to-the-marketplace-schema-managed-setti.json"},{"anchor":"plugin-ui-gains-prompt-paint-layer","heading":"New remote file-download handlers and a prompt-paint layer for plugin UIs","glance":"Remote sessions gain handlers that place downloaded files in a session folder, and plugins can paint text and decorations into the prompt box","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-ui-gains-prompt-paint-layer","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-ui-gains-prompt-paint-layer.json"},{"anchor":"mods-new-promptpaint-hook-method","heading":"Plugins get a new hook for drawing on the prompt input","glance":"A new plugin hook, `prompt.paint`, takes text and decorations and returns the text and cursor position to show in the prompt","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":8,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/mods-new-promptpaint-hook-method","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/mods-new-promptpaint-hook-method.json"},{"anchor":"incremental-request-body-mode-added-gated-by-an-envremote","heading":"Requests to the model can reuse earlier content, off unless switched on","glance":"`CLAUDE_CODE_INCREMENTAL_REQUEST_BODY` controls a new way of building requests that reuses earlier content, off by default","teaser":null,"tier":"use","area":"Performance","section":"What probably matters to you","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/incremental-request-body-mode-added-gated-by-an-envremote","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/incremental-request-body-mode-added-gated-by-an-envremote.json"},{"anchor":"second-host-handed-oauth-bearer-for-the-cloud-sessions-api","heading":"SDK hosts can hand Claude Code a separate cloud-sessions token","glance":"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","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":10,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/second-host-handed-oauth-bearer-for-the-cloud-sessions-api","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/second-host-handed-oauth-bearer-for-the-cloud-sessions-api.json"},{"anchor":"self-hosted-runner-can-hold-sessions-while-a-host-file-stays","heading":"Self-hosted runners can keep idle sessions while a left-running process lives","glance":"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","teaser":null,"tier":"use","area":"Self-Hosted Runners","section":"What probably matters to you","position":11,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/self-hosted-runner-can-hold-sessions-while-a-host-file-stays","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/self-hosted-runner-can-hold-sessions-while-a-host-file-stays.json"},{"anchor":"hook-event-flag-for-userpromptsubmit-start-and-end","heading":"Setting for separate start and end prompt-submission hooks, off by default","glance":"A hook setting, `userPromptSubmitStartAndEndEnabled`, now exists and defaults to false","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":12,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hook-event-flag-for-userpromptsubmit-start-and-end","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hook-event-flag-for-userpromptsubmit-start-and-end.json"},{"anchor":"shiftupdown-bound-to-effort-increasedecrease-in-chat-keyb","heading":"Shift+Up and Shift+Down step the effort level, with tips and hints","glance":"New `chat:increaseEffort` and `chat:decreaseEffort` keys (Shift+Up and Shift+Down) raise or lower effort, with a tip, a shortcut hint and a cache warning","teaser":null,"tier":"use","area":"Effort","section":"What probably matters to you","position":13,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/shiftupdown-bound-to-effort-increasedecrease-in-chat-keyb","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/shiftupdown-bound-to-effort-increasedecrease-in-chat-keyb.json"},{"anchor":"claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr","heading":"New bundled cc-plugin-claude-platform plugin for Claude Platform docs","glance":"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","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":14,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr.json"},{"anchor":"new-file-transfer-tool-handlers-fetchattachment-and-downloa","heading":"Two new file download tools: FetchAttachment and DownloadTaskFile","glance":"Claude Code gains FetchAttachment and DownloadTaskFile tools for downloading files, and the upload tools get an extra field","teaser":null,"tier":"notice","area":"Tools","section":"What probably matters to you","position":15,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-file-transfer-tool-handlers-fetchattachment-and-downloa","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-file-transfer-tool-handlers-fetchattachment-and-downloa.json"},{"anchor":"doctor-reports-permission-rules-that-may-not-work-as-written","heading":"<code>\/doctor<\/code> now flags permission rules that may not work as written","glance":"`\/doctor` and the warnings list gain a section headed \"Permission rules that may not work as written\"","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":17,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/doctor-reports-permission-rules-that-may-not-work-as-written","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/doctor-reports-permission-rules-that-may-not-work-as-written.json"},{"anchor":"ide-installs-the-extension-with-progress-ui","heading":"<code>\/ide<\/code> can install the Claude Code extension and show its progress","glance":"`\/ide` now installs the Claude Code extension in the IDE you pick and reports whether it installed, failed or was skipped","teaser":null,"tier":"use","area":"IDE Integration","section":"What probably matters to you","position":18,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/ide-installs-the-extension-with-progress-ui","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/ide-installs-the-extension-with-progress-ui.json"},{"anchor":"idle-observation-fence-for-peer-activity-messages","heading":"Activity notes from other sessions can be marked as not instructions","glance":"With `idleObservationFence` on, activity notes from peer sessions are fenced off as content rather than instructions","teaser":null,"tier":"use","area":"Peer Messages","section":"What probably matters to you","position":20,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/idle-observation-fence-for-peer-activity-messages","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/idle-observation-fence-for-peer-activity-messages.json"},{"anchor":"hooks-runtime-can-skip-dispatch-when-all-handlers-are-defaul","heading":"Hooks runtime skips needless work, with two variables to turn this off","glance":"The hooks runtime now skips work when only default handlers apply; two environment variables switch the shortcuts off","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":22,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hooks-runtime-can-skip-dispatch-when-all-handlers-are-defaul","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hooks-runtime-can-skip-dispatch-when-all-handlers-are-defaul.json"},{"anchor":"env-var-opts-userpromptsubmit-hooks-into-hook-startedhook-r","heading":"Opt in to start and end events for <code>UserPromptSubmit<\/code> hooks","glance":"Setting CLAUDE_CODE_EMIT_USER_PROMPT_SUBMIT_HOOK_EVENTS makes Claude Code report when UserPromptSubmit hooks start and finish","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":24,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/env-var-opts-userpromptsubmit-hooks-into-hook-startedhook-r","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/env-var-opts-userpromptsubmit-hooks-into-hook-startedhook-r.json"},{"anchor":"resource-watchdog-telemetry-env-switches","heading":"Resource watchdog for remote sessions, controlled by environment variables","glance":"A resource watchdog and its reporting are now switched on or off by environment variables, aimed at certain remote session setups","teaser":null,"tier":"use","area":"Sessions","section":"What probably matters to you","position":25,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/resource-watchdog-telemetry-env-switches","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/resource-watchdog-telemetry-env-switches.json"},{"anchor":"result-messages-can-carry-gc-and-process-tuning-telemetry-o","heading":"Cloud workers report new process startup and memory diagnostics","glance":"Anthropic-hosted cloud workers can report startup timing, process tuning and, by opt-in, garbage-collection counts on session results","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":26,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/result-messages-can-carry-gc-and-process-tuning-telemetry-o","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/result-messages-can-carry-gc-and-process-tuning-telemetry-o.json"},{"anchor":"new-mimalloc-env-vars-preserved-and-a-new-diagnostic-categor","heading":"Two more memory-allocator environment variables are recognised","glance":"Claude Code now lists `MIMALLOC_PURGE_DELAY` and `MIMALLOC_PURGE_HOLES` alongside `MIMALLOC_PURGE_HOLES_MIN_INTERVAL`, and adds new diagnostic categories","teaser":null,"tier":"use","area":"Performance","section":"What probably matters to you","position":29,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-mimalloc-env-vars-preserved-and-a-new-diagnostic-categor","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-mimalloc-env-vars-preserved-and-a-new-diagnostic-categor.json"},{"anchor":"agent-proxy-gains-two-disable-switches-java-store-nss-reco","heading":"Agent proxy remembers trusted NSS databases and gains disable switches","glance":"The cloud-session agent proxy can skip repeat NSS certificate checks, gains NSS and Java store disable switches, and reports more status","teaser":null,"tier":"use","area":"Cloud Sessions","section":"What probably matters to you","position":30,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/agent-proxy-gains-two-disable-switches-java-store-nss-reco","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/agent-proxy-gains-two-disable-switches-java-store-nss-reco.json"},{"anchor":"rate-limit-checkpoint-and-rewindultrathink-changes","heading":"Typing ultrathink in a prompt can raise reasoning effort to xhigh","glance":"A prompt containing ultrathink now sets reasoning effort to xhigh for that request when the model you are using qualifies","teaser":null,"tier":"use","area":"Effort","section":"What probably matters to you","position":31,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/rate-limit-checkpoint-and-rewindultrathink-changes","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/rate-limit-checkpoint-and-rewindultrathink-changes.json"},{"anchor":"artifact-wake-registration-notices","heading":"Comments on an artifact can start a new turn in the session","glance":"Claude is told whether its session will wake when someone comments to Claude on an artifact or republishes it, and when that failed","teaser":null,"tier":"notice","area":"Artifacts","section":"What probably matters to you","position":32,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/artifact-wake-registration-notices","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/artifact-wake-registration-notices.json"},{"anchor":"login-screen-gains-a-hybrid-sign-in-option","heading":"Login screen can offer a &#039;hybrid&#039; sign-in option","glance":"The login choices can now include a 'hybrid' option alongside Claude.ai, Console and platform sign-in","teaser":null,"tier":"notice","area":"Login","section":"What probably matters to you","position":33,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/login-screen-gains-a-hybrid-sign-in-option","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/login-screen-gains-a-hybrid-sign-in-option.json"},{"anchor":"sealed-plugin-read-path-for-organization-managed-plugins-wit","heading":"Organization-managed plugins with a hooks module are verified by folder digest before loading","glance":"Sealed organization plugins are now checked by a sha256 digest of their folder and their manifest before they load, and are refused if anything does not match","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":34,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/sealed-plugin-read-path-for-organization-managed-plugins-wit","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/sealed-plugin-read-path-for-organization-managed-plugins-wit.json"},{"anchor":"plugin-hooks-registration-carries-ownhookssha256-plugin-ui","heading":"Plugins gain a screen-refresh call and a fingerprint for their own hooks","glance":"The plugin runtime now accepts ui.invalidate, hook registration can carry a fingerprint of the plugin's hooks, and a form error reads differently","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":35,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-hooks-registration-carries-ownhookssha256-plugin-ui","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-hooks-registration-carries-ownhookssha256-plugin-ui.json"},{"anchor":"headless-in-place-re-run-of-a-refused-prompt-and-plain-text","heading":"Programs running Claude Code can re-run a refused prompt and stream plain text","glance":"Claude Code run from another program can re-run an already stored prompt in place and pass plain-text pieces to the host as they arrive","teaser":null,"tier":"notice","area":"SDK","section":"What probably matters to you","position":36,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/headless-in-place-re-run-of-a-refused-prompt-and-plain-text","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/headless-in-place-re-run-of-a-refused-prompt-and-plain-text.json"},{"anchor":"artifact-comment-reply-guard-probe-now-runs-concurrently","heading":"Saving or deleting project docs goes to classifier review in arbiter mode","glance":"In the arbiter permission mode, saving or deleting a project doc is now handed on for classifier review","teaser":null,"tier":"notice","area":"Permissions","section":"What probably matters to you","position":37,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/artifact-comment-reply-guard-probe-now-runs-concurrently","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/artifact-comment-reply-guard-probe-now-runs-concurrently.json"},{"anchor":"two-new-typed-api-error-kinds-for-unattended-cloud-session-r","heading":"Two new error types for cloud sessions that restart on their own","glance":"SDK results can now report `unattended_start_limit` and `unattended_start_unconfirmed` errors for cloud sessions restarted without anyone present","teaser":null,"tier":"notice","area":"SDK","section":"What probably matters to you","position":38,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/two-new-typed-api-error-kinds-for-unattended-cloud-session-r","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/two-new-typed-api-error-kinds-for-unattended-cloud-session-r.json"},{"anchor":"hybrid-settings-scope-registered-flipped-to-true","heading":"Hybrid settings scope is now registered","glance":"A built-in switch now turns on registration of a hybrid settings scope, which was turned off in the previous build","teaser":null,"tier":"internal","area":"Settings","section":"What probably matters to you","position":39,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hybrid-settings-scope-registered-flipped-to-true","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hybrid-settings-scope-registered-flipped-to-true.json"},{"anchor":"new-settings-source-mcpmount-and-extra-state-fields","heading":"New <code>mcpMount<\/code> settings layer and remembered security warnings","glance":"Claude Code's settings order gains an `mcpMount` layer, and it now saves a record of security warnings you have already seen","teaser":null,"tier":"internal","area":"Settings","section":"What probably matters to you","position":40,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-settings-source-mcpmount-and-extra-state-fields","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-settings-source-mcpmount-and-extra-state-fields.json"},{"anchor":"disable-compact-now-also-stops-teammate-in-process-auto-comp","heading":"DISABLE_COMPACT now covers teammates and gets special settings handling","glance":"Teammates now respect DISABLE_COMPACT, and the settings environment filter treats DISABLE_COMPACT specially","teaser":null,"tier":"use","area":"Compaction","section":"What probably matters to you","position":41,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/disable-compact-now-also-stops-teammate-in-process-auto-comp","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/disable-compact-now-also-stops-teammate-in-process-auto-comp.json"},{"anchor":"background-session-exited-message-now-offers-resume-via-cl","heading":"Finished background sessions can be resumed with <code>claude attach<\/code>","glance":"When a background session's process has exited, Claude Code now tells you how to resume it instead of sending you back to the list","teaser":null,"tier":"use","area":"Background Agents","section":"What probably matters to you","position":44,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/background-session-exited-message-now-offers-resume-via-cl","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/background-session-exited-message-now-offers-resume-via-cl.json"},{"anchor":"shell-discovery-honors-claude-code-shell-and-prefers-the-use","heading":"Shell detection reworked, CLAUDE_CODE_SHELL validated, login shell reported","glance":"Claude Code now builds a list of bash\/zsh candidates, accepts CLAUDE_CODE_SHELL only if it matches, and tells Claude about your login shell","teaser":null,"tier":"use","area":"Shell","section":"What probably matters to you","position":45,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/shell-discovery-honors-claude-code-shell-and-prefers-the-use","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/shell-discovery-honors-claude-code-shell-and-prefers-the-use.json"},{"anchor":"otel-event-skipping-when-nothing-is-watching","heading":"Unused OpenTelemetry events are skipped, with a setting to turn this off","glance":"Claude Code now skips building OpenTelemetry events when nothing would receive them; set `CLAUDE_CODE_DISABLE_OTEL_EVENT_SKIP` to stop this","teaser":null,"tier":"use","area":"Telemetry","section":"What probably matters to you","position":46,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/otel-event-skipping-when-nothing-is-watching","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/otel-event-skipping-when-nothing-is-watching.json"},{"anchor":"cc-plugin-easel-now-also-registers-when-the-entrypoint-is-re","heading":"Chart plugin can now load in remote Cowork sessions","glance":"The built-in chart plugin, cc-plugin-easel, now also loads when Claude Code runs as a remote Cowork session","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":47,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/cc-plugin-easel-now-also-registers-when-the-entrypoint-is-re","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/cc-plugin-easel-now-also-registers-when-the-entrypoint-is-re.json"},{"anchor":"plugin-hooks-modules-can-now-load-sealed-from-org-provided","heading":"Plugin hooks modules can load sealed from organization-provided texts, with a reworked load check","glance":"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","teaser":null,"tier":"internal","area":"Plugins","section":"What probably matters to you","position":49,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-hooks-modules-can-now-load-sealed-from-org-provided","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-hooks-modules-can-now-load-sealed-from-org-provided.json"},{"anchor":"prompts-record-tools-used-new-secretpromptdialog","heading":"Agent, workflow and Skill results now list the tools that were used","glance":"Background agents, workflows, forked Skills and prompt records now carry a toolsUsed list naming the tools that ran","teaser":null,"tier":"notice","area":"Terminal UI","section":"What probably matters to you","position":50,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/prompts-record-tools-used-new-secretpromptdialog","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/prompts-record-tools-used-new-secretpromptdialog.json"},{"anchor":"subagent-foreground-cap-shortens-bash-auto-background-timeou","heading":"Background shell commands: subagent time cap and clearer messages","glance":"Subagents' long commands can be moved to the background sooner, and the messages Claude gets about backgrounded or stopped commands are clearer","teaser":null,"tier":"use","area":"Background Agents","section":"What probably matters to you","position":51,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/subagent-foreground-cap-shortens-bash-auto-background-timeou","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/subagent-foreground-cap-shortens-bash-auto-background-timeou.json"},{"anchor":"new-tool-result-message-when-a-vm-only-target-has-no-vm","heading":"Claude is told when a VM-only target has no VM available","glance":"When a session's actions must run inside a VM and none is available, Claude is told nothing ran and to tell you instead of retrying","teaser":null,"tier":"notice","area":"VM Tool Serving","section":"What probably matters to you","position":52,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-tool-result-message-when-a-vm-only-target-has-no-vm","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/new-tool-result-message-when-a-vm-only-target-has-no-vm.json"},{"anchor":"review-level-guidance-maxultra-only-when-explicitly-reques","heading":"Claude uses the costliest review level only when asked","glance":"Claude is now told to pick the max review level only when you, CLAUDE.md or a skill explicitly asks, never on its own judgment","teaser":null,"tier":"notice","area":"Code Review","section":"What probably matters to you","position":53,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/review-level-guidance-maxultra-only-when-explicitly-reques","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/review-level-guidance-maxultra-only-when-explicitly-reques.json"},{"anchor":"design-login-errors-surface-as-toasts","heading":"Design sign-in failures now show a clear error message","glance":"Some Design sign-in failures now show \"Design login failed\" with the reason, as an error notice","teaser":null,"tier":"notice","area":"Login","section":"What probably matters to you","position":54,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/design-login-errors-surface-as-toasts","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/design-login-errors-surface-as-toasts.json"},{"anchor":"permission-prompt-can-state-that-a-command-runs-in-a-vm","heading":"Permission prompts can say a command runs in a virtual machine","glance":"A permission prompt message can now say that a command runs inside a named VM on this computer, not on the computer itself","teaser":null,"tier":"notice","area":"Permissions","section":"What probably matters to you","position":55,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/permission-prompt-can-state-that-a-command-runs-in-a-vm","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/permission-prompt-can-state-that-a-command-runs-in-a-vm.json"},{"anchor":"tool-host-serving-generalised-from-linux-vm-to-a-guest-vm","heading":"Tool serving in a virtual machine no longer assumes the machine runs Linux","glance":"Messages about waiting for a virtual machine no longer say Linux, and a status banner warns when its operating system differs from yours","teaser":null,"tier":"notice","area":"VM Tool Serving","section":"What probably matters to you","position":56,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/tool-host-serving-generalised-from-linux-vm-to-a-guest-vm","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/tool-host-serving-generalised-from-linux-vm-to-a-guest-vm.json"},{"anchor":"account-memory-withdrawal-check-in-teleport-relay","heading":"Remote sessions stop using account memory when it is withdrawn or withheld","glance":"The teleport relay now falls back to standard behaviour when account memory is withdrawn or withheld, and treats a failed check as withdrawn","teaser":null,"tier":"internal","area":"Sessions","section":"What probably matters to you","position":58,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/account-memory-withdrawal-check-in-teleport-relay","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/account-memory-withdrawal-check-in-teleport-relay.json"},{"anchor":"tether-live-gate-now-off-for-zdr-orgs","heading":"Zero data retention accounts are kept out of the tether feature","glance":"Claude Code now switches off its tether feature for zero data retention accounts when a server-side switch says so","teaser":null,"tier":"internal","area":"Tether","section":"What probably matters to you","position":59,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/tether-live-gate-now-off-for-zdr-orgs","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/tether-live-gate-now-off-for-zdr-orgs.json"}],"facets":{"sections":[{"value":"What probably matters to you","entries":50},{"value":"Improvements","entries":203},{"value":"Bug Fixes","entries":24},{"value":"In Development","entries":10},{"value":"Internal Changes","entries":138}],"tiers":[{"value":"notice","entries":243},{"value":"internal","entries":143},{"value":"use","entries":29},{"value":"soon","entries":10}],"areas":[{"value":"MCP","entries":32},{"value":"Sessions","entries":28},{"value":"Elsewhere","entries":26},{"value":"Bash Safety","entries":22},{"value":"Background Agents","entries":21},{"value":"Terminal UI","entries":21},{"value":"Cloud Sessions","entries":20},{"value":"Telemetry","entries":20},{"value":"Permissions","entries":19},{"value":"SDK","entries":17},{"value":"Hooks","entries":13},{"value":"Plugins","entries":13},{"value":"Login","entries":10},{"value":"Settings","entries":10},{"value":"Artifacts","entries":9},{"value":"Compaction","entries":8},{"value":"Internals","entries":8},{"value":"Skills","entries":8},{"value":"Bash","entries":7},{"value":"Performance","entries":7},{"value":"Agent Teams","entries":6},{"value":"IDE Integration","entries":6},{"value":"Memory","entries":6},{"value":"Sandbox","entries":6},{"value":"API Requests","entries":5},{"value":"Auto Mode","entries":5},{"value":"Remote Control","entries":5},{"value":"Session Transcripts","entries":5},{"value":"Agents","entries":4},{"value":"Claude in Chrome","entries":4},{"value":"Models","entries":4},{"value":"Effort","entries":3},{"value":"File Mentions","entries":3},{"value":"File Suggestions","entries":3},{"value":"Gateway","entries":3},{"value":"Message Queue","entries":3},{"value":"Network","entries":3},{"value":"Network Proxy","entries":3},{"value":"Self-Hosted Runners","entries":3},{"value":"Shell","entries":3},{"value":"Tools","entries":3},{"value":"WebFetch","entries":3},{"value":"Peer Messages","entries":2},{"value":"Print Mode","entries":2},{"value":"Projects","entries":2},{"value":"Streaming","entries":2},{"value":"VM Tool Serving","entries":2},{"value":"CLI","entries":1},{"value":"Checkpoints","entries":1},{"value":"Code Review","entries":1},{"value":"Preview","entries":1},{"value":"Slash Commands","entries":1},{"value":"Tether","entries":1},{"value":"Worktrees","entries":1}]}}