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.1 v2.1.3newer

Claude Code v2.1.2

9 entries read diff v2.1.1 → v2.1.2 Markdown

This release adds a new permission explainer feature that shows risk assessments for tool actions, improves git commit attribution handling for --amend operations, and removes the experimental bash output summarization system. It also adds winget installation detection on Windows, better image validation, and fixes for transient git states during commit attribution.

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

Changesopen

Permission Explainer [Gradual Rollout]#

What

A new feature that analyzes tool use requests and displays risk assessments (LOW/MEDIUM/HIGH) with explanations when Claude requests permissions.

Details
  • Evaluates commands before execution and categorizes risk levels
  • LOW risk: Standard dev workflows (git operations, tests, installs, builds)
  • MEDIUM risk: Bulk deletions, complex shell pipelines, config modifications
  • HIGH risk: Dangerous or irreversible operations, system-level changes
  • Only displays warnings for MEDIUM and HIGH risk actions
  • Controlled by tengu_permission_explainer feature flag
  • Can be enabled via PERMISSION_EXPLAINER_ENABLED=true environment variable
Evidence

Hu2() at line 417436 (permission explainer generator, contains "tengu_permission_explainer")

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.

Windows Winget Installation Detection#

What

Claude Code now detects when it was installed via Windows Package Manager (winget) for better installation source tracking.

Details
  • Detects winget installations by checking execution path patterns
  • Recognizes Microsoft\WinGet\Packages and Microsoft\WinGet\Links paths
  • Installation source now reports "winget" instead of "unknown" on Windows
Evidence

KF0() at line 370058 (winget detection, contains /Microsoft[/\\]WinGet[/\\]Packages/i)

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

Improved Git Commit Attribution for Amends#

What

Git commit attribution now properly handles git commit --amend operations by recalculating and replacing existing Claude trailers.

Details
  • Detects when a commit command includes --amend
  • Strips existing Claude attribution trailers before recalculating
  • Properly replaces Claude-Generated-By, Claude-Steers, Claude-Permission-Prompts, Claude-Escapes, and Claude-Plan fields
  • Prevents duplicate or stale attribution data in amended commits
Evidence

v$7() at line 531681 (amend attribution handler, contains "--amend" detection and trailer replacement)

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.

Transient Git State Detection#

What

Commit attribution now skips processing during transient git states to prevent interference with ongoing operations.

Details
  • Detects rebase, merge, cherry-pick, and bisect operations
  • Checks for .git/rebase-merge, .git/rebase-apply, .git/MERGE_HEAD, .git/CHERRY_PICK_HEAD, .git/BISECT_LOG
  • Prevents attribution from running during these incomplete states
Evidence

_RB() at line 226382 (transient state checker, contains ".git/rebase-merge")

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.

Image Size Validation#

What

Validates image sizes before sending to the API and provides clear error messages when images exceed limits.

Details
  • Checks base64-encoded image sizes against API limits
  • Provides human-readable size information (KB/MB) in error messages
  • Reports which specific images are too large when multiple exceed limits
  • Suggests resizing images before sending
Evidence

urB() at line 278763 (image validator, contains "exceeds API limit")

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.

Bash Security Check for Malformed Token Injection#

Commands with ambiguous syntax containing command separators (;, &&, ||) combined with unbalanced brackets, parentheses, or quotes now trigger permission prompts to prevent potential injection attacks.

Evidence

_j5() at line 366196 (security checker, contains "MALFORMED_TOKEN_INJECTION")

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

Windows Managed Settings Migration Warning#

Users on Windows with managed settings in the deprecated C:\ProgramData\ClaudeCode\ location now see a warning notification to contact their administrator about migrating to C:\Program Files\ClaudeCode\.

Evidence

K89() at line 475350 (deprecation warning, contains "ProgramData\\ClaudeCode\\managed-settings.json")

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.

Enhanced Plugin Management UI#

The plugin management interface has been refactored with improved state handling, better MCP server grouping under parent plugins, and clearer status indicators for pending operations.

Evidence

gK9() at line 512088 (plugin manager, contains "pendingToggle")

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

2 entries

Bug Fixesopen

#

  • Removed experimental bash output summarization feature that could cause inconsistent output handling (j22() at line 299915, contained "bash_output_summarization")
  • Removed tengu_tool_result_persistence feature flag and associated tool result truncation logic that was gated behind it (V71() at line 294547)
  • Removed background plan verification agent (VerifyPlanExecution) that ran automatically after plan completion (i39() at line 474724)
  • Fixed plan mode tracking to properly count user prompts since plan exit (Zp5() at line 403780)

Custom Environment Variables Warning#

What

Infrastructure added to detect and warn about custom environment variables in project/local settings.

Status

Code exists but appears to be internal validation only.

Details
  • Maintains an allowlist (i9A) of known/safe environment variable names
  • Can detect when project settings contain non-allowlisted env vars
  • Function iC9() returns list of settings files with custom env vars
Evidence

uC9() at line 530822 (env validator, checks against i9A allowlist)

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

1 entry

Notesopen

#

The bash output summarization feature has been completely removed. If you relied on the automatic summarization of verbose command output, you may see more raw output in tool results. The feature was experimental and gated behind feature flags.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.2. 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 source path metadata to images dragged onto the terminal, helping Claude understand where images originated
  • Added clickable hyperlinks for file paths in tool output in terminals that support OSC 8 (like iTerm)
  • Added support for Windows Package Manager (winget) installations with automatic detection and update instructions
  • Added Shift+Tab keyboard shortcut in plan mode to quickly select "auto-accept edits" option
  • Added FORCE_AUTOUPDATE_PLUGINS environment variable to allow plugin autoupdate even when the main auto-updater is disabled
  • Added agent_type to SessionStart hook input, populated if --agent is specified
  • Fixed a command injection vulnerability in bash command processing where malformed input could execute arbitrary commands
  • Fixed a memory leak where tree-sitter parse trees were not being freed, causing WASM memory to grow unbounded over long sessions
  • Fixed binary files (images, PDFs, etc.) being accidentally included in memory when using @include directives in CLAUDE.md files
  • Fixed updates incorrectly claiming another installation is in progress
  • Fixed crash when socket files exist in watched directories (defense-in-depth for EOPNOTSUPP errors)
  • Fixed remote session URL and teleport being broken when using /tasks command
  • Fixed MCP tool names being exposed in analytics events by sanitizing user-specific server configurations
  • Improved Option-as-Meta hint on macOS to show terminal-specific instructions for native CSIu terminals like iTerm2, Kitty, and WezTerm
  • Improved error message when pasting images over SSH to suggest using scp instead of the unhelpful clipboard shortcut hint
  • Improved permission explainer to not flag routine dev workflows (git fetch/rebase, npm install, tests, PRs) as medium risk
  • Changed large bash command outputs to be saved to disk instead of truncated, allowing Claude to read the full content
  • Changed large tool outputs to be persisted to disk instead of truncated, providing full output access via file references
  • Changed /plugins installed tab to unify plugins and MCPs with scope-based grouping
  • Deprecated Windows managed settings path C:\ProgramData\ClaudeCode\managed-settings.json - administrators should migrate to C:\Program Files\ClaudeCode\managed-settings.json
  • [SDK] Changed minimum zod peer dependency to ^4.0.0
  • [VSCode] Fixed usage display not updating after manual compact
System prompt

No change to the system prompt since v2.1.1.

Agent SDK, print mode