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 olderv1.0.119 v1.0.122newer

Claude Code v1.0.120

26 entries read diff v1.0.119 → v1.0.120 Markdown

Version 1.0.120 introduces persistent file history across session resumes, a redesigned filesystem permissions model with simplified configuration, enhanced MCP server support with dynamic header generation, and critical security improvements for symlink handling.

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

Changesopen

File History Persistence Across Sessions#

What: File backup snapshots are now persisted to session logs and restored when resuming previous sessions, preserving the complete file modification history across Claude Code restarts.

How it works:

  • During execution, file history snapshots are automatically saved to the session log file
  • When resuming a session (e.g., claude --resume <session-id>), backup files from the previous session are hard-linked or copied to the new session directory
  • The file history UI state is fully restored, showing which files were tracked and their modification history

Details:

  • Session log entries now include a new type: "file-history-snapshot" at insertFileHistorySnapshot() at line 438449
  • New function a_1() at line 384641 handles cross-session backup file migration
  • New function t11() at line 384611 generates session-specific backup file paths
  • New function n_1() at line 384636 processes snapshots to extract tracked files for UI restoration
  • Session log class now includes fileHistorySnapshots Map at line 438396
  • Backup files are stored per session in ~/.config/claude/file-history/<sessionId>/
Evidence

insertFileHistorySnapshot() at line 438449, a_1() at line 384641, t11() at line 384611, n_1() at line 384636, fileHistorySnapshots field at line 438396

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

MCP Dynamic Header Generation with headersHelper#

What: MCP server configurations can now specify a shell command that generates HTTP headers dynamically at runtime, enabling secure credential management and token rotation.

How to use:

{
  "mcpServers": {
    "my-api": {
      "transport": {
        "type": "sse",
        "url": "https://api.example.com/sse",
        "headers": {
          "X-Static-Header": "value"
        },
        "headersHelper": "~/scripts/get-auth-token.sh"
      }
    }
  }
}

Details:

  • The headersHelper command must output valid JSON with string key-value pairs
  • Dynamic headers override static headers (merge strategy: {...static, ...dynamic})
  • Includes workspace trust security checks for project/local-scoped servers at Xo6() at line 393477
  • Comprehensive validation ensures proper JSON format and string values
  • Errors are logged with telemetry event tengu_mcp_headersHelper_missing_trust
  • Use cases: fetching tokens from credential managers, generating time-based auth, reading secrets from environment-specific sources
Evidence

Xo6() function at line 393477, uw0() merge function at line 393531, schema definitions at lines 353050-353074

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

Unix Domain Socket Support for Network Permissions#

What: Network permissions now support Unix domain sockets for local IPC, enabling tools like SSH agents and Docker to work within the sandbox.

How to configure:

{
  "permissions": {
    "network": {
      "allowUnixSockets": true  // Allow all Unix sockets
    }
  }
}

Or with specific paths:

{
  "permissions": {
    "network": {
      "allowUnixSockets": [
        "/var/run/docker.sock",
        "~/.ssh/agent.sock"
      ]
    }
  }
}

Details:

  • Three modes: true (allow all), false (block all - default), or array of specific socket paths
  • Currently implemented for macOS sandbox profiles using (remote unix-socket) directive
  • Essential for Docker, SSH agents, and other development tools requiring local IPC
  • Type: boolean | string[]
Evidence

Schema definition at lines 354206-354217, implementation at lines 374968-374975, parameter usage at line 375216

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.

SlashCommand Tool Validation#

What: The internal SlashCommand tool now includes comprehensive input validation before execution, catching errors early and providing clear error messages.

Details:

  • Validates command format with error code 1 at validateInput() at line 425333
  • Checks if command exists with error code 2
  • Verifies command can be loaded with error code 3
  • Detects disableModelInvocation conflicts with error code 4
  • Ensures command is prompt-based with error code 5
  • Validation occurs before permission checks, improving error reporting
Evidence

validateInput() method at lines 425333-425369 in X21 tool definition

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

Enhanced Bash Command Analysis#

What: Improved detection of shell variable expansion and command substitution in bash commands for more accurate file path extraction.

Details:

  • Now detects patterns like $VARIABLE and $(command) in command arguments at Ng6() at line 382386
  • Sets mayHaveUnknownFiles flag when variable expansion is detected
  • Prevents false positives in automatic file reading after bash execution
  • More conservative approach to file permission pre-approval
Evidence

Variable expansion detection at lines 382407-382412 in Ng6() function

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.

Redesigned Filesystem Permissions Model#

What: The filesystem permissions configuration has been completely redesigned with a simplified, asymmetric approach: reads use denylist-only mode, writes use allowlist-only mode.

Old model (v1.0.119):

{
  "permissions": {
    "filesystem": {
      "read": {
        "allowAllExcept": ["/etc/", "/private/"]
      },
      "write": {
        "denyAllExcept": ["/home/user/project/"]
      }
    }
  }
}

New model (v1.0.120):

{
  "permissions": {
    "filesystem": {
      "read": {
        "denyOnly": ["/etc/passwd", "/private/keys/"]
      },
      "write": {
        "allowOnly": ["/home/user/project/"],
        "includeDefaults": true,
        "denyWithinAllow": ["./.claude/"]
      }
    }
  }
}

Key differences:

  • Read permissions: Only denyOnly mode (assumes open by default, deny specific paths)
  • Write permissions: Only allowOnly mode (assumes closed by default, allow specific paths)
  • Lost feature: Can no longer do restrictive read permissions (denyAllExcept for reads is removed)
  • New feature: denyWithinAllow allows exceptions within allowed write paths
  • Breaking change: Existing v1.0.119 configurations are incompatible
Evidence

