Claude docs changes for March 17th, 2026 [diff]

Executive Summary

  • Extended thinking gains a new display: "omitted" option that skips streaming thinking tokens for faster time-to-first-text-token, while preserving the signature for multi-turn continuity
  • Claude Code 2.1.77 fixes a critical security bug where PreToolUse hooks returning "allow" could bypass deny permission rules, including enterprise managed settings
  • Fast mode pricing is now flat at $30/$150 MTok across the full 1M token context window (removing the previous tiered <200K / >200K pricing)
  • Session quality surveys now appear for Bedrock, Vertex, and Foundry users by default (previously they were off for third-party providers)
  • The PermissionRequest hook can now auto-approve specific permission dialogs programmatically, documented with a new example in the hooks guide

New Claude Code versions

2.1.77

New features

  • Added allowRead sandbox filesystem setting to re-allow read access within denyRead regions
  • /copy now accepts an optional index: /copy N copies the Nth-latest assistant response
  • Background bash tasks are now killed if output exceeds 5GB, preventing runaway processes from filling disk
  • Sessions are now auto-named from plan content when you accept a plan
  • SendMessage now auto-resumes stopped agents in the background instead of returning an error
  • Renamed /fork to /branch (/fork still works as an alias)

Existing feature improvements

  • Increased default maximum output token limits for Claude Opus 4.6 to 64k tokens, and the upper bound for Opus 4.6 and Sonnet 4.6 models to 128k tokens
  • Faster startup on macOS (~60ms) by reading keychain credentials in parallel with module loading
  • Faster --resume on fork-heavy and very large sessions — up to 45% faster loading and ~100-150MB less peak memory
  • Improved claude plugin validate to check skill, agent, and command frontmatter plus hooks/hooks.json, catching YAML parse errors and schema violations
  • The Agent tool no longer accepts a resume parameter — use SendMessage({to: agentId}) to continue a previously spawned agent
  • Show a notice when apiKeyHelper takes longer than 10s, preventing it from blocking the main loop
  • [VSCode] Improved plan preview tab titles to use the plan's heading instead of "Claude's Plan"

Major bug fixes

  • Fixed PreToolUse hooks returning "allow" bypassing deny permission rules, including enterprise managed settings
  • Fixed "Always Allow" on compound bash commands (e.g. cd src && npm test) saving a single rule for the full string instead of per-subcommand, leading to dead rules and repeated permission prompts
  • Fixed --resume silently truncating recent conversation history due to a race between memory-extraction writes and the main transcript
  • Fixed Write tool silently converting line endings when overwriting CRLF files or creating files in CRLF directories
  • Fixed auto-updater starting overlapping binary downloads when the slash-command overlay repeatedly opened and closed, accumulating tens of gigabytes of memory
  • Fixed memory growth in long-running sessions from progress messages surviving compaction
  • Fixed cost and token usage not being tracked when the API falls back to non-streaming mode
  • Fixed CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS not stripping beta tool-schema fields, causing proxy gateways to reject requests
  • Fixed Bash tool reporting errors for successful commands when the system temp directory path contains spaces
  • Fixed Claude Desktop sessions incorrectly using the terminal CLI's configured API key instead of OAuth
  • Fixed git-subdir plugins at different subdirectories of the same monorepo commit colliding in the plugin cache
  • Fixed a race condition where stale-worktree cleanup could delete an agent worktree just resumed from a previous crash
  • Fixed input deadlock when opening /mcp or similar dialogs while the agent is running
  • Fixed IDE integration not auto-connecting when Claude Code is launched inside tmux or screen
  • Fixed iTerm2 session crash when selecting text inside tmux over SSH
  • Fixed clipboard copy silently failing in tmux sessions

Claude Code changes

Changed documents

commands [Source]

  • Updated /reload-plugins description: now reports counts for each reloaded component and flags any load errors, rather than just reporting what was loaded. [line 48] [Source]

data-usage [Source]

  • Session quality surveys now appear by default for Bedrock, Vertex, and Foundry users (previously they were off for third-party providers). [line 71] [Source]
  • feedbackSurveyRate setting can now be used to control survey frequency instead of disabling entirely; surveys are also disabled when DISABLE_TELEMETRY or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set. [line 20] [Source]

discover-plugins [Source]

  • After installing a plugin, you must now run /reload-plugins to activate it (previously commands were described as immediately available). [line 167] [Source]
  • /reload-plugins now shows counts for reloaded commands, skills, agents, hooks, plugin MCP servers, and plugin LSP servers. [line 382] [Source]

env-vars [Source]

  • New CLAUDECODE environment variable: set to 1 in shell environments spawned by Claude Code (Bash tool, tmux sessions), useful to detect when a script is running inside Claude Code. [line 23] [Source]
  • New CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS variable: allows fast mode when the organization status check fails due to a network error (useful for corporate proxies). [line 62] [Source]

