{"version":"2.1.299","summary":"You can now set `subagentInheritVerifiedTurns` to true so subagents start with your earlier verified messages. MCP servers can now provide skills to Claude Code. Each skill's size and fingerprint is checked against the server's list before it loads. With `CLAUDE_CODE_ENABLE_SHARE_BUNDLE` set, `\/share` sends your whole session transcript along with your feedback. In remote sessions, `CLAUDE_CODE_REMOTE_MCP_CONFIG` points the runner to a file of MCP servers sent by the host. Routing WebFetch through a proxy now depends on `CLAUDE_CODE_WEBFETCH_USE_CCR_PROXY` instead of being worked out from session state.\n\n19 entries are in the build but not switched on yet. Claude Code can fetch context for a claude.ai Project into a session, but only once it is turned on remotely. Apps built on the SDK will be able to word their own permission prompts from a PreToolUse hook. A stricter plan mode check can ask before any action that is not read-only. Project tools can read an uploaded PDF or Word file as the original document. Agents may later start in the background by default.\n\nMCP allow rules no longer approve tools from a different MCP server. On Windows, sandboxed git now gets your git name and email for commits. Environment variables from settings or `\/env` now reach sandboxed Windows commands too. The resume command printed on exit now includes `--worktree` for worktree sessions. If CLAUDE.md fails to load, Claude Code tries again later in the session. The MCP tasks feature is now off for everyone and can no longer be turned on remotely.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":50,"total":439,"next_offset":50,"next_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/entries.json?offset=50","entries":[{"anchor":"share-can-send-the-whole-transcript-behind-a-new-env-var","heading":"Feedback bundles can include the conversation transcript","glance":"`\/feedback` bundles can now carry a `transcript.jsonl` file, and `\/share` can send the whole transcript when `CLAUDE_CODE_ENABLE_SHARE_BUNDLE` is set","teaser":null,"tier":"use","area":"Feedback","section":"What probably matters to you","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/share-can-send-the-whole-transcript-behind-a-new-env-var","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/share-can-send-the-whole-transcript-behind-a-new-env-var.json"},{"anchor":"agent-view-model-picker-and-new-session-settings-for-model","heading":"Agent view gets new-session settings for model, effort and fast mode","glance":"In the agent view, \/model opens a picker and model, effort and fast mode can be set for new sessions from that window without being saved","teaser":null,"tier":"use","area":"Agents View","section":"What probably matters to you","position":1,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-model-picker-and-new-session-settings-for-model","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-model-picker-and-new-session-settings-for-model.json"},{"anchor":"new-env-var-claude-code-jit-policy-after-startup-controls-bu","heading":"New CLAUDE_CODE_ environment variables for startup and remote session tuning","glance":"Five new CLAUDE_CODE_* environment variables tune startup, changed-file checks, MCP loading and transcripts, and are forwarded to remote sessions","teaser":null,"tier":"use","area":"Performance","section":"What probably matters to you","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-env-var-claude-code-jit-policy-after-startup-controls-bu","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-env-var-claude-code-jit-policy-after-startup-controls-bu.json"},{"anchor":"new-env-var-claude-code-disable-file-mentions","heading":"New environment variable <code>CLAUDE_CODE_DISABLE_FILE_MENTIONS<\/code>","glance":"Claude Code now recognises a `CLAUDE_CODE_DISABLE_FILE_MENTIONS` environment variable, listed with other variables that turn features off","teaser":null,"tier":"use","area":"File Mentions","section":"What probably matters to you","position":3,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-env-var-claude-code-disable-file-mentions","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-env-var-claude-code-disable-file-mentions.json"},{"anchor":"hidden-fast-mode-cli-override-helper","heading":"New hidden <code>--fast-mode<\/code> option turns fast mode on or off at launch","glance":"A new hidden `--fast-mode on` or `--fast-mode off` command-line option sets fast mode for a launch, unless `fastMode` is already set elsewhere","teaser":null,"tier":"use","area":"Models","section":"What probably matters to you","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hidden-fast-mode-cli-override-helper","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hidden-fast-mode-cli-override-helper.json"},{"anchor":"claude-code-lazy-env-getters-lazy-env-parsing","heading":"Optional lazy reading of environment variables with <code>CLAUDE_CODE_LAZY_ENV_GETTERS<\/code>","glance":"Setting `CLAUDE_CODE_LAZY_ENV_GETTERS` makes Claude Code read each environment variable only when it is first needed","teaser":null,"tier":"use","area":"Performance","section":"What probably matters to you","position":7,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/claude-code-lazy-env-getters-lazy-env-parsing","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/claude-code-lazy-env-getters-lazy-env-parsing.json"},{"anchor":"self-hosted-runner-sigterm-drain-with-shutdown-drain-sec","heading":"Self-hosted runner gains a shutdown drain and tool-server sessions","glance":"The self-hosted runner can wait up to --shutdown-drain-sec seconds for running work on SIGTERM, and supports a tool-server session kind","teaser":null,"tier":"use","area":"Self-Hosted Runner","section":"What probably matters to you","position":8,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/self-hosted-runner-sigterm-drain-with-shutdown-drain-sec","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/self-hosted-runner-sigterm-drain-with-shutdown-drain-sec.json"},{"anchor":"subagents-can-inherit-earlier-verified-user-turns","heading":"Subagents can be given the user&#039;s earlier verified messages","glance":"With `subagentInheritVerifiedTurns` set to true, subagents start with the main session's earlier verified user messages, trimmed if long","teaser":null,"tier":"use","area":"Subagents","section":"What probably matters to you","position":9,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/subagents-can-inherit-earlier-verified-user-turns","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/subagents-can-inherit-earlier-verified-user-turns.json"},{"anchor":"mcp-servers-can-now-expose-skills-verified-by-digest-and-lo","heading":"MCP servers can provide skills, checked before they are loaded","glance":"Claude Code can load skills listed by MCP servers, checking each one's size and fingerprint against the server's list first","teaser":null,"tier":"notice","area":"MCP","section":"What probably matters to you","position":10,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-servers-can-now-expose-skills-verified-by-digest-and-lo","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-servers-can-now-expose-skills-verified-by-digest-and-lo.json"},{"anchor":"project-context-block-gate-tengu-quill-marten","heading":"Groundwork for automatic project context in claude.ai Project sessions","glance":"Claude Code can fetch context for a claude.ai Project into the session, behind a switch that is off unless turned on remotely","teaser":null,"tier":"soon","area":"Projects","section":"What probably matters to you","position":11,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/project-context-block-gate-tengu-quill-marten","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/project-context-block-gate-tengu-quill-marten.json"},{"anchor":"agent-view-gains-effort-and-fast-typed-commands","heading":"\/effort and \/fast now work in agent view for new sessions","glance":"Typing `\/effort` or `\/fast` in agent view now sets effort or fast mode for new sessions from that window instead of showing an unavailable hint","teaser":null,"tier":"use","area":"Agents View","section":"What probably matters to you","position":12,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-gains-effort-and-fast-typed-commands","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-gains-effort-and-fast-typed-commands.json"},{"anchor":"agent-tools-allowlist-supports-mcp-server-wildcards-with-a","heading":"Agent tool lists can include every tool from an MCP server, and warn on misses","glance":"A tools entry naming an MCP server or ending in `__*` now expands to that server's tools, with a warning if none match","teaser":null,"tier":"use","area":"Subagents","section":"What probably matters to you","position":13,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-tools-allowlist-supports-mcp-server-wildcards-with-a","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-tools-allowlist-supports-mcp-server-wildcards-with-a.json"},{"anchor":"hook-output-gains-internal-permissiondisplay","heading":"Hook output accepts a desktop-only permission display field","glance":"The output a hook returns can now include an optional field meant only for the desktop app","teaser":null,"tier":"use","area":"Hooks","section":"What probably matters to you","position":14,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hook-output-gains-internal-permissiondisplay","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hook-output-gains-internal-permissiondisplay.json"},{"anchor":"hooks-can-return-permissiondisplay","heading":"Hooks can return display details for a permission prompt","glance":"Hooks can now return `permissionDisplay` in their output, next to `additionalContext`, to supply details for a permission prompt","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.299\/e\/hooks-can-return-permissiondisplay","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hooks-can-return-permissiondisplay.json"},{"anchor":"new-disallow-tools-option-in-a-case-runner-cli-command","heading":"New <code>--disallow-tools<\/code> option for running case files","glance":"A command that runs case files gains `--disallow-tools`, which keeps chosen built-in tools from Claude in every case","teaser":null,"tier":"use","area":"Plugin Evals","section":"What probably matters to you","position":16,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-disallow-tools-option-in-a-case-runner-cli-command","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-disallow-tools-option-in-a-case-runner-cli-command.json"},{"anchor":"new-claude-code-remote-mcp-config-env-var-passed-through-to","heading":"Headless and remote runs handle delivered MCP servers and --mcp-config differently","glance":"Remote runners get host-delivered MCP servers through CLAUDE_CODE_REMOTE_MCP_CONFIG, and --mcp-config sources are filtered by scope and ownership","teaser":null,"tier":"use","area":"Cloud Sessions","section":"What probably matters to you","position":17,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-claude-code-remote-mcp-config-env-var-passed-through-to","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-claude-code-remote-mcp-config-env-var-passed-through-to.json"},{"anchor":"mcp-serve-interface-min-version-env-var-and-managed-hook-run","heading":"mcp serve gets new host options, and its session tunnel tracks its runner and token expiry","glance":"mcp serve adds a minimum-version variable and managed-hook tools, and --session-tunnel watches its runner and stops when its stated token expiry passes","teaser":null,"tier":"use","area":"MCP Serve","section":"What probably matters to you","position":18,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-serve-interface-min-version-env-var-and-managed-hook-run","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-serve-interface-min-version-env-var-and-managed-hook-run.json"},{"anchor":"eval-harness-gains-disallow-tools-and-per-case-disallowed","heading":"Plugin evals can now take tools away from Claude with --disallow-tools","glance":"The plugin eval runner accepts `--disallow-tools` and a per-case `disallowed_tools` list, and scores runs that end on an API error as 0","teaser":null,"tier":"use","area":"Plugin Evals","section":"What probably matters to you","position":19,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/eval-harness-gains-disallow-tools-and-per-case-disallowed","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/eval-harness-gains-disallow-tools-and-per-case-disallowed.json"},{"anchor":"plugin-hooks-can-read-prompt-attachments-by-id","heading":"Plugin hooks can read images and documents attached to a prompt","glance":"Plugin hooks can now read, in chunks, the bytes of an image or document attached to the prompt being sent","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":20,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-hooks-can-read-prompt-attachments-by-id","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-hooks-can-read-prompt-attachments-by-id.json"},{"anchor":"hooks-modules-sessionidentity-and-promptmedia-methods-wi","heading":"Plugin hooks gain session identity and prompt media methods","glance":"Plugin hook modules can now call session.identity and prompt.media, mark registrations as withheld, and get fuller error details","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.299\/e\/hooks-modules-sessionidentity-and-promptmedia-methods-wi","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hooks-modules-sessionidentity-and-promptmedia-methods-wi.json"},{"anchor":"result-messages-gain-api-error-origin","heading":"Claude Code is more careful with custom API endpoints and gateways","glance":"With a non-Anthropic ANTHROPIC_BASE_URL, the remote settings fetch withholds the API key; features it turns off are explained and gateway use is marked","teaser":null,"tier":"use","area":"SDK","section":"What probably matters to you","position":23,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/result-messages-gain-api-error-origin","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/result-messages-gain-api-error-origin.json"},{"anchor":"sandbox-filesystem-rules-accept-literal-path-entries","heading":"Sandbox filesystem rules can name exact paths","glance":"Sandbox file rules can now mark a path as literal, so it is matched exactly rather than treated as a pattern","teaser":null,"tier":"use","area":"Sandbox","section":"What probably matters to you","position":24,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/sandbox-filesystem-rules-accept-literal-path-entries","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/sandbox-filesystem-rules-accept-literal-path-entries.json"},{"anchor":"cronchromequeue-and-other-minor-items-slim-tool-result-co","heading":"Saved copies of tool results can be stored without their contents","glance":"A slim mode can blank file contents and command output in the copies of tool results Claude Code saves to disk","teaser":null,"tier":"use","area":"Tool Results","section":"What probably matters to you","position":25,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/cronchromequeue-and-other-minor-items-slim-tool-result-co","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/cronchromequeue-and-other-minor-items-slim-tool-result-co.json"},{"anchor":"webfetch-ccr-proxy-now-keyed-on-an-env-var","heading":"WebFetch proxy routing is now switched on by an environment variable","glance":"Routing WebFetch through the CCR proxy now depends on `CLAUDE_CODE_WEBFETCH_USE_CCR_PROXY` instead of being worked out from session state","teaser":null,"tier":"use","area":"Web Fetch","section":"What probably matters to you","position":26,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/webfetch-ccr-proxy-now-keyed-on-an-env-var","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/webfetch-ccr-proxy-now-keyed-on-an-env-var.json"},{"anchor":"denied-tool-permission-now-ends-the-turn","heading":"Denying a tool permission now ends the turn","glance":"When you deny a tool permission, the turn now ends the same way an interrupt does, instead of Claude carrying on","teaser":null,"tier":"notice","area":"Permissions","section":"What probably matters to you","position":27,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/denied-tool-permission-now-ends-the-turn","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/denied-tool-permission-now-ends-the-turn.json"},{"anchor":"plugin-hook-modules-managed-policy-restrictions-and-new-ses","heading":"Plugin hook modules get more events and organization policy limits","glance":"Plugin hook modules can respond to more events, while plugins people install themselves face limits where an organization manages Claude Code","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":28,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-hook-modules-managed-policy-restrictions-and-new-ses","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-hook-modules-managed-policy-restrictions-and-new-ses.json"},{"anchor":"hooks-modules-rollout-switch-is-now-followed-live-in-a-runni","heading":"Plugin mods switch on and off mid-session, and org mods must load before a turn","glance":"Installed plugin mods now load or unload when their rollout switch changes mid-session, and a turn waits for your organization's mods to load","teaser":null,"tier":"notice","area":"Plugins","section":"What probably matters to you","position":29,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hooks-modules-rollout-switch-is-now-followed-live-in-a-runni","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hooks-modules-rollout-switch-is-now-followed-live-in-a-runni.json"},{"anchor":"artifact-publish-gains-edits-support-editsapplied-editsno","heading":"Artifact publish can edit the local file in the same call","glance":"The artifact publish tool takes old_str\/new_str edits, applies them to the local file, publishes it, and reports edits applied or not written","teaser":null,"tier":"notice","area":"Artifacts","section":"What probably matters to you","position":30,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/artifact-publish-gains-edits-support-editsapplied-editsno","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/artifact-publish-gains-edits-support-editsapplied-editsno.json"},{"anchor":"new-vs-code-gates-stored-startup-config-and-python-beside-s","heading":"VS Code extension gets two new settings that default on","glance":"The VS Code extension has two new remotely controlled settings, about stored startup configuration and Python, that are on by default","teaser":null,"tier":"notice","area":"VS Code","section":"What probably matters to you","position":32,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-vs-code-gates-stored-startup-config-and-python-beside-s","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/new-vs-code-gates-stored-startup-config-and-python-beside-s.json"},{"anchor":"tengu-linear-owl-gates-host-worded-permission-display-from-p","heading":"Apps built on the SDK can word their own permission prompts","glance":"Apps embedding Claude Code can supply the wording of a permission prompt from a PreToolUse hook, off unless switched on remotely","teaser":null,"tier":"soon","area":"SDK","section":"What probably matters to you","position":33,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/tengu-linear-owl-gates-host-worded-permission-display-from-p","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/tengu-linear-owl-gates-host-worded-permission-display-from-p.json"},{"anchor":"fleet-view-gains-a-settingpicker-and-a-pasted-frame-hook-tha","heading":"Fleet view gains an unfinished settings picker that does nothing yet","glance":"The fleet view has groundwork for a settings picker that pauses typing while open, but the code that would use it does nothing yet","teaser":null,"tier":"soon","area":"Agents View","section":"What probably matters to you","position":34,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/fleet-view-gains-a-settingpicker-and-a-pasted-frame-hook-tha","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/fleet-view-gains-a-settingpicker-and-a-pasted-frame-hook-tha.json"},{"anchor":"agent-view-setting-picker-state","heading":"Groundwork for a settings picker in the agent view","glance":"The agent view gained the internal state needed to open, close and move through a settings picker","teaser":null,"tier":"soon","area":"Agents View","section":"What probably matters to you","position":35,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-setting-picker-state","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-view-setting-picker-state.json"},{"anchor":"background-task-launch-gets-backgroundlaunchbydefault-and-st","heading":"New <code>tengu_glowing_lark<\/code> gate controls background launch and MCP task code","glance":"A new gate, `tengu_glowing_lark`, sits in front of background-launch settings for agents and several MCP task and worker-wake paths","teaser":null,"tier":"soon","area":"Background Tasks","section":"What probably matters to you","position":36,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/background-task-launch-gets-backgroundlaunchbydefault-and-st","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/background-task-launch-gets-backgroundlaunchbydefault-and-st.json"},{"anchor":"mcp-server-tags-calls-with-anthropicsession-metadata","heading":"<code>claude mcp serve<\/code> reads a session id sent with each tool call","glance":"When Claude Code runs as an MCP server, it reads a session id from each call's `anthropic\/session` metadata and warns when it is invalid","teaser":null,"tier":"use","area":"MCP Serve","section":"What probably matters to you","position":38,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-server-tags-calls-with-anthropicsession-metadata","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/mcp-server-tags-calls-with-anthropicsession-metadata.json"},{"anchor":"cloudheadless-session-config-accepts-disallowed-tools","heading":"Cloud and headless runs can list tools to block","glance":"The configuration for cloud and headless runs now accepts an optional `disallowed_tools` list next to `allowed_tools`","teaser":null,"tier":"use","area":"Headless Mode","section":"What probably matters to you","position":39,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/cloudheadless-session-config-accepts-disallowed-tools","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/cloudheadless-session-config-accepts-disallowed-tools.json"},{"anchor":"headless-config-read-fails-closed-in-diskless-claude-code-h","heading":"Diskless sessions no longer fall back to reading config from local disk","glance":"With `CLAUDE_CODE_HOVER_REST` on, a diskless session loads config only from its storage service, uses defaults if that fails, and skips backups","teaser":null,"tier":"use","area":"Diskless Sessions","section":"What probably matters to you","position":40,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/headless-config-read-fails-closed-in-diskless-claude-code-h","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/headless-config-read-fails-closed-in-diskless-claude-code-h.json"},{"anchor":"plugin-runtime-mods-gain-uilog-envget-envset","heading":"Plugins gain entries for logging and environment variables","glance":"The plugin runtime's list next to tool.register and tool.list now also includes ui.log, env.get and env.set","teaser":null,"tier":"use","area":"Plugins","section":"What probably matters to you","position":42,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-runtime-mods-gain-uilog-envget-envset","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-runtime-mods-gain-uilog-envget-envset.json"},{"anchor":"image-limits-raised-for-one-model","heading":"Images can now be limited by token count, and one model&#039;s image limit rises to 2576px","glance":"A new `maxImageTokens` limit lets image resizing cap images by token count, and one model's limit moves from 2000x2000 to 2576x2576 with a 4784-token cap","teaser":null,"tier":"notice","area":"Images","section":"What probably matters to you","position":43,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/image-limits-raised-for-one-model","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/image-limits-raised-for-one-model.json"},{"anchor":"artifact-tools-mod-sharing-prompt-text-and-resume-denied","heading":"Mod authors get new guidance on how to share what they build","glance":"Claude Code now suggests publishing a mod to your organization's library when it can, and otherwise a GitHub repository, public or private","teaser":null,"tier":"notice","area":"Mods","section":"What probably matters to you","position":44,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/artifact-tools-mod-sharing-prompt-text-and-resume-denied","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/artifact-tools-mod-sharing-prompt-text-and-resume-denied.json"},{"anchor":"self-hosted-runner-tools-host-in-session-token-response","heading":"Self-hosted runners can be told to use a separate host for tools","glance":"On self-hosted runners, the session token answer can name a tools host, which skips the remote setup fetch and keeps the token out of the environment","teaser":null,"tier":"notice","area":"Self-Hosted Runner","section":"What probably matters to you","position":46,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/self-hosted-runner-tools-host-in-session-token-response","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/self-hosted-runner-tools-host-in-session-token-response.json"},{"anchor":"agent-tool-timing-marks-background-default-cwd-checks","heading":"Agent tool changes when subagents run in the background","glance":"Agent tool calls can now default to running in the background, a new message can refuse background launches, and the tool checks working folders","teaser":null,"tier":"notice","area":"Subagents","section":"What probably matters to you","position":47,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-tool-timing-marks-background-default-cwd-checks","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/agent-tool-timing-marks-background-default-cwd-checks.json"},{"anchor":"prompt-submitqueue-handling-held-input-set-aside-and-org-m","heading":"Turns wait for plugins and stop if your organization&#039;s mods fail to load","glance":"Claude Code now waits for plugins to finish setting up before a turn, and refuses to start if your organization's mods cannot be loaded","teaser":null,"tier":"notice","area":"Mods","section":"What probably matters to you","position":48,"scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/prompt-submitqueue-handling-held-input-set-aside-and-org-m","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/prompt-submitqueue-handling-held-input-set-aside-and-org-m.json"},{"anchor":"per-model-usage-credit-billing-via-tengu-saffron-lattice","heading":"Usage-credit consent and billing checks can now differ per model","glance":"Overage consent and usage-credit billing can now be decided per model through `tengu_saffron_lattice`, instead of once for the whole plan","teaser":null,"tier":"notice","area":"Usage & Limits","section":"What probably matters to you","position":49,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/per-model-usage-credit-billing-via-tengu-saffron-lattice","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/per-model-usage-credit-billing-via-tengu-saffron-lattice.json"},{"anchor":"send-message-bridge-address-tengu-flickering-lagoon-gate","heading":"SendMessage can look for an MCP server&#039;s send_message tool, behind tengu_flickering_lagoon","glance":"Messages sent to a bridge address can find a connected MCP server's `send_message` tool, but only when the `tengu_flickering_lagoon` flag is on","teaser":null,"tier":"soon","area":"Agent Messaging","section":"What probably matters to you","position":50,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/send-message-bridge-address-tengu-flickering-lagoon-gate","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/send-message-bridge-address-tengu-flickering-lagoon-gate.json"},{"anchor":"ultracode-state-is-now-reported-to-the-session-as-is-ultrac","heading":"Ultracode state is reported to remote clients alongside the effort level","glance":"Claude Code now sends is_ultracode_active with session state, so remote and bridge clients can tell when ultracode is on","teaser":null,"tier":"internal","area":"Ultracode","section":"What probably matters to you","position":52,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/ultracode-state-is-now-reported-to-the-session-as-is-ultrac","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/ultracode-state-is-now-reported-to-the-session-as-is-ultrac.json"},{"anchor":"fetch-size-check-skips-for-certain-status-codes-self-hosted","heading":"Self-hosted runner startup timeout covers more cases, and fetch size check skips some responses","glance":"The `--startup-timeout-min` help now says the timer covers MCP connection and idle sessions, and restarts whenever the child writes output","teaser":null,"tier":"use","area":"Self-Hosted Runner","section":"What probably matters to you","position":53,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/fetch-size-check-skips-for-certain-status-codes-self-hosted","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/fetch-size-check-skips-for-certain-status-codes-self-hosted.json"},{"anchor":"context-window-unknown-model-enforcement-refactored-claude","heading":"Unknown-model warning becomes a visible banner, with a CLAUDE_CODE_MAX_CONTEXT_TOKENS exemption","glance":"An unrecognized model now gets a visible warning banner, and setting CLAUDE_CODE_MAX_CONTEXT_TOKENS can exempt first-party models from the check","teaser":null,"tier":"use","area":"Elsewhere","section":"What probably matters to you","position":54,"scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/context-window-unknown-model-enforcement-refactored-claude","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/context-window-unknown-model-enforcement-refactored-claude.json"},{"anchor":"stray-memory-server-mcp-entries-refused-at-connect","heading":"MCP servers that reach the account memory server unofficially are refused","glance":"An MCP server that can reach the account memory server but is not the cloud service's own entry is now refused at connect","teaser":null,"tier":"notice","area":"MCP","section":"What probably matters to you","position":55,"scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/stray-memory-server-mcp-entries-refused-at-connect","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/stray-memory-server-mcp-entries-refused-at-connect.json"},{"anchor":"remote-io-ccrclient-reads-own-client-events-and-holds-idle-l","heading":"Cloud sessions now check device attestation on their own stored events","glance":"Cloud sessions reading back their own stored events now check device attestation against policy and treat failing events as unavailable","teaser":null,"tier":"internal","area":"Cloud Sessions","section":"What probably matters to you","position":56,"scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/remote-io-ccrclient-reads-own-client-events-and-holds-idle-l","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/remote-io-ccrclient-reads-own-client-events-and-holds-idle-l.json"},{"anchor":"device-bind-create-can-be-signed-with-a-seed-sealer","heading":"Remote session creation can be signed with a device key","glance":"When a device key is held and a feature check passes, Claude Code now signs the request that creates a remote session","teaser":null,"tier":"internal","area":"Cloud Sessions","section":"What probably matters to you","position":57,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/device-bind-create-can-be-signed-with-a-seed-sealer","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/device-bind-create-can-be-signed-with-a-seed-sealer.json"}],"facets":{"sections":[{"value":"What probably matters to you","entries":50},{"value":"New Features","entries":1},{"value":"Improvements","entries":223},{"value":"Bug Fixes","entries":40},{"value":"In Development","entries":13},{"value":"Internal Changes","entries":110},{"value":"Removed","entries":2}],"tiers":[{"value":"notice","entries":272},{"value":"internal","entries":120},{"value":"use","entries":28},{"value":"soon","entries":19}],"areas":[{"value":"Cloud Sessions","entries":33},{"value":"Plugins","entries":29},{"value":"Sandbox","entries":27},{"value":"Elsewhere","entries":24},{"value":"MCP","entries":24},{"value":"Hooks","entries":21},{"value":"Sessions","entries":21},{"value":"Subagents","entries":16},{"value":"Permissions","entries":15},{"value":"Scheduled Tasks","entries":12},{"value":"Internals","entries":11},{"value":"Telemetry","entries":11},{"value":"Auto Mode","entries":10},{"value":"Git","entries":9},{"value":"SDK","entries":9},{"value":"Self-Hosted Runner","entries":9},{"value":"Artifacts","entries":8},{"value":"Remote Control","entries":8},{"value":"Windows","entries":8},{"value":"Terminal UI","entries":7},{"value":"API Requests","entries":6},{"value":"Agents View","entries":6},{"value":"Managed Settings","entries":6},{"value":"Projects","entries":6},{"value":"Skills","entries":6},{"value":"Worktrees","entries":6},{"value":"Context Management","entries":5},{"value":"Headless Mode","entries":5},{"value":"Models","entries":5},{"value":"Browser","entries":4},{"value":"MCP Serve","entries":4},{"value":"Message Queue","entries":4},{"value":"Agent Teams","entries":3},{"value":"Auth","entries":3},{"value":"Background Tasks","entries":3},{"value":"CLI","entries":3},{"value":"Compaction","entries":3},{"value":"Diskless Sessions","entries":3},{"value":"Memory","entries":3},{"value":"Performance","entries":3},{"value":"Settings","entries":3},{"value":"Slash Commands","entries":3},{"value":"VS Code","entries":3},{"value":"Feedback","entries":2},{"value":"File Mentions","entries":2},{"value":"Gateway","entries":2},{"value":"Images","entries":2},{"value":"Mods","entries":2},{"value":"Plan Mode","entries":2},{"value":"Plugin Evals","entries":2},{"value":"Ultracode","entries":2},{"value":"Usage","entries":2},{"value":"Usage & Limits","entries":2},{"value":"Agent Messaging","entries":1},{"value":"Configuration","entries":1},{"value":"Cowork","entries":1},{"value":"Desktop App","entries":1},{"value":"File Editing","entries":1},{"value":"GitHub","entries":1},{"value":"Limits","entries":1},{"value":"Memory Files","entries":1},{"value":"Remote Tools","entries":1},{"value":"Tool Results","entries":1},{"value":"Web Fetch","entries":1}]}}