Claude docs changes for July 28th, 2026 [diff]

Executive Summary

  • Claude Desktop can now connect to a Cloud gateway deployment: point its managed bootstrapUrl at /user/bootstrap and opt a policy in with a desktop key to serve it model access, tool restrictions, and feature gates (requires gateway server v2.1.203+).
  • Sandboxing gains a strictAllowlist setting that denies sandboxed commands access to any host outside the domain allowlist instead of prompting for approval (v2.1.219+).
  • Hooks documentation now spells out that settings-file, managed-policy, and plugin hooks all run inside subagents, with agent_id/agent_type identifying the subagent, and that hook entries merge across settings levels rather than overriding each other.
  • The Agent SDK Python ResultMessage gains a terminal_reason field describing why the query loop ended, and model_usage entries can now include canonicalModel and provider.
  • Remote Control's "only available via api.anthropic.com" error now names the specific variable (e.g. CLAUDE_CODE_USE_BEDROCK or a custom ANTHROPIC_BASE_URL) that routed the session away from the Anthropic API (v2.1.219+).

Claude Code changes

Changed documents

agent-sdk/python [Source]

  • ResultMessage gained a terminal_reason field explaining why the query loop terminated ("completed", "max_turns", "aborted_streaming", etc.); None on older CLI versions. [lines 1597-1607] [Source]
  • model_usage values are now typed as a ModelUsage TypedDict (importable from claude_agent_sdk.types), which can include a new canonicalModel key (the pricing-lookup model ID) and a provider key (e.g. firstParty, bedrock, vertex, foundry, mantle, gateway). [line 1630] [Source]

claude-apps-gateway [Source]

  • New "Connect Claude Desktop" section: Claude Desktop can sign in to the same gateway via its own bootstrapUrl managed-configuration key, using a separate sign-in flow from the CLI and its own per-user session. Requires gateway server v2.1.203+. [lines 325-328] [Source]
  • Feature-availability table now lists "Claude Desktop" support as "Available with opt-in", served at /user/bootstrap once a policy opts in with a desktop key. [line 361] [Source]

claude-apps-gateway-config [Source]

  • New "Claude Desktop overlay" section documenting the /user/bootstrap endpoint: it derives the model list, disabled tools, and egress allowlist from a policy's cli block, plus a new desktop block (modelDiscoveryEnabled, coworkTabEnabled, isLocalDevMcpEnabled, disableAutoUpdates, banner, etc.) for Desktop-only feature gates. Requires gateway server v2.1.203+ and an explicit desktop opt-in on the matching policy. [lines 475-497] [Source]
  • Notes that embedding hosts able to supply policy via the SDK managedSettings option now explicitly include Claude Desktop as an example. [line 761] [Source]

claude-apps-gateway-deploy [Source]

  • New audit events desktop_bootstrap.serve and desktop_bootstrap.denied are emitted for Claude Desktop bootstrap requests; denial reasons include not_configured, policy_not_opted_in, and no_policy_matched. [lines 96-100] [Source]
  • New troubleshooting row for when Claude Desktop can't fetch its bootstrap configuration (404 from /user/bootstrap). [line 210] [Source]

fullscreen [Source]

  • Clipboard copying now also works for long selections inside GNU screen; before v2.1.219, selections longer than roughly 570 characters printed base64 text into the window instead of copying. [line 150] [Source]

hooks [Source]

  • Clarifies that hooks from settings files, managed policy settings, and plugins all run inside subagents; tool-event hooks fire the same as in the main conversation and carry agent_id/agent_type in their input. [line 176] [Source]
  • Documents that hook entries merge across settings levels instead of replacing each other, and that disableAllHooks can't disable managed hooks from outside managed settings. [line 178] [Source]
  • Documents that the allowedHttpHookUrls and httpHookAllowedEnvVars HTTP hook allowlists apply to hooks from every source, including managed policy settings. [line 179] [Source]

remote-control [Source]

  • The "Remote Control is only available via api.anthropic.com" error message now names the specific variable that routed the session away, such as CLAUDE_CODE_USE_BEDROCK or a custom ANTHROPIC_BASE_URL; before v2.1.219 the message gave no such detail. [lines 268-269] [Source]

sandboxing [Source]

  • New strictAllowlist setting: when set to true in user, managed, or CLI --settings settings, sandboxed commands are denied access to hosts outside the allowlist instead of being prompted for approval. Doesn't affect in-process tools like WebFetch, and has no effect if set in repo-level .claude/settings.json. Requires v2.1.219+. [line 279] [Source]

settings [Source]

  • Documents the new network.strictAllowlist setting (default false), covered in more detail in sandboxing. [line 398] [Source]

sub-agents [Source]

  • Clarifies that session-wide hooks in settings.json also fire inside subagents: tool-event hooks fire for the subagent's own tool calls, and SubagentStart/SubagentStop fire when a subagent starts or finishes. [lines 531-533] [Source]

API changes

No significant documentation changes today — the only diffs in docs-md/api were Cloudflare email-obfuscation hash rotations in files.md and thinking.md, with no visible content changes.