{"version":"2.1.301","summary":"You can now set `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` to make a request fail instead of waiting past that time after hitting a usage limit. This release has 272 entries, and 150 of them are usable today. On 1M-context models, a new dialog can offer to auto-compact long conversations sooner. If you accept, the lower size is saved to your user settings. The setting for showing artifacts beside tool results is now `CLAUDE_CODE_DAPPER_CUPCAKE`, and the old `CLAUDE_CODE_SQUISHY_NEWT` is ignored. Programs built on the SDK can now block up to 64 MCP tools for a single turn, and they can load more plugins into a running session without a restart.\n\nThere are 12 entries in the build that are not switched on yet. Claude Code can build shorter instructions for the Read, Grep and Agent tools, but none are in use. Rewritten instructions for AskUserQuestion, the tool Claude uses to ask you questions, are prepared but not used. A slimmed-down prompt variant sits behind a remote switch that is off by default. Groundwork for routing notifications and for spotting interface freezes is present but changes nothing yet. The browser setup prompt in the desktop app and on claude.ai now uses a newly named switch, so any earlier rollout starts over.\n\nLong-running MCP tasks now wait and retry when the server rejects their ID with error -32602. Before this fix they failed at once. Stopping a background command whose output is saved elsewhere now points the notice to that file. Sending a session to the background mid-turn now keeps pending task notices and a scheduled-job note. Checkpoint commits now skip with a `git_error` reason when Claude Code cannot tell whether a git operation is in progress. Archiving remote sessions from the session list is removed, and the remove option that replaces it is not switched on in this build.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":50,"total":272,"next_offset":50,"next_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/entries.json?offset=50","entries":[{"anchor":"remote-session-attachments-in-user-data-path-env-gated-and","heading":"Remote-session attachments can be stored in a user-data folder behind CLAUDE_CODE_ATTACHMENTS_IN_USER_DATA","glance":"New `CLAUDE_CODE_ATTACHMENTS_IN_USER_DATA` variable lets remote sessions keep attachments in a user-data folder, with retention checks and hardened writes","teaser":null,"tier":"use","area":"Cloud Sessions","section":"What probably matters to you","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/remote-session-attachments-in-user-data-path-env-gated-and","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/remote-session-attachments-in-user-data-path-env-gated-and.json"},{"anchor":"new-env-var-caps-how-long-the-retry-watchdog-waits-on-a-usag","heading":"New setting limits how long Claude Code waits after hitting a usage limit","glance":"Set `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` to make a request fail instead of waiting past that time on a usage limit","teaser":null,"tier":"use","area":"Usage & Limits","section":"What probably matters to you","position":1,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-env-var-caps-how-long-the-retry-watchdog-waits-on-a-usag","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-env-var-caps-how-long-the-retry-watchdog-waits-on-a-usag.json"},{"anchor":"reload-plugins-control-request-gains-add-plugins","heading":"reload_plugins can now add plugins mid-session","glance":"The SDK reload_plugins request takes add_plugins to load extra plugin folders without restarting, refused in cloud sessions and under disableSideloadFlags","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":2,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/reload-plugins-control-request-gains-add-plugins","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/reload-plugins-control-request-gains-add-plugins.json"},{"anchor":"sdk-mcp-servers-can-carry-per-tool-permission-policy-via-mcp","heading":"SDK MCP servers can now carry a per-tool permission policy","glance":"Programs hosting Claude Code can set ask or deny rules for individual tools on their in-process MCP servers, at initialize or via mcp_set_servers","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.301\/e\/sdk-mcp-servers-can-carry-per-tool-permission-policy-via-mcp","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/sdk-mcp-servers-can-carry-per-tool-permission-policy-via-mcp.json"},{"anchor":"per-turn-disallowed-mcp-tools","heading":"Tools can now be blocked for a single turn","glance":"A per-turn disallowedTools list now blocks named MCP tools for one turn, feeds deny rules, and suppresses misleading tool-revoked notices","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":4,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/per-turn-disallowed-mcp-tools","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/per-turn-disallowed-mcp-tools.json"},{"anchor":"background-shell-commands-exposed-over-mcp-serve-with-lists","heading":"<code>mcp serve<\/code> can track and stop background shell commands","glance":"When Claude Code runs as an MCP server, the connected app can now see and stop shell commands left running in the background","teaser":null,"tier":"use","area":"MCP","section":"What probably matters to you","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/background-shell-commands-exposed-over-mcp-serve-with-lists","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/background-shell-commands-exposed-over-mcp-serve-with-lists.json"},{"anchor":"new-prompt-variant-enum-values-for-scratchpad","heading":"New prompt variants without a scratchpad","glance":"The list of prompt variants Claude Code accepts now includes three options without a scratchpad","teaser":null,"tier":"use","area":"System Prompt","section":"What probably matters to you","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-prompt-variant-enum-values-for-scratchpad","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-prompt-variant-enum-values-for-scratchpad.json"},{"anchor":"artifact-beside-tool-results-gate-renamed-from-tengu-squis","heading":"&#039;Beside tool results&#039; switch renamed to CLAUDE_CODE_DAPPER_CUPCAKE, and messages are tagged besideToolResults","glance":"The 'beside tool results' behaviour now reads `CLAUDE_CODE_DAPPER_CUPCAKE`; the old `CLAUDE_CODE_SQUISHY_NEWT` variable no longer does anything","teaser":null,"tier":"use","area":"Artifacts","section":"What probably matters to you","position":8,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/artifact-beside-tool-results-gate-renamed-from-tengu-squis","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/artifact-beside-tool-results-gate-renamed-from-tengu-squis.json"},{"anchor":"marketplace-entry-file-support-for-plugin-folders","heading":"Plugin folders can include their own marketplace entry file","glance":"Claude Code now reads a marketplace entry file kept inside a plugin's own folder and stops with a clear error if the file can't be used","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/marketplace-entry-file-support-for-plugin-folders","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/marketplace-entry-file-support-for-plugin-folders.json"},{"anchor":"multi-line-text-field-in-plugin-ui-rows","heading":"Plugin text fields can be multi-line with a new rows option","glance":"Text inputs in plugin-built UI accept a `rows` option; two or more rows give a multi-line field where Shift+Enter adds a new line","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":11,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/multi-line-text-field-in-plugin-ui-rows","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/multi-line-text-field-in-plugin-ui-rows.json"},{"anchor":"mcp-tool-call-input-gains-result-not-for-model-for-programma","heading":"MCP results can skip the model, and the starting folder is withheld in restricted setups","glance":"Hosts can get raw MCP results with result_not_for_model, and the original working directory is left out under HIPAA-style restrictions","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":12,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mcp-tool-call-input-gains-result-not-for-model-for-programma","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mcp-tool-call-input-gains-result-not-for-model-for-programma.json"},{"anchor":"vim-mode-gains-bracket-matching-motion","heading":"Vim mode now supports <code>%<\/code> to jump to the matching bracket","glance":"In vim mode, pressing `%` now moves the cursor to the bracket that matches the one under it","teaser":null,"tier":"use","area":"Terminal UI","section":"What probably matters to you","position":15,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/vim-mode-gains-bracket-matching-motion","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/vim-mode-gains-bracket-matching-motion.json"},{"anchor":"autocompact-offer-dialog-dark-unless-a-remote-config-object","heading":"New dialog offering to autocompact earlier, controlled by a server-side config","glance":"A new 'We recommend compacting earlier' dialog can offer to lower your autocompact threshold, shown only when a server-side config selects the offer","teaser":null,"tier":"notice","area":"Compaction","section":"What probably matters to you","position":16,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/autocompact-offer-dialog-dark-unless-a-remote-config-object","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/autocompact-offer-dialog-dark-unless-a-remote-config-object.json"},{"anchor":"slash-commands-can-now-trigger-a-model-turn-after-running-o","heading":"Slash commands can now hand Claude a follow-up prompt after they run","glance":"A slash command can now pass along a follow-up prompt that makes Claude respond after the command finishes, instead of always stopping","teaser":null,"tier":"notice","area":"Slash Commands","section":"What probably matters to you","position":17,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/slash-commands-can-now-trigger-a-model-turn-after-running-o","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/slash-commands-can-now-trigger-a-model-turn-after-running-o.json"},{"anchor":"cache-keepalive-touch-window-can-be-extended-for-in-flight-r","heading":"Keep-alive window can now be longer while a run is in progress","glance":"A new server-set option, inFlightWindowMinutes, can extend the keep-alive window while a run is in progress; it does nothing until set","teaser":null,"tier":"internal","area":"Prompt Cache","section":"What probably matters to you","position":19,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/cache-keepalive-touch-window-can-be-extended-for-in-flight-r","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/cache-keepalive-touch-window-can-be-extended-for-in-flight-r.json"},{"anchor":"mcp-call-results-can-be-marked-not-for-model-with-a-too-lar","heading":"MCP tool results can be kept from the model, with a size limit","glance":"An MCP tool call made through the control channel can mark its result as not for the model, and too-large results now return an error text","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":20,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mcp-call-results-can-be-marked-not-for-model-with-a-too-lar","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mcp-call-results-can-be-marked-not-for-model-with-a-too-lar.json"},{"anchor":"managed-settings-schema-expanded-settings-read-tool-returns","heading":"Organizations can push more settings remotely, and the output style is now reported","glance":"Remotely managed settings now accept keys such as `effortLevel`, `outputStyle` and `attribution`, and Claude Code's settings report includes the output style","teaser":null,"tier":"use","area":"Managed Settings","section":"What probably matters to you","position":21,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/managed-settings-schema-expanded-settings-read-tool-returns","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/managed-settings-schema-expanded-settings-read-tool-returns.json"},{"anchor":"plugin-agents-and-commands-get-a-plugin-data-directory","heading":"Plugin data folder now reaches agents, commands and skills, and can be missing","glance":"CLAUDE_PLUGIN_DATA now fills in plugin agent, command and skill prompts, and fails with an error when the plugin is on another machine","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":22,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/plugin-agents-and-commands-get-a-plugin-data-directory","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/plugin-agents-and-commands-get-a-plugin-data-directory.json"},{"anchor":"vim-motion-supported-as-operator-motion","heading":"Vim mode accepts <code>%<\/code> after an operator","glance":"In vim mode, `%` can now be used as the motion after an operator, the way `j` and `k` already could","teaser":null,"tier":"use","area":"Terminal UI","section":"What probably matters to you","position":25,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/vim-motion-supported-as-operator-motion","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/vim-motion-supported-as-operator-motion.json"},{"anchor":"remote-sessions-archive-replaced-by-removeremotesession-stu","heading":"Cloud session list: archiving replaced by removeRemoteSession, with paging and a summary of results","glance":"Cloud sessions now go through removeRemoteSession, which reports a result summary but in this build always fails with gate_off; the list also gains paging","teaser":null,"tier":"notice","area":"Background Tasks","section":"What probably matters to you","position":26,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/remote-sessions-archive-replaced-by-removeremotesession-stu","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/remote-sessions-archive-replaced-by-removeremotesession-stu.json"},{"anchor":"session-guidance-and-a-new-surface-section","heading":"Claude Code can tell Claude which app it is running in","glance":"Claude Code can now work out which app it is running in and add a section saying so to its instructions to Claude","teaser":null,"tier":"notice","area":"System Prompt","section":"What probably matters to you","position":27,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/session-guidance-and-a-new-surface-section","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/session-guidance-and-a-new-surface-section.json"},{"anchor":"hooks-organization-managed-vs-person-written-hooks-are-di","heading":"Hooks and env settings are now marked as the organization&#039;s or a person&#039;s","glance":"Claude Code now tells managed (organization) hooks and env apart from those a person's plugin wrote, including statusLine and fileSuggestion commands","teaser":null,"tier":"notice","area":"Hooks","section":"What probably matters to you","position":28,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/hooks-organization-managed-vs-person-written-hooks-are-di","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/hooks-organization-managed-vs-person-written-hooks-are-di.json"},{"anchor":"mod-authoring-follow-up-note-after-a-mod-command-runs","heading":"Claude gives a short reply after you run a command from a mod you are building","glance":"After you run a command from a mod you are building, Claude now replies in a line or two and may offer the plugin-authoring skill","teaser":null,"tier":"notice","area":"Mods","section":"What probably matters to you","position":29,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mod-authoring-follow-up-note-after-a-mod-command-runs","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/mod-authoring-follow-up-note-after-a-mod-command-runs.json"},{"anchor":"project-upload-file-tool-renamed-to-readprojectuploadtext","heading":"Project upload reading tool renamed to <code>ReadProjectUploadText<\/code>","glance":"The tool for reading a project upload is now called ReadProjectUploadText instead of ReadProjectUpload, and three more tools join it","teaser":null,"tier":"notice","area":"Projects","section":"What probably matters to you","position":30,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/project-upload-file-tool-renamed-to-readprojectuploadtext","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/project-upload-file-tool-renamed-to-readprojectuploadtext.json"},{"anchor":"resume-picker-startsincloudbydefault-and-footernote","heading":"Resume picker can show a footer note when sessions start in the cloud by default","glance":"The resume picker now knows whether new sessions start in the cloud by default and can show a note at the bottom of its session list","teaser":null,"tier":"notice","area":"Resume","section":"What probably matters to you","position":31,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/resume-picker-startsincloudbydefault-and-footernote","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/resume-picker-startsincloudbydefault-and-footernote.json"},{"anchor":"new-vs-code-gates-math-rendering-and-restore-breaker-both","heading":"VS Code extension gets two remote switches: math rendering and restore breaker","glance":"Claude Code now passes two new remotely controlled switches to the VS Code extension, one for math rendering and one for a restore breaker","teaser":null,"tier":"internal","area":"VS Code","section":"What probably matters to you","position":33,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-vs-code-gates-math-rendering-and-restore-breaker-both","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-vs-code-gates-math-rendering-and-restore-breaker-both.json"},{"anchor":"new-alternate-communicating-with-the-user-system-prompt-bu","heading":"A longer alternative set of instructions for how Claude talks to you, not yet in use","glance":"Claude Code now contains a longer alternative version of its instructions on how Claude communicates, used only when a check passes","teaser":null,"tier":"soon","area":"System Prompt","section":"What probably matters to you","position":34,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-alternate-communicating-with-the-user-system-prompt-bu","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-alternate-communicating-with-the-user-system-prompt-bu.json"},{"anchor":"resume-picker-starts-in-cloud-footer-is-wired-up-but-hardc","heading":"Resume picker gains room for a footer note, wired for a &#039;starts in cloud&#039; hint that is not turned on","glance":"The session resume list can show a one-line footerNote, prepared for a 'starts in cloud' hint whose only caller leaves it off and whose text is empty","teaser":null,"tier":"notice","area":"Resume","section":"What probably matters to you","position":35,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/resume-picker-starts-in-cloud-footer-is-wired-up-but-hardc","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/resume-picker-starts-in-cloud-footer-is-wired-up-but-hardc.json"},{"anchor":"agent-tool-prompt-takes-leanrewrite-artifact-schema-gets-pu","heading":"Groundwork for alternative Agent and Skill tool instructions; artifact publish edits recorded","glance":"The Agent and Skill tool instructions can now take extra options with no visible effect yet, and artifact publish edits are now recorded","teaser":null,"tier":"soon","area":"Tool Prompts","section":"What probably matters to you","position":36,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/agent-tool-prompt-takes-leanrewrite-artifact-schema-gets-pu","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/agent-tool-prompt-takes-leanrewrite-artifact-schema-gets-pu.json"},{"anchor":"lean-read-and-grep-tool-descriptions-add-a-leanrewrite-varia","heading":"Groundwork for shorter Read, Grep and Agent tool instructions","glance":"Claude Code can now build alternate shorter instructions for the Read, Grep and Agent tools, but none are in use yet","teaser":null,"tier":"soon","area":"Tool Prompts","section":"What probably matters to you","position":37,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-read-and-grep-tool-descriptions-add-a-leanrewrite-varia","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-read-and-grep-tool-descriptions-add-a-leanrewrite-varia.json"},{"anchor":"lean-rewrite-variants-of-the-askuserquestion-prompt-and-memo","heading":"Rewritten question-tool and memory instructions prepared but not in use","glance":"Claude Code can now choose rewritten instructions for AskUserQuestion and for memory upkeep, but the rewritten versions were not seen in use","teaser":null,"tier":"soon","area":"Tool Prompts","section":"What probably matters to you","position":38,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-rewrite-variants-of-the-askuserquestion-prompt-and-memo","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-rewrite-variants-of-the-askuserquestion-prompt-and-memo.json"},{"anchor":"system-prompt-gains-a-variant-mode-with-surface-section-and","heading":"System prompt gains an alternate layout that is not yet in use","glance":"Claude Code's system prompt can now be built in an alternate layout with extra sections, but the prompt sent in ordinary use is unchanged","teaser":null,"tier":"soon","area":"System Prompt","section":"What probably matters to you","position":39,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/system-prompt-gains-a-variant-mode-with-surface-section-and","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/system-prompt-gains-a-variant-mode-with-surface-section-and.json"},{"anchor":"environment-reminder-tells-model-about-agentproxy","heading":"Claude is told when an agent proxy becomes available","glance":"Environment-change reminders sent to the model can now include a notice when an agent proxy first appears","teaser":null,"tier":"internal","area":"Agent Proxy","section":"What probably matters to you","position":40,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/environment-reminder-tells-model-about-agentproxy","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/environment-reminder-tells-model-about-agentproxy.json"},{"anchor":"platform-tip-textsystem-context-agentproxy-environment-sec","heading":"Environment details given to Claude can now mention an agent proxy","glance":"The description of the environment that Claude Code gives the model can now include a different line when an agent proxy is in use","teaser":null,"tier":"internal","area":"Agent Proxy","section":"What probably matters to you","position":41,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/platform-tip-textsystem-context-agentproxy-environment-sec","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/platform-tip-textsystem-context-agentproxy-environment-sec.json"},{"anchor":"lean-rewrite-state-and-kept-background-commands-added","heading":"Groundwork for keeping background commands running","glance":"Claude Code adds internal tracking for a lean rewrite mode and for background commands that are kept","teaser":null,"tier":"internal","area":"Background Shells","section":"What probably matters to you","position":42,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-rewrite-state-and-kept-background-commands-added","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/lean-rewrite-state-and-kept-background-commands-added.json"},{"anchor":"bash-tool-gains-run-in-background-keep-path-and-leanrewrite","heading":"Bash gains a keep-in-background path, and MCP results not meant for the model skip size handling","glance":"Bash can force commands into the background with a `keptBackgroundShells` starter, and MCP results flagged not for the model bypass output limits","teaser":null,"tier":"notice","area":"Background Shells","section":"What probably matters to you","position":43,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/bash-tool-gains-run-in-background-keep-path-and-leanrewrite","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/bash-tool-gains-run-in-background-keep-path-and-leanrewrite.json"},{"anchor":"new-cloud-cause-for-unapproved-sessions","heading":"New &#039;cloud&#039; outcome for sessions that are not yet approved","glance":"An unapproved session can now be given a third outcome, 'cloud', alongside the existing 'card' and 'review'","teaser":null,"tier":"internal","area":"Cloud Sessions","section":"What probably matters to you","position":44,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-cloud-cause-for-unapproved-sessions","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-cloud-cause-for-unapproved-sessions.json"},{"anchor":"memoryextraction-config-schema-gains-idle-flush-prose-gate","heading":"Memory extraction can now wait for enough of your own writing","glance":"Automatic memory saving gains a chat-prose gate, a review window, an idle-flush minimum and a first-look pre-screen, all set by its config","teaser":null,"tier":"internal","area":"Remote Settings","section":"What probably matters to you","position":45,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/memoryextraction-config-schema-gains-idle-flush-prose-gate","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/memoryextraction-config-schema-gains-idle-flush-prose-gate.json"},{"anchor":"bash-tool-result-can-carry-an-explicit-background-output-pat","heading":"Background shell commands can report a different output file location","glance":"When Claude runs a shell command in the background, Claude Code can now point Claude at a specific output file instead of the default location","teaser":null,"tier":"notice","area":"Background Shells","section":"Improvements","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/bash-tool-result-can-carry-an-explicit-background-output-pat","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/bash-tool-result-can-carry-an-explicit-background-output-pat.json"},{"anchor":"carried-background-agents-are-reconciled-and-reported-as-fai","heading":"Background agents carried into a new session are marked failed if they can&#039;t be confirmed","glance":"Background agents carried over from an earlier session that Claude Code cannot confirm are now marked failed, and Claude is told why","teaser":null,"tier":"notice","area":"Subagents","section":"Improvements","position":1,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/carried-background-agents-are-reconciled-and-reported-as-fai","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/carried-background-agents-are-reconciled-and-reported-as-fai.json"},{"anchor":"ripgrep-failure-on-an-input-error-now-rejects-with-a-specifi","heading":"File searches that fail early now stop with an error straight away","glance":"When the search program behind file searches fails without results, some searches now stop with an error at once instead of going through general handling","teaser":null,"tier":"notice","area":"Elsewhere","section":"Improvements","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/ripgrep-failure-on-an-input-error-now-rejects-with-a-specifi","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/ripgrep-failure-on-an-input-error-now-rejects-with-a-specifi.json"},{"anchor":"plan-slugs-are-validated","heading":"Plan names are now checked before Claude Code uses them","glance":"Claude Code now refuses a plan's short name if it is too long or contains characters outside the allowed pattern","teaser":null,"tier":"notice","area":"Plan Mode","section":"Improvements","position":3,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/plan-slugs-are-validated","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/plan-slugs-are-validated.json"},{"anchor":"model-validation-flags-shared-limit-429s","heading":"\/model switch no longer rejected as an invalid model when a shared usage limit is hit","glance":"When \/model's check hits a five-hour or seven-day limit, the result is flagged sharedLimitReached and the switch can go ahead instead of failing as invalid_model","teaser":null,"tier":"notice","area":"Usage & Limits","section":"Improvements","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/model-validation-flags-shared-limit-429s","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/model-validation-flags-shared-limit-429s.json"},{"anchor":"workflow-subagent-prompts-add-an-authority-note","heading":"Workflow helpers are told not to skip a step only because it lacks user authority","glance":"Subagents run by workflows are now told that a note saying their task has no user authority is not a reason on its own to skip it","teaser":null,"tier":"notice","area":"Workflows","section":"Improvements","position":6,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/workflow-subagent-prompts-add-an-authority-note","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/workflow-subagent-prompts-add-an-authority-note.json"},{"anchor":"background-shell-exit-marker-replaced-by-a-structured-call","heading":"End-of-run note for background shell commands is written a different way","glance":"When a background shell command ends, Claude Code no longer writes the plain [killed] or [exited with code N] line itself","teaser":null,"tier":"notice","area":"Background Shells","section":"Improvements","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/background-shell-exit-marker-replaced-by-a-structured-call","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/background-shell-exit-marker-replaced-by-a-structured-call.json"},{"anchor":"retry-after-delay-no-longer-capped","heading":"Server-requested retry waits are no longer capped","glance":"When a server says how long to wait before retrying, Claude Code now uses that full wait instead of cutting it down to a maximum","teaser":null,"tier":"notice","area":"Elsewhere","section":"Improvements","position":8,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/retry-after-delay-no-longer-capped","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/retry-after-delay-no-longer-capped.json"},{"anchor":"cloud-sessions-get-a-specific-not-applied-message-for-sett","heading":"Cloud sessions explain why Claude cannot change Claude Code&#039;s settings files","glance":"In a cloud session, Claude is now told that settings-file edits need approval on the machine running Claude Code, and not to retry","teaser":null,"tier":"notice","area":"Cloud Sessions","section":"Improvements","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/cloud-sessions-get-a-specific-not-applied-message-for-sett","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/cloud-sessions-get-a-specific-not-applied-message-for-sett.json"},{"anchor":"secret-scan-refusal-for-sessions-with-no-memory-folder","heading":"Sessions with no memory folder block writing files that look like they hold secrets","glance":"When a session has no memory folder, Claude Code refuses to write any file whose content looks like it contains secrets such as passwords or keys","teaser":null,"tier":"notice","area":"Secret Scanning","section":"Improvements","position":10,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/secret-scan-refusal-for-sessions-with-no-memory-folder","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/secret-scan-refusal-for-sessions-with-no-memory-folder.json"},{"anchor":"diskless-sessions-refuse-direct-session-file-writes","heading":"Sessions without local storage no longer write session files straight to disk","glance":"In a session without local storage, Claude Code now refuses to write transcripts and other session files directly to disk","teaser":null,"tier":"notice","area":"Diskless Sessions","section":"Improvements","position":11,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/diskless-sessions-refuse-direct-session-file-writes","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/diskless-sessions-refuse-direct-session-file-writes.json"},{"anchor":"subagent-sendresume-budget-between-user-messages","heading":"Limit on how often agents can be messaged or resumed between your messages","glance":"Messaging or resuming a subagent now counts against a limit that resets when you write, and is refused with a 'Not sent' message once used up","teaser":null,"tier":"notice","area":"Subagents","section":"Improvements","position":12,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/subagent-sendresume-budget-between-user-messages","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/subagent-sendresume-budget-between-user-messages.json"}],"facets":{"sections":[{"value":"What probably matters to you","entries":38},{"value":"Improvements","entries":101},{"value":"Bug Fixes","entries":24},{"value":"In Development","entries":7},{"value":"Internal Changes","entries":100},{"value":"Removed","entries":2}],"tiers":[{"value":"notice","entries":134},{"value":"internal","entries":110},{"value":"use","entries":16},{"value":"soon","entries":12}],"areas":[{"value":"Elsewhere","entries":30},{"value":"Terminal UI","entries":17},{"value":"MCP","entries":14},{"value":"Sessions","entries":13},{"value":"Background Shells","entries":11},{"value":"SDK","entries":10},{"value":"Diskless Sessions","entries":9},{"value":"Plugins","entries":9},{"value":"Subagents","entries":8},{"value":"Background Tasks","entries":7},{"value":"Cloud Sessions","entries":7},{"value":"Git","entries":7},{"value":"Hooks","entries":7},{"value":"Permissions","entries":7},{"value":"Compaction","entries":6},{"value":"Resume","entries":6},{"value":"System Prompt","entries":6},{"value":"Telemetry","entries":6},{"value":"Usage & Limits","entries":6},{"value":"Agent Proxy","entries":5},{"value":"Artifacts","entries":5},{"value":"Auth","entries":5},{"value":"Environment Variables","entries":5},{"value":"File Reading","entries":5},{"value":"Tool Prompts","entries":5},{"value":"Clipboard","entries":4},{"value":"Browser","entries":3},{"value":"Config File","entries":3},{"value":"Environment Detection","entries":3},{"value":"Managed Settings","entries":3},{"value":"Messages","entries":3},{"value":"Plan Mode","entries":3},{"value":"Projects","entries":3},{"value":"Skills","entries":3},{"value":"Debug Logs","entries":2},{"value":"Input Box","entries":2},{"value":"Memory","entries":2},{"value":"Models","entries":2},{"value":"Plugin Publishing","entries":2},{"value":"Self-Hosted Runners","entries":2},{"value":"Auto Mode","entries":1},{"value":"Autofix PR","entries":1},{"value":"Context Window","entries":1},{"value":"File Search","entries":1},{"value":"Gateway Login","entries":1},{"value":"Mods","entries":1},{"value":"Policy Limits","entries":1},{"value":"Prompt Cache","entries":1},{"value":"Remote Control","entries":1},{"value":"Remote Settings","entries":1},{"value":"Restricted Mode","entries":1},{"value":"Secret Scanning","entries":1},{"value":"Slash Commands","entries":1},{"value":"VS Code","entries":1},{"value":"Workflows","entries":1},{"value":"Worktrees","entries":1}]}}