{"version":"2.1.296","summary":"MCP tools that take file inputs can now accept local file paths. Claude Code uploads the file and passes the tool a reference instead. The Read tool's new `allow_large` option lets Claude read an oversized text file when there is room left in the conversation. Hook commands now take an `on_failure` setting of continue or block. You can set `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL` to choose the model subagents use during a workflow run. Administrators can switch off messaging beyond a user's own agents with the managed setting `messagingBeyondOwnAgentsDisabled`.\n\nThis build holds 11 features that are not switched on yet. Claude can ask a subagent for lower or higher effort than its own, but the option is off by default. A session moved to the cloud from auto mode is being prepared to stay in auto mode. Remote sessions gain a check that probes a stream after about 8 seconds of quiet. That check is controlled remotely and is not on yet. A new restriction could limit an agent to messaging only its own agents.\n\nMessages you typed ahead are no longer lost when a turn is cancelled. They go back into the input box or to the front of the queue. A `PreToolUse` hook that blocks a tool now shows its full reason in the error. Workspace diffs now follow renamed files and show deleted files as removed. On Windows, MCP servers now get a chance to shut down cleanly before being force-closed. Resumed sessions no longer restore saved MCP tasks from the 2025-11-25 tasks protocol.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":50,"total":304,"next_offset":50,"next_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/entries.json?offset=50","entries":[{"anchor":"claude-code-adopt-underivable-parked-permission-is-registere","heading":"<code>CLAUDE_CODE_ADOPT_UNDERIVABLE_PARKED_PERMISSION<\/code> is read as an on\/off setting","glance":"`CLAUDE_CODE_ADOPT_UNDERIVABLE_PARKED_PERMISSION` is an on\/off variable for handling permission requests left waiting in resumed sessions","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.296\/e\/claude-code-adopt-underivable-parked-permission-is-registere","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/claude-code-adopt-underivable-parked-permission-is-registere.json"},{"anchor":"harbor-kite-messaging-is-now-disabled-by-a-managed-policy-sw","heading":"Administrators can now switch off messaging beyond a user&#039;s own agents","glance":"A managed setting, `messagingBeyondOwnAgentsDisabled`, now turns this feature off and overrides `CLAUDE_CODE_HARBOR_KITE`","teaser":null,"tier":"use","area":"Agent Messaging","section":"What probably matters to you","position":1,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/harbor-kite-messaging-is-now-disabled-by-a-managed-policy-sw","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/harbor-kite-messaging-is-now-disabled-by-a-managed-policy-sw.json"},{"anchor":"hook-commands-get-an-on-failure-field-continue-or-block","heading":"Hooks gain an on_failure field, and cloud launches report built-in tool count","glance":"Hook commands accept an on_failure value of continue or block that cloud hook comparison now includes, and cloud launches report built-in tool count","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/hook-commands-get-an-on-failure-field-continue-or-block","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/hook-commands-get-an-on-failure-field-continue-or-block.json"},{"anchor":"new-env-gated-check-for-declared-web-search-citations","heading":"New <code>CLAUDE_CODE_WEBSEARCH_CITATIONS_DECLARED<\/code> setting for web search citations","glance":"A new environment variable, CLAUDE_CODE_WEBSEARCH_CITATIONS_DECLARED, joins the existing web search citations switch","teaser":null,"tier":"use","area":"Web Search","section":"What probably matters to you","position":3,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-env-gated-check-for-declared-web-search-citations","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-env-gated-check-for-declared-web-search-citations.json"},{"anchor":"new-env-var-claude-code-workflow-subagent-model-overrides-th","heading":"New <code>CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL<\/code> picks the model for workflow subagents","glance":"Setting `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL` chooses which model subagents use during a workflow run, separately from other subagents","teaser":null,"tier":"use","area":"Workflows","section":"What probably matters to you","position":4,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-env-var-claude-code-workflow-subagent-model-overrides-th","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-env-var-claude-code-workflow-subagent-model-overrides-th.json"},{"anchor":"three-new-claude-code-env-vars-registered-and-read-agent","heading":"Three new environment variables for progress summaries, sleep-compact timing and the resume hook wait","glance":"`CLAUDE_CODE_AGENT_PROGRESS_SUMMARIES`, `CLAUDE_CODE_SLEEP_COMPACT_AFTER_MS` and `CLAUDE_CODE_RESUME_SESSIONSTART_HOOKS_WAIT_MS` are new and are read by Claude Code","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.296\/e\/three-new-claude-code-env-vars-registered-and-read-agent","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/three-new-claude-code-env-vars-registered-and-read-agent.json"},{"anchor":"set-model-gains-only-if-model-is-current-guard","heading":"set_model gains an only_if_model_is_current guard for swapping the system prompt","glance":"SDK set_model requests can swap the system prompt only if a named model is running, failing with model_not_current otherwise; Remote Control refuses it","teaser":null,"tier":"use","area":"Agents","section":"What probably matters to you","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/set-model-gains-only-if-model-is-current-guard","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/set-model-gains-only-if-model-is-current-guard.json"},{"anchor":"mcp-tools-can-upload-local-files-via-file-input-arguments-t","heading":"MCP tools can receive files uploaded from your computer","glance":"MCP tools that declare file inputs can now take local file paths, which Claude Code uploads and replaces with references","teaser":null,"tier":"notice","area":"MCP","section":"What probably matters to you","position":8,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/mcp-tools-can-upload-local-files-via-file-input-arguments-t","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/mcp-tools-can-upload-local-files-via-file-input-arguments-t.json"},{"anchor":"read-tool-gains-allow-large-option-sized-to-remaining-contex","heading":"Read can open a file over the usual size limit if it fits in context","glance":"The Read tool accepts `allow_large`, letting Claude read an oversized text file in one go when there is still room in the conversation","teaser":null,"tier":"notice","area":"Read Tool","section":"What probably matters to you","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/read-tool-gains-allow-large-option-sized-to-remaining-contex","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/read-tool-gains-allow-large-option-sized-to-remaining-contex.json"},{"anchor":"relative-subagent-effort-lowerhigher-built-but-gated","heading":"Subagents can be given a relative effort of lower or higher","glance":"The Agent tool can take effort \"lower\" or \"higher\" to step a subagent's reasoning effort one level, behind a helper check and tengu_snappy_pelican","teaser":null,"tier":"notice","area":"Subagents","section":"What probably matters to you","position":10,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/relative-subagent-effort-lowerhigher-built-but-gated","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/relative-subagent-effort-lowerhigher-built-but-gated.json"},{"anchor":"gateway-policy-files-new-code-block-and-clisettings-conf","heading":"Gateway policy files gain a code block for Claude Desktop&#039;s Code tab","glance":"Gateway policies can use a code block for Claude Desktop's Code tab, cannot mix it with cli or settings, and get clearer warnings about serve_to_desktop","teaser":null,"tier":"use","area":"Gateway","section":"What probably matters to you","position":11,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/gateway-policy-files-new-code-block-and-clisettings-conf","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/gateway-policy-files-new-code-block-and-clisettings-conf.json"},{"anchor":"managed-settings-env-now-injects-a-computed-anthropic-base-u","heading":"Managed settings with <code>allowedProviders<\/code> can now set <code>ANTHROPIC_BASE_URL<\/code> automatically","glance":"When managed settings use `allowedProviders`, Claude Code may set `ANTHROPIC_BASE_URL` itself unless the managed settings already set it","teaser":null,"tier":"use","area":"Managed Settings","section":"What probably matters to you","position":12,"scope":"org","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-settings-env-now-injects-a-computed-anthropic-base-u","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-settings-env-now-injects-a-computed-anthropic-base-u.json"},{"anchor":"plugin-agent-frontmatter-gains-autocompactwindow-passed-thr","heading":"Agents can now set their own autoCompactWindow","glance":"Agent and plugin agent definitions accept autoCompactWindow, so a subagent can compact its own conversation at its own token threshold","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":13,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-agent-frontmatter-gains-autocompactwindow-passed-thr","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-agent-frontmatter-gains-autocompactwindow-passed-thr.json"},{"anchor":"plugin-schema-gains-min-claude-code-version","heading":"Models can now require a minimum Claude Code version","glance":"Model catalog entries can set min_claude_code_version, and older clients see the model as unavailable with a message naming the version to update to","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":14,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-schema-gains-min-claude-code-version","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-schema-gains-min-claude-code-version.json"},{"anchor":"posttooluse-hooks-can-rewrite-mcp-tool-output-via-updatedmcp","heading":"PostToolUse hooks can rewrite MCP tool results with updatedMCPToolOutput","glance":"A PostToolUse hook can now replace an MCP tool's result using updatedMCPToolOutput when it does not set updatedToolOutput","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":15,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/posttooluse-hooks-can-rewrite-mcp-tool-output-via-updatedmcp","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/posttooluse-hooks-can-rewrite-mcp-tool-output-via-updatedmcp.json"},{"anchor":"remote-control-sdk-listturnprompts-and-inheritedansweroff","heading":"A resumed session can honour an answer given to a permission prompt before the restart","glance":"When a resumed session adopts a parked permission prompt, it can now use a saved matching answer instead of asking again, with `inheritedAnswerOff` to disable it","teaser":null,"tier":"use","area":"Remote Control","section":"What probably matters to you","position":16,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/remote-control-sdk-listturnprompts-and-inheritedansweroff","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/remote-control-sdk-listturnprompts-and-inheritedansweroff.json"},{"anchor":"messages-restricted-to-same-session-agents-mode","heading":"Agent messages can be limited to the same session","glance":"A new restriction lets messages go only as plain text to agents in the same session or to the main agent","teaser":null,"tier":"notice","area":"Agent Messaging","section":"What probably matters to you","position":17,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/messages-restricted-to-same-session-agents-mode","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/messages-restricted-to-same-session-agents-mode.json"},{"anchor":"monitormcptask-kill-stops-streamed-monitors","heading":"Background monitors from MCP servers can be stopped as tasks","glance":"A new task type for MCP monitors can be stopped, which also stops the monitor streaming updates for it","teaser":null,"tier":"notice","area":"MCP","section":"What probably matters to you","position":18,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/monitormcptask-kill-stops-streamed-monitors","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/monitormcptask-kill-stops-streamed-monitors.json"},{"anchor":"managed-agents-quickstarts-gain-four-templates","heading":"Four new managed-agent quickstart templates","glance":"The bundled managed-agents quickstarts gain bug-hunter, explainer-video-maker, performance-tuner and watchlist-scanner, for 13 in total","teaser":null,"tier":"notice","area":"Managed Agents","section":"What probably matters to you","position":19,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-agents-quickstarts-gain-four-templates","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-agents-quickstarts-gain-four-templates.json"},{"anchor":"background-tasks-foreground-agent-moves-plus-preview-tunne","heading":"Groundwork for moving running agents into the background","glance":"Background-task rules can now allow a running agent to be moved into the background, still respecting the block on background agents","teaser":null,"tier":"soon","area":"Background Agents","section":"What probably matters to you","position":21,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/background-tasks-foreground-agent-moves-plus-preview-tunne","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/background-tasks-foreground-agent-moves-plus-preview-tunne.json"},{"anchor":"sandbox-gains-disablemessagingbeyondownagents","heading":"New restriction can limit agent messaging to an agent&#039;s own agents","glance":"Claude Code gains a restriction that appears to stop an agent from messaging anything beyond its own agents","teaser":null,"tier":"soon","area":"Agent Messaging","section":"What probably matters to you","position":22,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/sandbox-gains-disablemessagingbeyondownagents","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/sandbox-gains-disablemessagingbeyondownagents.json"},{"anchor":"skills-accept-formatforegroundforkresult","heading":"Forked skill and slash command results can pass through a formatter; async agent failures carry a cause","glance":"Skills can supply a formatForegroundForkResult hook to reshape foreground forked results, and failed background agents now record a cause","teaser":null,"tier":"internal","area":"Skills","section":"What probably matters to you","position":23,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/skills-accept-formatforegroundforkresult","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/skills-accept-formatforegroundforkresult.json"},{"anchor":"cloud-tools-restriction-handling-reworked","heading":"Cloud sessions now refuse --tools restrictions they cannot apply instead of dropping them","glance":"Starting a cloud session with --tools now checks the list and gives a clear error for lists, environments or existing sessions it cannot honour","teaser":null,"tier":"use","area":"Cloud Sessions","section":"What probably matters to you","position":24,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/cloud-tools-restriction-handling-reworked","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/cloud-tools-restriction-handling-reworked.json"},{"anchor":"skill-overrides-now-work-for-mcp-provided-skills","heading":"<code>skillOverrides<\/code> now applies to skills that come from MCP servers","glance":"Settings in `skillOverrides` now apply to skills supplied by MCP servers, matched by the skill's name or its alias names","teaser":null,"tier":"use","area":"Skills","section":"What probably matters to you","position":25,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/skill-overrides-now-work-for-mcp-provided-skills","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/skill-overrides-now-work-for-mcp-provided-skills.json"},{"anchor":"managed-policies-accept-a-code-key-as-alternative-to-cli","heading":"Managed policy entries can carry a <code>code<\/code> section as well as <code>cli<\/code>","glance":"Entries in `managed.policies` now accept a `code` key in addition to `cli`, and validation messages point to whichever one the entry uses","teaser":null,"tier":"use","area":"Managed Settings","section":"What probably matters to you","position":26,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-policies-accept-a-code-key-as-alternative-to-cli","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/managed-policies-accept-a-code-key-as-alternative-to-cli.json"},{"anchor":"plugin-hook-context-gains-isdispatching-and-renderfocus-roo","heading":"Plugin hooks get isDispatching, and ui.render and ui.focus handling moves to a shared check","glance":"The context given to plugin hooks gains `isDispatching`, and the special handling of `ui.render` and `ui.focus` events now goes through a shared helper","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":27,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hook-context-gains-isdispatching-and-renderfocus-roo","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hook-context-gains-isdispatching-and-renderfocus-roo.json"},{"anchor":"plugin-install-gets-replace-for-same-repo-duplicates-mcp","heading":"Plugin install hint uses --replace and --scope; disabled MCP servers are no longer connected","glance":"The plugin install hint now uses `--replace` and `--scope`, and disabled MCP servers stay disconnected when Claude Code reconciles its server list","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":28,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-install-gets-replace-for-same-repo-duplicates-mcp","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-install-gets-replace-for-same-repo-duplicates-mcp.json"},{"anchor":"gateway-login-method-now-counts-as-gateway-required","heading":"Setting forceLoginMethod to gateway now leads to the gateway login","glance":"With forceLoginMethod set to \"gateway\" and no forceLoginGatewayUrl, Claude Code now treats gateway login as required","teaser":null,"tier":"use","area":"Gateway","section":"What probably matters to you","position":29,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/gateway-login-method-now-counts-as-gateway-required","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/gateway-login-method-now-counts-as-gateway-required.json"},{"anchor":"tether-live-reminder-now-also-enabled-by-a-second-condition","heading":"Tether reminder can now be switched on by an additional condition","glance":"The tether live check and its kept-reminder mode now also turn on when a further condition is met, besides the environment variable or server setting","teaser":null,"tier":"use","area":"Tether","section":"What probably matters to you","position":30,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tether-live-reminder-now-also-enabled-by-a-second-condition","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tether-live-reminder-now-also-enabled-by-a-second-condition.json"},{"anchor":"bundled-doc-assets-swapped","heading":"Built-in managed agents reference now covers outcomes instead of scheduled deployments","glance":"A reference document bundled with Claude Code now covers managed agent outcomes in place of scheduled deployments","teaser":null,"tier":"notice","area":"Managed Agents","section":"What probably matters to you","position":31,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/bundled-doc-assets-swapped","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/bundled-doc-assets-swapped.json"},{"anchor":"remote-tool-call-restart-notice-for-unrecorded-sends","heading":"Claude is warned when a command to another computer may not have run","glance":"After a session restarts, Claude is now told when a command meant for another computer may not have been sent","teaser":null,"tier":"notice","area":"Remote Execution","section":"What probably matters to you","position":32,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/remote-tool-call-restart-notice-for-unrecorded-sends","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/remote-tool-call-restart-notice-for-unrecorded-sends.json"},{"anchor":"tengu-moonlit-toucan-gate-on-a-new-counter-default-off","heading":"Counter for turns since a person last wrote, off by default","glance":"Claude Code now counts turns since a person last wrote and can act once a limit is reached, but this is off unless switched on remotely","teaser":null,"tier":"soon","area":"Sessions","section":"What probably matters to you","position":33,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tengu-moonlit-toucan-gate-on-a-new-counter-default-off","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tengu-moonlit-toucan-gate-on-a-new-counter-default-off.json"},{"anchor":"move-to-cloud-can-pass-the-terminals-auto-permission-mode","heading":"Moving a session to the cloud can keep auto mode","glance":"When you move a session to the cloud from a terminal in auto mode, Claude Code now asks the cloud session to stay in auto mode","teaser":null,"tier":"soon","area":"Cloud Sessions","section":"What probably matters to you","position":34,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/move-to-cloud-can-pass-the-terminals-auto-permission-mode","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/move-to-cloud-can-pass-the-terminals-auto-permission-mode.json"},{"anchor":"policy-getters-for-agent-messaging-and-foreground-to-backgro","heading":"New controls over moving agents to the background and over agent messaging","glance":"A `backgroundLaunchRule` can now veto moving a foreground agent to the background, and new policy getters cover agent moves and cross-agent messaging","teaser":null,"tier":"internal","area":"Agent Messaging","section":"What probably matters to you","position":35,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/policy-getters-for-agent-messaging-and-foreground-to-backgro","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/policy-getters-for-agent-messaging-and-foreground-to-backgro.json"},{"anchor":"claude-auto-background-tasks-is-now-read-from-a-config-objec","heading":"<code>CLAUDE_AUTO_BACKGROUND_TASKS<\/code> is now read from Claude Code&#039;s own configuration","glance":"Claude Code now reads `CLAUDE_AUTO_BACKGROUND_TASKS` from its own configuration values instead of straight from the shell environment","teaser":null,"tier":"use","area":"Elsewhere","section":"What probably matters to you","position":36,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/claude-auto-background-tasks-is-now-read-from-a-config-objec","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/claude-auto-background-tasks-is-now-read-from-a-config-objec.json"},{"anchor":"session-tunnel-mcp-serve-quietlivenesspings-and-stream-lost","heading":"Tunnels detect dead connections with numbered pings and reconnect","glance":"Session and preview tunnels number their liveness pings, reconnect after a run of unanswered ones, and report dropped streams and oversized frames","teaser":null,"tier":"use","area":"Elsewhere","section":"What probably matters to you","position":37,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/session-tunnel-mcp-serve-quietlivenesspings-and-stream-lost","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/session-tunnel-mcp-serve-quietlivenesspings-and-stream-lost.json"},{"anchor":"new-x-claude-code-wiggly-dove-request-header-off-by-default","heading":"Claude Code can send a new header describing the client and its setup","glance":"A new `x-claude-code-wiggly-dove` request header can carry client version, permission mode, sandbox and git details, and is off by default","teaser":null,"tier":"internal","area":"API Requests","section":"What probably matters to you","position":38,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-x-claude-code-wiggly-dove-request-header-off-by-default","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-x-claude-code-wiggly-dove-request-header-off-by-default.json"},{"anchor":"new-tool-name-entries-show-plan-tip-and-read-research-report","heading":"Two names added to an internal list of tool names","glance":"`show_plan_tip` and `read_research_report` were added to a list of tool names alongside `current_time` and others","teaser":null,"tier":"internal","area":"Tool Calls","section":"What probably matters to you","position":39,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-tool-name-entries-show-plan-tip-and-read-research-report","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/new-tool-name-entries-show-plan-tip-and-read-research-report.json"},{"anchor":"sdk-permission-answers-refused-if-they-lose-denyask-tighten","heading":"Permission answers from SDK hosts are refused if they drop deny or ask rules","glance":"Claude Code now refuses a permission answer from a host program if it would lose deny or ask rules that answer added","teaser":null,"tier":"notice","area":"Agents","section":"Improvements","position":1,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/sdk-permission-answers-refused-if-they-lose-denyask-tighten","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/sdk-permission-answers-refused-if-they-lose-denyask-tighten.json"},{"anchor":"auto-mode-stale-server-classifier-message-reworded-and-enric","heading":"Clearer log message when an auto mode approval is out of date","glance":"The log line for an out-of-date auto mode approval now says the request's information was missing or no longer holds, and gives a cause","teaser":null,"tier":"notice","area":"Elsewhere","section":"Improvements","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/auto-mode-stale-server-classifier-message-reworded-and-enric","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/auto-mode-stale-server-classifier-message-reworded-and-enric.json"},{"anchor":"session-info-schema-gains-claude-code-version","heading":"Sessions now report which Claude Code version is running them","glance":"Session info and initialize replies, including Remote Control's, now carry the Claude Code version that runs the session","teaser":null,"tier":"notice","area":"Sessions","section":"Improvements","position":3,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/session-info-schema-gains-claude-code-version","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/session-info-schema-gains-claude-code-version.json"},{"anchor":"oversized-file-read-error-can-carry-an-extra-suffix","heading":"File-too-large errors can now carry extra guidance","glance":"Errors for files or line ranges too large to read can now have extra text added, though their wording is unchanged for now","teaser":null,"tier":"notice","area":"Read Tool","section":"Improvements","position":4,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/oversized-file-read-error-can-carry-an-extra-suffix","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/oversized-file-read-error-can-carry-an-extra-suffix.json"},{"anchor":"plugin-hooksjson-unknown-key-warning-no-longer-truncates-th","heading":"Warning about unknown keys in a plugin&#039;s hooks.json lists them differently","glance":"The warning about unknown keys in a plugin's `hooks.json` no longer cuts the list off with \"and N more\"","teaser":null,"tier":"notice","area":"Plugins","section":"Improvements","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hooksjson-unknown-key-warning-no-longer-truncates-th","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hooksjson-unknown-key-warning-no-longer-truncates-th.json"},{"anchor":"deny-rules-can-match-additional-command-names-denymatchname","heading":"Deny rules can match extra names through denyMatchNames","glance":"A new denyMatchNames list adds extra names for deny-rule matching on prompt-type commands and feeds reserved labels for MCP-loaded tools","teaser":null,"tier":"notice","area":"Permissions","section":"Improvements","position":6,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/deny-rules-can-match-additional-command-names-denymatchname","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/deny-rules-can-match-additional-command-names-denymatchname.json"},{"anchor":"tool-denial-monitor-marker-and-a-new-denial-kind","heading":"Changes to how blocked tool actions are marked and shown","glance":"Tool results can now be marked as blocked by a denial check, and a new \"model not current\" denial reason was added","teaser":null,"tier":"notice","area":"Tool Calls","section":"Improvements","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tool-denial-monitor-marker-and-a-new-denial-kind","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/tool-denial-monitor-marker-and-a-new-denial-kind.json"},{"anchor":"markdown-rendering-gains-a-windowed-mode","heading":"Formatted text display can now show a window of long content","glance":"Claude Code's formatted text display gains a windowed mode, likely for showing part of long content","teaser":null,"tier":"notice","area":"Terminal UI","section":"Improvements","position":8,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/markdown-rendering-gains-a-windowed-mode","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/markdown-rendering-gains-a-windowed-mode.json"},{"anchor":"rewind-refusal-now-distinguishes-a-running-turn-turn-runnin","heading":"Rewind requests are refused while a usage-limited turn is still running","glance":"With `refuse_if_usage_limited`, a `rewind_conversation` request now gets a separate `turn_running` refusal if a turn is still running","teaser":null,"tier":"notice","area":"Sessions","section":"Improvements","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/rewind-refusal-now-distinguishes-a-running-turn-turn-runnin","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/rewind-refusal-now-distinguishes-a-running-turn-turn-runnin.json"},{"anchor":"output-limit-recovery-thinking-only-truncation-handled-wit","heading":"Clearer recovery when output runs out while Claude is still thinking","glance":"When a reply hits the output limit during thinking, Claude Code nudges differently and, if recovery fails, suggests lowering the effort level","teaser":null,"tier":"notice","area":"Extended Thinking","section":"Improvements","position":10,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/output-limit-recovery-thinking-only-truncation-handled-wit","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/output-limit-recovery-thinking-only-truncation-handled-wit.json"},{"anchor":"plugin-hooks-left-out-by-name-are-now-tracked-and-reported","heading":"Duplicate-name plugins: skipped hooks are recorded and explained","glance":"When two plugins share a name only the first runs hooks; the other's skipped hooks are now recorded and shown alongside plugin warnings","teaser":null,"tier":"notice","area":"Plugins","section":"Improvements","position":11,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hooks-left-out-by-name-are-now-tracked-and-reported","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/plugin-hooks-left-out-by-name-are-now-tracked-and-reported.json"},{"anchor":"mcp-message-tool-respects-closed-project-mcp-servers","heading":"Clear error when messaging a project MCP server that has been closed","glance":"Sending a message to a project's MCP servers after they are closed now fails with \"The repo's MCP servers have been closed\"","teaser":null,"tier":"notice","area":"MCP","section":"Improvements","position":12,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/mcp-message-tool-respects-closed-project-mcp-servers","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/mcp-message-tool-respects-closed-project-mcp-servers.json"}],"facets":{"sections":[{"value":"What probably matters to you","entries":38},{"value":"Improvements","entries":133},{"value":"Bug Fixes","entries":33},{"value":"In Development","entries":4},{"value":"Internal Changes","entries":90},{"value":"Removed","entries":6}],"tiers":[{"value":"notice","entries":177},{"value":"internal","entries":94},{"value":"use","entries":22},{"value":"soon","entries":11}],"areas":[{"value":"Elsewhere","entries":31},{"value":"Sessions","entries":27},{"value":"Hooks","entries":20},{"value":"MCP","entries":20},{"value":"Cloud Sessions","entries":17},{"value":"Plugins","entries":16},{"value":"Telemetry","entries":16},{"value":"Permissions","entries":11},{"value":"Skills","entries":8},{"value":"Agent Messaging","entries":7},{"value":"Gateway","entries":7},{"value":"Subagents","entries":7},{"value":"Agents","entries":6},{"value":"Read Tool","entries":6},{"value":"Task List","entries":6},{"value":"Terminal UI","entries":6},{"value":"Windows","entries":6},{"value":"Compaction","entries":5},{"value":"Self-Hosted Runner","entries":5},{"value":"Workflows","entries":5},{"value":"Bash","entries":4},{"value":"File Editing","entries":4},{"value":"Git","entries":4},{"value":"Tool Calls","entries":4},{"value":"API Requests","entries":3},{"value":"Artifacts","entries":3},{"value":"Background Agents","entries":3},{"value":"Internals","entries":3},{"value":"Managed Agents","entries":3},{"value":"Memory","entries":3},{"value":"Message Queue","entries":3},{"value":"Remote Tools","entries":3},{"value":"Resume","entries":3},{"value":"Sandbox","entries":3},{"value":"Settings","entries":3},{"value":"Managed Settings","entries":2},{"value":"Models","entries":2},{"value":"Policy Limits","entries":2},{"value":"Usage & Limits","entries":2},{"value":"Web Search","entries":2},{"value":"CLAUDE.md","entries":1},{"value":"Chrome & Browser","entries":1},{"value":"Environment Variables","entries":1},{"value":"Extended Thinking","entries":1},{"value":"File Upload","entries":1},{"value":"Input Box","entries":1},{"value":"Notebooks","entries":1},{"value":"Output Limits","entries":1},{"value":"Remote Control","entries":1},{"value":"Remote Execution","entries":1},{"value":"Response Length","entries":1},{"value":"Tether","entries":1},{"value":"VS Code","entries":1}]}}