{"version":"2.1.317","summary":"You can now turn off MCP task support by setting CLAUDE_CODE_DISABLE_MCP_TASKS. This release has 440 entries, and 284 of them are usable today. Accounts offered Life Sciences use cases get a new \/use-case command to pick one. That choice is saved for later sessions. A new app:closeSession shortcut action lets you bind a key to close a session shown under session tabs. Programs that launch Claude Code can pass working directories exactly as given with the new permissions.workingDirectoriesAsGiven setting.\n\nThere are 12 entries in the build that are not switched on yet. A Wrap up tool would let Claude end a turn with a short recap and up to two next-step buttons. Claude Code now tracks messages for taking back a sent message with Esc, but the take-back does nothing yet. Hooks of type agent and mcp_tool can be read, but a remote allow list keeps them off and is empty by default. A spot is reserved for a live preview sharing dialog, with no way to open it yet.\n\nUpdates on macOS no longer delete the app bundle a running session is using. Saving settings no longer overwrites a config file that appeared while Claude Code was creating its own. Cancelling the theme picker no longer quits Claude Code. SDK hooks set to block on failure now stop the action as intended. Reading an unchanged file again no longer returns a short \"file unchanged\" note. The CLAUDE_CODE_LAZY_ENV_GETTERS environment variable is no longer recognised.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":50,"total":440,"next_offset":50,"next_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/entries.json?offset=50","entries":[{"anchor":"new-env-gated-switch-claude-code-deep-twilight-controls-host","heading":"New environment variables for subagent handback and host mid-turn prompts","glance":"Adds CLAUDE_CODE_DISABLE_SUBAGENT_HANDBACK and CLAUDE_CODE_DEEP_TWILIGHT, and lists PARSED_WILLOW and DAPPER_CUPCAKE in more allowlists","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-env-gated-switch-claude-code-deep-twilight-controls-host","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-env-gated-switch-claude-code-deep-twilight-controls-host.json"},{"anchor":"session-tab-close-keybinding-and-sessiontabs-context-added","heading":"A keyboard shortcut action for closing a session under session tabs","glance":"Claude Code now has an app:closeSession shortcut action and a SessionTabs keybinding context for closing a session shown under session tabs","teaser":null,"tier":"use","area":"Terminal UI","section":"What probably matters to you","position":1,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-tab-close-keybinding-and-sessiontabs-context-added","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-tab-close-keybinding-and-sessiontabs-context-added.json"},{"anchor":"mcp-tasks-gate-now-has-a-computed-fallback-and-a-kill-switch","heading":"MCP task support can be turned off with <code>CLAUDE_CODE_DISABLE_MCP_TASKS<\/code>","glance":"Setting `CLAUDE_CODE_DISABLE_MCP_TASKS` turns off MCP task support, and the remote switch for it can now default to on in some setups","teaser":null,"tier":"use","area":"MCP","section":"What probably matters to you","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-tasks-gate-now-has-a-computed-fallback-and-a-kill-switch","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-tasks-gate-now-has-a-computed-fallback-and-a-kill-switch.json"},{"anchor":"new-use-case-command-for-life-sciences-use-cases","heading":"New <code>\/use-case<\/code> command to choose a Life Sciences use case","glance":"Accounts offered Life Sciences use cases get a `\/use-case` command and a startup dialog to pick one, saved for later sessions","teaser":null,"tier":"use","area":"Slash Commands","section":"What probably matters to you","position":3,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-use-case-command-for-life-sciences-use-cases","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-use-case-command-for-life-sciences-use-cases.json"},{"anchor":"interrupt-handling-gate-tengu-fizzy-grove-now-overridable-by","heading":"New <code>CLAUDE_CODE_FIZZY_GROVE<\/code> setting overrides how an interrupt is handled","glance":"Setting `CLAUDE_CODE_FIZZY_GROVE` now overrides a remote switch that changes what happens when work is interrupted","teaser":null,"tier":"use","area":"Environment Variables","section":"What probably matters to you","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/interrupt-handling-gate-tengu-fizzy-grove-now-overridable-by","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/interrupt-handling-gate-tengu-fizzy-grove-now-overridable-by.json"},{"anchor":"new-env-claude-code-plain-delta-direct-write-for-streaming-d","heading":"New <code>CLAUDE_CODE_PLAIN_DELTA_DIRECT_WRITE<\/code> setting for faster stream-json output","glance":"Setting CLAUDE_CODE_PLAIN_DELTA_DIRECT_WRITE with the fast-path option writes streamed text pieces straight out when the reader is waiting","teaser":null,"tier":"use","area":"Headless Mode","section":"What probably matters to you","position":6,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-env-claude-code-plain-delta-direct-write-for-streaming-d","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-env-claude-code-plain-delta-direct-write-for-streaming-d.json"},{"anchor":"program-use-case-id-env-var-and-federated-possum-gate","heading":"New <code>CLAUDE_CODE_PROGRAM_USE_CASE_ID<\/code> setting labels requests with a use case","glance":"Set `CLAUDE_CODE_PROGRAM_USE_CASE_ID` and Claude Code can attach that use case ID to its requests, if the host accepts it","teaser":null,"tier":"use","area":"Environment Variables","section":"What probably matters to you","position":7,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/program-use-case-id-env-var-and-federated-possum-gate","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/program-use-case-id-env-var-and-federated-possum-gate.json"},{"anchor":"new-permissionsworkingdirectoriesasgiven-setting-for-host-p","heading":"New <code>permissions.workingDirectoriesAsGiven<\/code> setting for programs that launch Claude Code","glance":"A host program can now pass working directories spelled exactly as given, via --settings, without Claude Code following links","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":8,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-permissionsworkingdirectoriesasgiven-setting-for-host-p","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-permissionsworkingdirectoriesasgiven-setting-for-host-p.json"},{"anchor":"ccr-slow-skills-watch-gated-by-claude-code-ccr-slow-skills-w","heading":"New environment variables for remote sessions, including a stall-check interval","glance":"Remote sessions gain new `CLAUDE_CODE_*` settings, such as a stall-check interval and a slow-skills watch, and `CLAUDE_CODE_LAZY_ENV_GETTERS` is dropped","teaser":null,"tier":"use","area":"Skills","section":"What probably matters to you","position":9,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/ccr-slow-skills-watch-gated-by-claude-code-ccr-slow-skills-w","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/ccr-slow-skills-watch-gated-by-claude-code-ccr-slow-skills-w.json"},{"anchor":"plugin-backdrop-api-new-uibackdrop-function-hook","heading":"Plugins can draw a translucent backdrop behind Claude Code","glance":"A new ui.backdrop function lets plugins draw a blurred, tinted backdrop, and connecting clients can say they draw a Backdrop","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":10,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-backdrop-api-new-uibackdrop-function-hook","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-backdrop-api-new-uibackdrop-function-hook.json"},{"anchor":"stoppermission-hook-callbacks-gain-onfailure","heading":"SDK hook callbacks can block an action when they fail, using onFailure","glance":"SDK hook callbacks can set onFailure to block so a failed check stops the action, and the SDK refuses to start if Claude Code cannot honour it","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":11,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/stoppermission-hook-callbacks-gain-onfailure","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/stoppermission-hook-callbacks-gain-onfailure.json"},{"anchor":"gmail-file-attachments-by-reference-for-mcp-connector","heading":"Gmail connector can attach local files, with compliance-policy controls for connector file sending","glance":"Claude can attach local files to Gmail drafts and messages with your approval, and HIPAA or ZDR policies can block connector file sending","teaser":null,"tier":"notice","area":"Connectors","section":"What probably matters to you","position":13,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/gmail-file-attachments-by-reference-for-mcp-connector","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/gmail-file-attachments-by-reference-for-mcp-connector.json"},{"anchor":"mcp-app-view-state-readable-via-readwidgetcontext-tool","heading":"Claude can read what an MCP App view has shared","glance":"A new `ReadWidgetContext` tool lets Claude read the latest state that an MCP App view has shared with Claude Code","teaser":null,"tier":"notice","area":"MCP Apps","section":"What probably matters to you","position":14,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-app-view-state-readable-via-readwidgetcontext-tool","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-app-view-state-readable-via-readwidgetcontext-tool.json"},{"anchor":"new-wrap-up-tool-lets-the-model-offer-next-step-buttons-at","heading":"A Wrap up box can end a turn with a recap and next-step buttons","glance":"A new Wrap up tool lets Claude end a turn with a short recap and up to two buttons offering what to do next","teaser":null,"tier":"soon","area":"Wrap Up","section":"What probably matters to you","position":15,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-wrap-up-tool-lets-the-model-offer-next-step-buttons-at","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-wrap-up-tool-lets-the-model-offer-next-step-buttons-at.json"},{"anchor":"hook-config-loader-gains-agent-and-mcp-tool-hook-kinds-behin","heading":"New agent and mcp_tool hook types, enabled through a remote list","glance":"Hooks gain `agent` and `mcp_tool` types, accepted only when the remote `tengu_woven_ladder` list names them","teaser":null,"tier":"notice","area":"Hooks","section":"What probably matters to you","position":16,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/hook-config-loader-gains-agent-and-mcp-tool-hook-kinds-behin","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/hook-config-loader-gains-agent-and-mcp-tool-hook-kinds-behin.json"},{"anchor":"permission-rule-editor-compose-and-offer-check-flow-certif","heading":"Hidden permission rule command gains rule composing and spots near-duplicate rules","glance":"`claude edit-permission-rules` now accepts compose requests, refuses certified rules, and catches duplicate rules that differ only in spelling","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.317\/e\/permission-rule-editor-compose-and-offer-check-flow-certif","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/permission-rule-editor-compose-and-offer-check-flow-certif.json"},{"anchor":"mcp-server-config-accepts-an-optional-displayname","heading":"MCP server settings accept an optional <code>displayName<\/code>","glance":"An MCP server's settings can now include a displayName, and a badly formed value is ignored instead of breaking the config","teaser":null,"tier":"use","area":"MCP","section":"What probably matters to you","position":18,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-server-config-accepts-an-optional-displayname","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-server-config-accepts-an-optional-displayname.json"},{"anchor":"mcp-authenticate-gains-redirecturionly-mode-no-localhost-fa","heading":"MCP sign-in can insist on the host&#039;s own redirect address with redirectUriOnly","glance":"mcp_authenticate gains redirectUriOnly, which fails sign-in instead of falling back to a localhost listener when the custom redirect is rejected","teaser":null,"tier":"use","area":"MCP","section":"What probably matters to you","position":19,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-authenticate-gains-redirecturionly-mode-no-localhost-fa","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/mcp-authenticate-gains-redirecturionly-mode-no-localhost-fa.json"},{"anchor":"permission-rule-edit-op-accepts-compose","heading":"Permission rule updates accept a third operation, compose","glance":"The operation that updates permission rules now accepts compose alongside add and remove","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":20,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/permission-rule-edit-op-accepts-compose","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/permission-rule-edit-op-accepts-compose.json"},{"anchor":"plugin-ui-render-component-backdrop-added","heading":"Plugins can now draw at a new Backdrop spot on screen","glance":"Plugins that draw their own screens through `ui.render` gain a new place to draw, called Backdrop","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":21,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-ui-render-component-backdrop-added","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-ui-render-component-backdrop-added.json"},{"anchor":"ultrathink-typed-user-message-field","heading":"Programs built on Claude Code can mark a typed &quot;ultrathink&quot; to raise effort","glance":"SDK hosts can send `ultrathink_typed` to say a person typed \"ultrathink\", so the turn runs at xhigh effort when the session allows it","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":22,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/ultrathink-typed-user-message-field","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/ultrathink-typed-user-message-field.json"},{"anchor":"host-short-temp-dirs-env-var-set-from-entrypoint-handling","heading":"Some launches now set CLAUDE_CODE_HOST_SHORT_TEMP_DIRS to 0 unless you set it","glance":"Depending on how Claude Code was launched, it clears CLAUDE_CODE_ENTRYPOINT and may set CLAUDE_CODE_HOST_SHORT_TEMP_DIRS to 0","teaser":null,"tier":"use","area":"Environment Variables","section":"What probably matters to you","position":23,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/host-short-temp-dirs-env-var-set-from-entrypoint-handling","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/host-short-temp-dirs-env-var-set-from-entrypoint-handling.json"},{"anchor":"connector-file-send-approval-dialog-shows-files-and-refuses","heading":"Sending files through connectors now asks in a new approval dialog","glance":"File sends through connectors get a connectorFileSend permission that bypass mode does not skip, with a dialog listing the files and refusing unreadable lists","teaser":null,"tier":"notice","area":"Connectors","section":"What probably matters to you","position":24,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/connector-file-send-approval-dialog-shows-files-and-refuses","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/connector-file-send-approval-dialog-shows-files-and-refuses.json"},{"anchor":"exitplanmode-tool-text-for-claude-docs-and-an-optional-plan","heading":"Leaving plan mode can approve a plan kept in a Claude Doc","glance":"A version of the tool for leaving plan mode makes the plan optional, to be left out when the plan is kept in a Claude Doc","teaser":null,"tier":"notice","area":"Plan Mode","section":"What probably matters to you","position":25,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/exitplanmode-tool-text-for-claude-docs-and-an-optional-plan","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/exitplanmode-tool-text-for-claude-docs-and-an-optional-plan.json"},{"anchor":"background-ing-a-shell-command-to-deliver-a-message-keeps-it","heading":"Messages to a busy agent can move its running commands to the background","glance":"To deliver a message, Claude Code can now move running tool calls to the background without stopping them, keeping their original time limit","teaser":null,"tier":"notice","area":"Subagents","section":"What probably matters to you","position":26,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/background-ing-a-shell-command-to-deliver-a-message-keeps-it","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/background-ing-a-shell-command-to-deliver-a-message-keeps-it.json"},{"anchor":"wrap-up-behaviour-gated-by-claude-code-enable-wrap-up-defau","heading":"New wrap-up behaviour, on by default for remote sessions with prompt suggestions","glance":"A new wrap-up feature is controlled by CLAUDE_CODE_ENABLE_WRAP_UP and defaults on for remote sessions with prompt suggestions on","teaser":null,"tier":"notice","area":"Wrap Up","section":"What probably matters to you","position":28,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/wrap-up-behaviour-gated-by-claude-code-enable-wrap-up-defau","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/wrap-up-behaviour-gated-by-claude-code-enable-wrap-up-defau.json"},{"anchor":"exitplanmode-can-approve-a-claude-doc-as-the-plan","heading":"Plan mode can use a Claude Doc as the plan you approve","glance":"In plan mode, Claude can write its plan as a Claude Doc beside the chat, and approving it means Claude carries out the Doc as written","teaser":null,"tier":"notice","area":"Plan Mode","section":"What probably matters to you","position":29,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/exitplanmode-can-approve-a-claude-doc-as-the-plan","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/exitplanmode-can-approve-a-claude-doc-as-the-plan.json"},{"anchor":"web-search-can-be-routed-through-a-search-service","heading":"Web searches can now run through a separate search service","glance":"When a search service is available, the WebSearch tool sends searches through it and reports how many results domain filters left out","teaser":null,"tier":"notice","area":"Web Search","section":"What probably matters to you","position":30,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/web-search-can-be-routed-through-a-search-service","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/web-search-can-be-routed-through-a-search-service.json"},{"anchor":"new-hostmanagedrunnerchild-context-flag","heading":"New internal setting for sessions started by a host-managed runner","glance":"Claude Code gained an internal setting marking a session as a child of a host-managed runner, off by default","teaser":null,"tier":"soon","area":"Self-Hosted Runners","section":"What probably matters to you","position":31,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-hostmanagedrunnerchild-context-flag","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-hostmanagedrunnerchild-context-flag.json"},{"anchor":"claude-docs-artifact-connector-behind-tengu-inked-lantern","heading":"Groundwork for linking Claude Docs from remote sessions, behind a switch","glance":"Claude Code can recognize a docs connector's tools and build claude.ai\/code\/artifact links in remote sessions, behind a remote switch","teaser":null,"tier":"internal","area":"Claude Docs","section":"What probably matters to you","position":32,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/claude-docs-artifact-connector-behind-tengu-inked-lantern","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/claude-docs-artifact-connector-behind-tengu-inked-lantern.json"},{"anchor":"trust-workspace-help-text-and-no-project-trust-seeding","heading":"Self-hosted runners can start sessions without trusting the workspace","glance":"Self-hosted runners now skip trusting the workspace when a new server-config check passes, and the --trust-workspace help describes a stricter gate","teaser":null,"tier":"use","area":"Self-Hosted Runners","section":"What probably matters to you","position":33,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/trust-workspace-help-text-and-no-project-trust-seeding","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/trust-workspace-help-text-and-no-project-trust-seeding.json"},{"anchor":"bare-allow-rules-like-tool-are-normalized-to-rulecontent","heading":"Allow rules like Tool(*) now count as allowing any input for some tools","glance":"For some tools, an allow rule ending in (*) or () now means any input, behind a remote switch that is on unless turned off","teaser":null,"tier":"use","area":"Permissions","section":"What probably matters to you","position":35,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/bare-allow-rules-like-tool-are-normalized-to-rulecontent","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/bare-allow-rules-like-tool-are-normalized-to-rulecontent.json"},{"anchor":"plugin-mcp-server-specs-can-be-loaded-from-a-bundled-mcp-ser","heading":"Plugins can point their MCP server list at a bundled resource","glance":"A plugin's `.mcp.json` or `mcpServers` entry can now refer to a resource of kind `mcp-servers` instead of a file","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":36,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-mcp-server-specs-can-be-loaded-from-a-bundled-mcp-ser","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/plugin-mcp-server-specs-can-be-loaded-from-a-bundled-mcp-ser.json"},{"anchor":"design-sync-messages-for-design-systems-that-moved-to-claud","heading":"\/design-sync explains when a design system has moved to Claude","glance":"New `\/design-sync` messages say a design system has moved, or is moving, to Claude, that updates can't be sent there yet, and how to open it","teaser":null,"tier":"notice","area":"DesignSync","section":"What probably matters to you","position":39,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/design-sync-messages-for-design-systems-that-moved-to-claud","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/design-sync-messages-for-design-systems-that-moved-to-claud.json"},{"anchor":"new-session-owner-login-message-and-session-owner-event","heading":"Claude Code holds back messages in a session that belongs to another account","glance":"If a session belongs to another account, Claude Code sends nothing and asks you to send a message to choose which account to use","teaser":null,"tier":"notice","area":"Sessions","section":"What probably matters to you","position":40,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-session-owner-login-message-and-session-owner-event","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-session-owner-login-message-and-session-owner-event.json"},{"anchor":"cloud-home-screen-uses-cloudhomeframe","heading":"Cloud home screen can show tabs and a roster in a new frame","glance":"The cloud home screen now appears inside a new frame with tabs and an optional roster when that frame is available, and keeps its old layout otherwise","teaser":null,"tier":"notice","area":"Sessions","section":"What probably matters to you","position":41,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/cloud-home-screen-uses-cloudhomeframe","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/cloud-home-screen-uses-cloudhomeframe.json"},{"anchor":"live-preview-share-dialog-registered","heading":"Groundwork for a live preview sharing dialog","glance":"Claude Code now has a place reserved for a live preview sharing dialog, with nothing yet showing how it opens","teaser":null,"tier":"soon","area":"Live Preview","section":"What probably matters to you","position":42,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/live-preview-share-dialog-registered","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/live-preview-share-dialog-registered.json"},{"anchor":"esc-take-back-rewind-class-is-wired-in-but-its-methods-are-e","heading":"Groundwork for taking back a sent message with Esc, not yet active","glance":"A new Esc take-back feature for rewinding sent messages is wired in, but its rewind steps are still empty, so nothing happens yet","teaser":null,"tier":"soon","area":"Sessions","section":"What probably matters to you","position":43,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/esc-take-back-rewind-class-is-wired-in-but-its-methods-are-e","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/esc-take-back-rewind-class-is-wired-in-but-its-methods-are-e.json"},{"anchor":"remote-worker-plumbing-new-reason-codes-and-options","heading":"New groundwork for remote sessions and promotional credit notices","glance":"This build adds internal pieces for remote sessions and for notices when promotional credit is running low or used up","teaser":null,"tier":"soon","area":"Sessions","section":"What probably matters to you","position":44,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/remote-worker-plumbing-new-reason-codes-and-options","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/remote-worker-plumbing-new-reason-codes-and-options.json"},{"anchor":"standing-allow-rule-composer-and-compose-op-for-permission","heading":"Groundwork for safely offering narrow always-allow permission rules","glance":"New code can build narrow always-allow rules for a command, host or MCP tool, refusing risky cases and saving to local or project settings","teaser":null,"tier":"internal","area":"Permissions","section":"What probably matters to you","position":45,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/standing-allow-rule-composer-and-compose-op-for-permission","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/standing-allow-rule-composer-and-compose-op-for-permission.json"},{"anchor":"session-owner-hold-check-before-creating-the-api-client","heading":"API connection can be refused while another owner holds the session","glance":"Without an API key, Claude Code now refuses to connect to the API with a session_owner error while a session-owner hold is in place","teaser":null,"tier":"notice","area":"Sessions","section":"What probably matters to you","position":46,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-owner-hold-check-before-creating-the-api-client","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-owner-hold-check-before-creating-the-api-client.json"},{"anchor":"claude-api-skill-docs-add-sharedmessage-threadsmd","heading":"Built-in Claude API guide adds a page on message threads","glance":"The Claude API reference that ships inside Claude Code now includes a page on message threads","teaser":null,"tier":"notice","area":"Skills","section":"What probably matters to you","position":47,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/claude-api-skill-docs-add-sharedmessage-threadsmd","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/claude-api-skill-docs-add-sharedmessage-threadsmd.json"},{"anchor":"release-verification-error-distinguishes-macos-app-bundle","heading":"New verification error for the macOS app bundle of Claude Code","glance":"Release checks can now report a failure for the macOS app bundle of Claude Code, not only for updates","teaser":null,"tier":"notice","area":"Installation","section":"What probably matters to you","position":48,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/release-verification-error-distinguishes-macos-app-bundle","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/release-verification-error-distinguishes-macos-app-bundle.json"},{"anchor":"session-owner-support-in-the-repl-host","heading":"Building blocks for tracking who owns a session","glance":"Claude Code now saves a list of session owners with the transcript and can let a session's first turn skip the check against overlapping turns","teaser":null,"tier":"internal","area":"Sessions","section":"What probably matters to you","position":49,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-owner-support-in-the-repl-host","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/session-owner-support-in-the-repl-host.json"},{"anchor":"account-switch-helpers-gated-by-tengu-bubbly-fountain","heading":"Claude Code can keep a list of accounts you use, behind a switch","glance":"Behind a switch that defaults to off, Claude Code can record the email and organization of accounts you use and label the current one","teaser":null,"tier":"internal","area":"Accounts","section":"What probably matters to you","position":50,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/account-switch-helpers-gated-by-tengu-bubbly-fountain","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/account-switch-helpers-gated-by-tengu-bubbly-fountain.json"},{"anchor":"widget-tool-states-and-mcp-app-widget-context-gate-tengu-am","heading":"Cloud workers can keep widget state that arrives with a message","glance":"Behind a server-side switch, Claude Code running headless in the cloud keeps up to 256 tool states, or 1 MiB, sent along with a message","teaser":null,"tier":"internal","area":"MCP Apps","section":"What probably matters to you","position":51,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/widget-tool-states-and-mcp-app-widget-context-gate-tengu-am","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/widget-tool-states-and-mcp-app-widget-context-gate-tengu-am.json"},{"anchor":"cowork-cloud-init-frames-gain-client-thinking-and-flag-resta","heading":"Cowork cloud workers report thinking settings when a session starts","glance":"The opening message in stream-json output gains client_thinking and flag_restate_noop fields for Cowork cloud workers, plus two new refusal reasons","teaser":null,"tier":"internal","area":"Cowork","section":"What probably matters to you","position":52,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/cowork-cloud-init-frames-gain-client-thinking-and-flag-resta","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/cowork-cloud-init-frames-gain-client-thinking-and-flag-resta.json"},{"anchor":"desktop-backdrop-capability-check","heading":"Groundwork for a backdrop in the desktop app","glance":"Claude Code can now check whether a connected desktop app says it draws a backdrop","teaser":null,"tier":"internal","area":"Desktop","section":"What probably matters to you","position":53,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/desktop-backdrop-capability-check","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/desktop-backdrop-capability-check.json"},{"anchor":"hook-runner-supports-non-command-hook-types-and-waits-on-set","heading":"Hook runner can run hook types other than shell commands","glance":"The part of Claude Code that runs hooks can now run hook types other than shell commands, where before it ran only command hooks","teaser":null,"tier":"internal","area":"Hooks","section":"What probably matters to you","position":54,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/hook-runner-supports-non-command-hook-types-and-waits-on-set","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/hook-runner-supports-non-command-hook-types-and-waits-on-set.json"},{"anchor":"new-widget-context-hint-attachment-type","heading":"New kind of background note for widget context","glance":"Claude Code now has a widget context hint, a new kind of background note it can attach to a conversation","teaser":null,"tier":"internal","area":"MCP Apps","section":"What probably matters to you","position":56,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-widget-context-hint-attachment-type","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-widget-context-hint-attachment-type.json"}],"facets":{"sections":[{"value":"What probably matters to you","entries":51},{"value":"Improvements","entries":201},{"value":"Bug Fixes","entries":42},{"value":"In Development","entries":5},{"value":"Internal Changes","entries":137},{"value":"Removed","entries":4}],"tiers":[{"value":"notice","entries":263},{"value":"internal","entries":144},{"value":"use","entries":21},{"value":"soon","entries":12}],"areas":[{"value":"Sessions","entries":46},{"value":"MCP","entries":30},{"value":"Permissions","entries":30},{"value":"Elsewhere","entries":28},{"value":"Internals","entries":24},{"value":"Telemetry","entries":18},{"value":"Hooks","entries":16},{"value":"Plugins","entries":16},{"value":"SDK","entries":14},{"value":"Network","entries":13},{"value":"Subagents","entries":11},{"value":"API","entries":9},{"value":"Auth","entries":9},{"value":"Terminal UI","entries":9},{"value":"Usage & Limits","entries":9},{"value":"Connectors","entries":8},{"value":"Plan Mode","entries":8},{"value":"Sandbox","entries":8},{"value":"Skills","entries":8},{"value":"Auto Mode","entries":7},{"value":"Background Tasks","entries":7},{"value":"Artifacts","entries":6},{"value":"Bash","entries":6},{"value":"Headless Mode","entries":6},{"value":"Search","entries":6},{"value":"Tools","entries":6},{"value":"Windows","entries":6},{"value":"Environment Variables","entries":5},{"value":"Installation","entries":5},{"value":"Process Management","entries":5},{"value":"Self-Hosted Runners","entries":5},{"value":"MCP Apps","entries":4},{"value":"Remote Control","entries":4},{"value":"System Prompt","entries":4},{"value":"Compaction","entries":3},{"value":"DesignSync","entries":3},{"value":"Effort","entries":3},{"value":"File Tools","entries":3},{"value":"Gateway","entries":3},{"value":"GitHub","entries":3},{"value":"Managed Settings","entries":3},{"value":"Prompt Cache","entries":3},{"value":"Teammates","entries":3},{"value":"Cloud Workflows","entries":2},{"value":"Team Onboarding","entries":2},{"value":"Web Fetch","entries":2},{"value":"Wrap Up","entries":2},{"value":"Accounts","entries":1},{"value":"Claude Docs","entries":1},{"value":"Cowork","entries":1},{"value":"Desktop","entries":1},{"value":"Live Preview","entries":1},{"value":"Scratchpad","entries":1},{"value":"Slack","entries":1},{"value":"Slash Commands","entries":1},{"value":"Web Search","entries":1}]}}