Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All releases Home olderv2.1.90 v2.1.92newer

Claude Code v2.1.91

34 entries read diff v2.1.90 → v2.1.91 Markdown

This release activates the Ultraplan cloud planning feature (previously dark-launched), introduces several feature-flagged agent behavior optimizations (reduced file re-reads, Write append mode, smarter subagent output), removes the deprecated /output-style and /pr-comments commands along with Magic Docs, and fixes keyboard shortcut conflicts across the entire UI where single-key bindings could interfere with system shortcuts like Ctrl+X or Ctrl+F.

Find
Pick an entry · j / k steps through
21 entries

Changesopen

Disable Shell Execution in Skills (Policy Setting)#

What

A new disableSkillShellExecution policy/config setting that prevents inline shell execution in skills and custom slash commands from user, project, or plugin sources.

Usage: Set in your settings or policy configuration:

{
  "disableSkillShellExecution": true
}
Details
  • When enabled, shell command blocks (` `! fenced blocks and !... inline syntax) in skills are replaced with [shell command execution disabled by policy]`
  • Applies to commands from user, project, or plugin sources — not policy settings
  • Useful for organizations that want to allow skills but prevent arbitrary shell execution
Evidence

Policy gate and replacement logic (search for "disableSkillShellExecution" and "[shell command execution disabled by policy]")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

/feedback Command Provider-Aware Disabling#

What

The /feedback command now displays informative messages explaining why it's unavailable on non-first-party providers and when disabled by policy, instead of silently failing or showing a generic error.

Details
  • Shows specific messages for Amazon Bedrock, Vertex AI, and Microsoft Foundry users, directing them to GitHub issues
  • Respects DISABLE_FEEDBACK_COMMAND, DISABLE_BUG_COMMAND, and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC environment variables
  • Respects organization policy allow_product_feedback
  • All messages now direct users to https://github.com/anthropics/claude-code/issues
Evidence

Provider-specific feedback disabling (search for "/feedback has been disabled" and "/feedback is not available when using")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Peer Session Messaging#

What

When another Claude Code session sends a message while you're working, it now appears with contextual framing that helps Claude understand the message source.

Details
  • Messages from peer sessions are labeled: "A peer session sent a message while you were working"
  • Claude is instructed: "This is from another Claude session, not your user. After completing your current task, decide whether/how to respond."
Evidence

Peer session notification framing (search for "A peer session sent a message")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Sandbox Unavailable Error in Stream-JSON Mode#

What

When running in headless mode (--output-format stream-json) and the sandbox is required but unavailable, Claude Code now emits a proper JSON error result instead of only writing to stderr.

Details
  • Error message includes: "Sandbox required but unavailable: {reason}. Set sandbox.failIfUnavailable=false to allow unsandboxed execution."
  • The JSON result includes all standard fields (session_id, uuid, duration, etc.) for proper parsing by automation tools
Evidence

Headless sandbox error handling (search for "Sandbox required but unavailable:")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Untrusted Device Detection for Bridge Sessions#

What

Bridge/remote session connections now detect "untrusted device" errors and return a terminal failure instead of silently retrying.

Details
  • When the bridge endpoint returns a 403 with untrusted_device resource, the connection is marked as terminal
  • Users see a message to "run /login to enroll this device"
Evidence

Untrusted device handling in bridge connection (search for "untrusted_device" and "run /login to enroll this device")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Keyboard Shortcut Conflict Prevention#

Multiple keyboard handlers across the UI now properly check that Ctrl and Meta (Cmd) modifiers are not pressed before responding to single-key shortcuts. Previously, pressing Ctrl+X, Ctrl+F, Ctrl+S, Ctrl+K, Ctrl+T, Ctrl+W, or Ctrl+Q could trigger unrelated in-app actions.

Affected areas:

  • Shell/task panel: x (kill), f (focus), t (terminate), k (kill)
  • Submit confirmation: s (submit)
  • Session picker: q (quit)
  • Worktree picker: w (select worktree)
Evidence

Guards added as !t.ctrl && !t.meta before key checks across ~10 components (search for !t.ctrl && !t.meta in the diff)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Permission Mode: auto Classifier#

The permission mode setting now includes auto as an option, which uses a model classifier to approve or deny permission prompts automatically.

Evidence

Auto mode in permission enum (search for "Use a model classifier to approve/deny permission prompts")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Terminal Reason Tracking#

Query results now include a terminal_reason field that records why the query loop terminated. Possible values include: blocking_limit, rapid_refill_breaker, prompt_too_long, image_error, model_error, aborted_streaming, aborted_tools, stop_hook_prevented, hook_stopped, tool_deferred, max_turns, completed.

Evidence

Terminal reason enum and field (search for "Why the query loop terminated")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Rate Limit Reduction Suggestions [Gradual Rollout]#

When hitting a 7-day rate limit on Pro plans, Claude Code now suggests concrete ways to reduce usage:

  • If using an Opus model: suggests "try /model sonnet · ~2× runway"
  • If using high/max effort: suggests "try /effort medium"
Evidence

Rate limit suggestions (gated by tengu_garnet_plover, search for "try /model sonnet")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Opus Usage Cost Warning [Gradual Rollout]#

Feature flag
tengu_gypsum_kite Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.91: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.91. It isn't a statement about your account. What a flag value here can and cannot tell you

The model selector now shows " · ~2× usage vs Sonnet" when selecting Opus on Pro plans, helping users understand the relative cost.

Evidence

Opus cost indicator (gated by tengu_gypsum_kite, search for "~2× usage vs Sonnet")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

High Effort Warning [Gradual Rollout]#

Feature flag
tengu_slate_finch Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.91: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.91. It isn't a statement about your account. What a flag value here can and cannot tell you

When effort is set to "high" on the Max plan, the effort display now appends "burns fastest — medium handles most tasks" as a gentle nudge.

Evidence

High effort cost warning (gated by tengu_slate_finch, search for "burns fastest")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Unified Upgrade Paths from Server#

Rate limit dialogs now use server-provided upgrade path data (via the anthropic-ratelimit-unified-upgrade-paths response header) to determine which options to show (overage, plan upgrade), rather than computing them client-side.

Evidence

Server-driven upgrade paths (search for "anthropic-ratelimit-unified-upgrade-paths")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Memory Selector Conversation Caching#

The memory selection system now caches its state per-directory across queries within a session, reusing the conversation context for follow-up memory relevance queries instead of rebuilding it each time. The memory selection prompt has also been revised to support multi-turn usage ("Do not re-select memories you already returned for an earlier query").

Evidence

Memory selector state management (search for "memdir_relevance")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

PermissionDenied Hook Retry Message#

The message shown after a PermissionDenied hook allows a retry has been simplified from "this command is now approved. You may retry it if you would like" to "you may retry this tool call" — more accurate since the hook may approve a non-command tool call.

Evidence

Revised retry message (search for "you may retry this tool call")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Tool Telemetry Enrichment#

Tool usage telemetry now tracks additional dimensions: file path length, bash command length, and whether Read calls use limit/offset parameters.

Evidence

Telemetry fields (search for readHasLimit and bashCommandLen in the diff)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

NotebookEdit Path Handling#

The NotebookEdit tool now properly resolves relative paths (consistent with other file tools) and uses randomUUID instead of Math.random() for generating cell IDs.

Evidence

Path resolution in notebook edit (search for "notebook_path" and backfillObservableInput in the diff)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

File Upload Filename Sanitization#

File upload form data now properly escapes special characters (newlines, backslashes, quotes) in filenames, preventing malformed multipart requests.

Evidence

Filename escaping function hMK() (search for "Content-Disposition: form-data" in the string changes)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Ultraplan Improvements#

The Ultraplan feature received several enhancements:

  • Better error handling: "Ultraplan hit an unexpected error during launch" message now sent to the model for graceful recovery
  • Auto-polling timeout: sessions that remain unresolved are automatically cleaned up
  • Telemetry: new tengu_ultraplan_stopped event when killing ultraplan tasks
  • Terms tracking with hasSeenUltraplanTerms state
Evidence

Ultraplan error and state management (search for "Ultraplan hit an unexpected error")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Removed: /output-style Command#

The deprecated /output-style command has been fully removed. It was already showing a deprecation notice directing users to /config.

Evidence

Removal of output-style command handler (search for "output-style" in removed section)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Removed: /pr-comments Command#

The built-in /pr-comments slash command for fetching GitHub pull request comments has been removed. The same functionality is available via gh api commands directly.

Evidence

Removal of pr-comments command definition (search for "Get comments from a GitHub pull request" in removed section)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Removed: Magic Docs#

The Magic Docs feature — which automatically updated # MAGIC DOC: files based on conversation context — has been completely removed. This includes the update prompt, the template system, and the background agent that processed magic doc files.

Evidence

Removal of magic doc infrastructure (search for "MAGIC DOC" in removed section)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

1 entry

Bug Fixesopen

#

  • Fixed findLogicalLineStart crashing or scanning unnecessarily when offset is 0 — now returns 0 immediately (search for "findLogicalLineStart")
  • Fixed CLAUDE_FORCE_DISPLAY_SURVEY environment variable not being properly checked as a boolean, which could cause the feedback survey to show unexpectedly (search for "CLAUDE_FORCE_DISPLAY_SURVEY")
  • Fixed plugin name extraction using proper string-before-delimiter logic instead of naive .split("@")[0], which could fail for scoped package names (search for FB6 in the diff)
  • Added proper timeout cleanup in conversation effects, preventing potential memory leaks from dangling setTimeout references
  • Fixed Chrome extension installation check to properly catch and log errors instead of letting them propagate silently (search for "Failed to check extension installation")
  • Fixed Windows binary detection for MCP servers by adding a fallback file-size comparison when the standard executable path resolution fails
  • Fixed theme change detection by adding support for the themeNotify terminal response, enabling automatic theme updates when the terminal theme changes
7 entries

In Developmentopen

#

Features with infrastructure added but not yet enabled for all users. These are shipped behind feature flags and may become available in future versions.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Relative File Paths in Tool Descriptions [Gradual Rollout]#

What

When enabled, tool descriptions instruct Claude to use relative (cwd-based) file paths instead of absolute paths, and the Bash tool description notes that cd does not persist between calls.

Status

Feature-flagged via tengu_relpath_gh7k (default: false)

Details
  • Read tool description changes from "must be an absolute path" to "can be relative to cwd (preferred for brevity) or absolute"
  • Bash tool adds: "Avoid cd unless the User explicitly requests it. The shell already starts in cwd"
  • Read tool adds ONLY include with offset to read a specific slice. OMIT to read the whole file
Evidence

Relative path tool descriptions (gated by tengu_relpath_gh7k, search for "The file_path parameter can be relative to cwd")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Redundant File Re-Read Prevention [Gradual Rollout]#

Feature flag
tengu_noreread_q7m_velvet Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.91: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.91. It isn't a statement about your account. What a flag value here can and cannot tell you

What

When Claude re-reads a file that hasn't changed since its last Read, the tool result returns a warning instead of the file content, saving tokens.

Status

Feature-flagged via tengu_noreread_q7m_velvet (default: false)

Details
  • Returns: "Wasted call — file unchanged since your last Read. Refer to that earlier tool_result instead."
  • Edit/Write results now append: "(file state is current in your context — no need to Read it back)"
  • Tool descriptions add: "Do NOT re-read a file you just edited to verify"
Evidence

Re-read prevention (gated by tengu_noreread_q7m_velvet, search for "Wasted call")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Write Tool Append Mode [Gradual Rollout]#

What

The Write tool gains a mode parameter with 'overwrite' (default) and 'append' options, allowing content to be added to the end of a file without rewriting it.

Status

Feature-flagged via tengu_maple_forge_w8k (default: false)

Details
  • New mode parameter on the Write tool schema
  • Description: "Use 'append' to add content to the end of an existing file instead of rewriting the full content — e.g. for logs, accumulating output, or adding entries"
  • Instruction: "Do NOT re-send the existing file contents" when appending
Evidence

Write append mode (gated by tengu_maple_forge_w8k, search for "mode:'append'")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Edit After Write Without Read [Gradual Rollout]#

What

Files written during the current session can be edited without a prior Read call — the Edit tool recognizes that the session already knows the file's contents.

Status

Feature-flagged via tengu_editafterwrite_qpl (default: false)

Details
  • Edit tool description appends: "Files you Wrote this session can be Edited without a prior Read."
  • Reduces unnecessary round-trips when writing then immediately editing a file
Evidence

Edit after write (gated by tengu_editafterwrite_qpl, search for "Files you Wrote this session")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Subagent Report File Prevention [Gradual Rollout]#

Feature flag
tengu_sub_nomdrep_q7k On for this account, and not off by default

The flag server returned on for the one account this site reads, and nothing in this release compiles it off by default. The compiled default is shown below, and says which it is when we cannot read one: a fifth of gates compile in a string or a number rather than on or off, and most published releases have no gate table behind them at all. No client can see what the server returns for your account.

This account: on · anonymous baseline: on · compiled default in v2.1.91: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.91. It isn't a statement about your account. What a flag value here can and cannot tell you

What

Subagents are instructed to return findings as text in their final message instead of creating report/summary .md files.

Status

Feature-flagged via tengu_sub_nomdrep_q7k (default: false)

Details
  • Adds instruction: "Do NOT write report/summary/findings/analysis .md files. Return findings directly as your final assistant message — the parent agent reads your text output, not files you create."
Evidence

Subagent no-report instruction (gated by tengu_sub_nomdrep_q7k, search for "report/summary/findings/analysis .md files")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Ultraplan Cloud Planning UI [Gradual Rollout]#

Feature flag
tengu_ultraplan_config Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.91: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.91. It isn't a statement about your account. What a flag value here can and cannot tell you

What

The Ultraplan feature — which launches a planning session in Claude Code on the web — now has a fully functional interactive UI in the CLI.

Status

Feature-flagged via tengu_ultraplan_config (must have enabled: true)

Details
  • Typing "ultraplan" in a prompt triggers keyword detection and launches the /ultraplan flow
  • "Run ultraplan in the cloud?" dialog with time estimates and option to disable Remote Control
  • Plan approval UI with three choices: "Implement here" (inject into current conversation), "Start new session" (clear and start fresh with the plan), or "Cancel" (save plan to file)
  • Scrollable plan preview with ctrl+u/ctrl+d to scroll
  • If Remote Control is active, launching ultraplan disables it with a warning
  • Rejected plans are saved to {session}-ultraplan.md
Evidence

Ultraplan config and UI (gated by tengu_ultraplan_config, search for "Run ultraplan in the cloud?" and "Ultraplan approved")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.91. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

  • Added MCP tool result persistence override via _meta["anthropic/maxResultSizeChars"] annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation
  • Added disableSkillShellExecution setting to disable inline shell execution in skills, custom slash commands, and plugin commands
  • Added support for multi-line prompts in claude-cli://open?q= deep links (encoded newlines %0A no longer rejected)
  • Plugins can now ship executables under bin/ and invoke them as bare commands from the Bash tool
  • Fixed transcript chain breaks on --resume that could lose conversation history when async transcript writes fail silently
  • Fixed cmd+delete not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal
  • Fixed plan mode in remote sessions losing track of the plan file after a container restart, which caused permission prompts on plan edits and an empty plan-approval modal
  • Fixed JSON schema validation for permissions.defaultMode: "auto" in settings.json
  • Fixed Windows version cleanup not protecting the active version's rollback copy
  • /feedback now explains why it's unavailable instead of disappearing from the slash menu
  • Improved /claude-api skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy
  • Improved performance: faster stripAnsi on Bun by routing through Bun.stripANSI
  • Edit tool now uses shorter old_string anchors, reducing output tokens
System prompt

The system prompt was not captured for this release, so this page cannot say whether it moved.