New schemas at lines 354053-354067 (ew9 and Aq9), old schemas removed from lines 354007-354030 (y10 and k10), new implementation at lines 374904-374938 (ob6() and tb6())

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

Tool Output Schemas#

What: Several tools now include explicit outputSchema definitions alongside their existing inputSchema, improving type safety and documentation.

Tools updated:

  • Read tool: outputSchema at th6 at line 381201
  • Edit tool: outputSchema at yGB at line 395229
  • MultiEdit tool: outputSchema at xo6 at line 395850
  • Write tool: outputSchema at co6 at line 396008
  • Bash tool: outputSchema at np6 at line 387039
  • Grep tool: outputSchema at sW5 at line 420771
  • WebFetch tool: outputSchema at bW5 at line 417012
  • SlashCommand tool: outputSchema at XX5 at line 425324
Evidence

Multiple schema definitions across tool implementations

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

Documentation URL Updates#

What: Internal documentation URLs have been updated from docs.anthropic.com to docs.claude.com.

Examples:

  • Permissions docs: https://docs.claude.com/en/docs/claude-code/iam#configuring-permissions
  • Environment variables: https://docs.claude.com/en/docs/claude-code/settings#environment-variables
  • Hooks documentation: https://docs.claude.com/en/docs/claude-code/hooks
  • Claude Code docs map: https://docs.claude.com/en/docs/claude-code/claude_code_docs_map.md
Evidence

Cq9 object at line 354656, pQ5 variable at line 403791, version constants at line 371686

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.

Consumer Terms Update UI#

What: Two new UI components display information about updates to Anthropic's Consumer Terms and Privacy Policy.

Details:

  • Pre-acceptance message function pW5() at line 418651 (effective September 28, 2025)
  • Post-acceptance message function iW5() at line 418738
  • Includes information about model training opt-in and data retention changes
  • Provides links to updated terms, privacy policy, and announcement
Evidence

pW5() at line 418651, iW5() at line 418738

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.

Session Log Transcript Format#

What: Session log transcripts now include a fileHistorySnapshots field in addition to existing fields.

Format change:

{
  date, messages, fullPath, value, created, modified,
  firstPrompt, messageCount, isSidechain, leafUuid,
  summary, checkpoints,
  fileHistorySnapshots,  // NEW
  gitBranch
}
Evidence

cRB() function at line 438159, new parameter at line 438184

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

Removed Redundant Slash Command Execution Logic#

What: Removed duplicate condition check in slash command processing that always evaluated to true.

Details:

  • Old code at line 1373: if (!0) Y(!0); - condition always true, always executed
  • New code at line 1499: Y(!0); - executes directly without redundant check
  • No functional change, just cleaner code
Evidence

Comparison of lNB() function structure at lines 424900-425196

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

Stream Import Refactoring#

What: Changed stream module import from default import to named import for better clarity.

Details:

  • Old: import dFQ from "stream"; (line 338181 removed)
  • New: import { PassThrough as rr5 } from "stream"; (line 443623 added)
  • More explicit about what's being imported
  • Better tree-shaking support
Evidence

Import statement change at line 443623

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.

File History Cleanup on Session Expiry#

What: New cleanup function removes expired file history backup directories based on the configured retention period.

Details:

  • Function yr5() at line 442733 removes backup directories older than retention threshold
  • Respects cleanupPeriodDays setting from configuration
  • Returns statistics: { messages: count, errors: count }
  • Integrated into session cleanup routine at rQQ() at line 442760
  • Empty directories are removed after cleanup
Evidence

yr5() at line 442733, integration at line 442760 (previously uQQ())

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.

Documentation Reference Updates#

What: Internal documentation and error message references updated across the codebase.

Details:

  • Version updated from 1.0.119 to 1.0.120 in constants
  • README URL updated: https://docs.claude.com/s/claude-code
  • Issue reporting: https://github.com/anthropics/claude-code/issues
Evidence

Version constants at Gt() and RU() at lines 371752-371755

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 Internal Functions#

What: Several internal functions were removed as part of the permissions model refactoring.

Removed functions:

  • sBB() - Generic allow/deny rule generator (line 374871-374901)
  • pBB() - Old read permission default paths (line 374680-374713)
  • i9B() - Old bash file path analyzer (line 382301-382346)
  • Various permission getter functions: ZQB(), GQB(), YQB(), pb6(), ib6(), JQB() (lines 375215-375242)

Reason: Replaced by new permission model implementation with separate read/write functions.

Evidence

Diff sections showing removed functions

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

GitHub Actions Workflow Variables#

What: GitHub Actions workflow YAML templates updated (renamed internal variables).

Details:

  • Variables wDB and qDB renamed to PDB and jDB
  • No functional changes to the workflows themselves
  • Both templates remain identical in content
Evidence

Variables at lines 408499 and 408550

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.

1 entry

Verification Checklistopen

#

  • [x] File history persistence verified as NEW in v1.0.120 (did not exist in v1.0.119)
  • [x] Permissions model verified as completely redesigned, not enhanced
  • [x] MCP headersHelper verified as NEW functionality
  • [x] Symlink resolution verified as NEW security feature
  • [x] Unix socket support verified as NEW capability
  • [x] All major claims include specific function names and line numbers
  • [x] Distinguished between NEW and ENHANCED features
  • [x] Excluded internal refactoring with no user impact
  • [x] Provided concrete usage examples for new features
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v1.0.120. 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.

  • Fix input lag during typing, especially noticeable with large prompts
  • Improved VSCode extension command registry and sessions dialog user experience
  • Enhanced sessions dialog responsiveness and visual feedback
  • Fixed IDE compatibility issue by removing worktree support check
  • Fixed security vulnerability where Bash tool permission checks could be bypassed using prefix matching
System prompt

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