fast-mode [Source]

  • Fast mode pricing is now flat at $30/$150 MTok across the full 1M token context window — the previous tiered <200K / >200K pricing distinction has been removed. [line 40] [Source]

hooks-guide [Source]

  • New example: "Auto-approve specific permission prompts" showing how to use the PermissionRequest hook to automatically answer permission dialogs (e.g., auto-approving ExitPlanMode) without user interaction, including how to set a specific permission mode via updatedPermissions. [lines 326-384] [Source]
  • Hook file changes are now picked up automatically by the file watcher — no longer require a session restart or /hooks review to take effect. [line 644] [Source]

hooks [Source]

  • The permission_suggestions output field now uses addRules format (with toolName, ruleContent, behavior, destination) instead of the old toolAlwaysAllow format. [line 1076] [Source]
  • New "Permission update entries" section documenting all entry types for updatedPermissions and permission_suggestions: addRules, replaceRules, removeRules, setMode, addDirectories, removeDirectories, with their fields and destination options (session, localSettings, projectSettings, userSettings). [lines 1118-1147] [Source]

mcp [Source]

  • New MCP servers added: Mixpanel (analytics), Krisp (meeting transcripts/notes), and Craft (notes/second brain). [lines 429, 652, 726]
  • Plugin MCP server lifecycle clarified: run /reload-plugins to connect or disconnect MCP servers when enabling/disabling plugins mid-session. [line 973] [Source]

plugins [Source]

  • /reload-plugins now reloads plugin MCP servers in addition to commands, skills, agents, hooks, and LSP servers. [line 352] [Source]

settings [Source]

  • feedbackSurveyRate description updated: setting to 0 suppresses surveys entirely; noted as useful for Bedrock/Vertex/Foundry where the default sample rate does not apply. [line 189] [Source]

sub-agents [Source]

  • Plugin subagents do not support hooks, mcpServers, or permissionMode frontmatter fields for security reasons — these fields are ignored when loading agents from a plugin. Workaround: copy the agent file into .claude/agents/ or ~/.claude/agents/. [line 201] [Source]

API changes

Changed documents

adaptive-thinking [Source]

  • New "Controlling thinking display" section: the display field on thinking configuration accepts "summarized" (default) or "omitted" (empty thinking field, signature preserved for multi-turn). Also documents pricing for display: "omitted" (billed the same, zero visible tokens). [lines 184-215] [Source]
  • Disabled thinking can now also be specified as {type: "disabled"} in addition to omitting the parameter. [line 130] [Source]

errors [Source]

  • New 402 billing_error HTTP status code documented: indicates an issue with billing or payment information. [line 11] [Source]

extended-thinking [Source]

  • New "Controlling thinking display" section: introduces display: "omitted" to skip streaming thinking tokens for lower latency, with full code examples for curl and notes on SDK support. [lines 106-190] [Source]
  • Streaming event documentation updated: content_block_start for thinking blocks now includes a signature field; when display: "omitted", only a signature_delta is emitted with no thinking_delta events. [lines 250, 284-305]
  • Pricing section expanded with display: "omitted" breakdown: billed tokens are the same as summarized, but zero thinking tokens appear in the response. [lines 614-632] [Source]
  • Best practices updated to recommend display: "omitted" for latency-sensitive applications that don't display thinking content. [line 641] [Source]

pdf-support [Source]

  • Clarified that large PDFs can fail even when using the Files API (not just when sending inline), and suggested downsampling embedded images as a mitigation. [line 26] [Source]

rate-limits [Source]

  • Added "Monthly Spend Limit" column to the tier requirements table, showing the maximum spend per calendar month at each tier ($100/$500/$1,000/$200,000/no limit). [line 33] [Source]

release-notes/overview [Source]

  • March 16, 2026 entry: launch of display field for extended thinking, enabling display: "omitted" for faster streaming. [line 9] [Source]

remote-mcp-servers [Source]

  • New MCP servers added: Mixpanel (analytics), Pigment (business data), Krisp (meeting transcripts/notes), Craft (notes/second brain), and Jentic (single connection to all tools). [lines 572, 768, 948, 1064, 1148]

streaming [Source]

  • Added note that when display: "omitted" is set, no thinking_delta events are sent — only a signature_delta. [line 113] [Source]
  • Updated streaming example: content_block_start for thinking blocks now includes "signature": "" in the initial content block. [line 366] [Source]

vision [Source]

  • Added note that requests with many large images can fail before reaching the 600-image count limit even when using the Files API; recommends downsampling before uploading. [line 23] [Source]