Large stability pass fixing hook and permission handling, plugin and MCP bugs, and Windows quirks; Sonnet 5.5 cache reads are now half price and Read gains allow_large.
code key to the Claude apps gateway's managed.policies[]: the same settings as cli, also applied in Claude Desktop's Code tab; beside desktop, it turns on Claude Desktop's gateway modeautoCompactWindow to subagent frontmatter and --agents definitions, so a subagent can auto-compact earlier than the main conversation's windowCLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL to run every workflow agent on one model while other subagents keep theirsCLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request/plugin on a plugin whose hooks are left out because another enabled plugin has the same nameallow_large option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has roomcode settings, the reason shows as a reply--debug output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos--debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiableCLAUDE_CODE_TRANSCRIPT_LOCAL_GC: a large transcript file is no longer rewritten when that would free under 10% of itPreToolUse hooks that deny a tool call with "continue": false, and managed prompt hooks that block one, refusing the call but not ending the turnupdatedMCPToolOutput in some sessions.mcp.json or plugin MCP server that was switched off for that folder, after changing directory or reloading pluginsallowedProviders with "gateway" locking out laptops that name that gateway in user settingsforceLoginMethod to gateway with no forceLoginGatewayUrl (regression in 2.1.295)--teleport opening an empty conversation when the session's history could not be read52;c;… escape sequence printed on screen after copying in older VTE-based terminals such as MATE Terminal/diff panel or dialog was openUserPromptSubmit hook or a mod's prompt.submit hook ending headless sessions, clearing the typed prompt, or letting the unchecked prompt throughclaude self-hosted-runner printing misleading errors when registration is refused: it now names the org admin setting, or says a restarted on-demand runner needs a fresh work order--capacity above 1$ methods running in the main session's working directory instead of the calling agent's, and ignoring the turn their calling hook holds$.agent.register succeeding from a mod's hook that was still running after the mod was reloaded or removed; the call is now refused$.http.fetch in mods refusing a HEAD request when the response declares a Content-Length over the 4 MiB body limitclaude plugin marketplace add, marketplace update and plugin install failing with an internal error for a marketplace named like constructor; add now refuses such names clearlyconstructor or prototype being deleted by the next save of that plugin's optionsCLAUDE_CODE_RESUME_INTERRUPTED_TURN re-running a finished turn after a restart when an MCP tool result had ended that turnBASH_ARGV0 shell variable and then use it; these now prompt for approval← being run twice, once unseen in the foreground, when the background service was slow to answer← moved the session to the background; it is still not sent, but ↑ now brings it back/clear in headless sessions/mcp or claude mcp when an MCP server needs authentication/code-review ending on a raw JSON array in cloud sessions, the Agent SDK and IDE integrations; the findings now print as a numbered listtool_result events missing git_commit_id after git commit -q or git -C <dir> commitCLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping a message from the saved transcript when its text held a Unicode line or paragraph separator (U+2028, U+2029)claude purge leaving a prompt in the history file when its text held a Unicode line or paragraph separator (U+2028, U+2029)claude plugin install failing for GitHub owner/repo plugin sources on machines with no GitHub SSH key; the clone is now retried over HTTPSrm -rf /c/Users/<name> in Git Bash not asking in bypass permissions modeclaudeCode.spinnerVerbs missing from the extension's settings, so settings.json now completes and validates it; a malformed value no longer breaks the chat panelprefersReducedMotion setting/cost, the status line, --max-budget-usd and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)←: a turn or ! command started while the session moves to the background is now stopped instead of finishing out of sight@browser, as the terminal does; allowing a site for the session stops repeat asks