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.30 v2.1.32newer

Claude Code v2.1.31

12 entries read diff v2.1.30 → v2.1.31 Markdown

This release introduces a major expansion of the Persistent Agent Memory system with a configuration UI, three memory scopes (user, project, local), and MEMORY.md-based storage. It also adds streamlined SDK output message types, improved error messages with actual file size limits, enhanced tool usage instructions in the system prompt, and a session resume hint on exit.

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

Changesopen

Persistent Agent Memory System [Gradual Rollout]#

What

A comprehensive persistent memory system that lets Claude remember insights, patterns, and learnings across conversations, stored in MEMORY.md files within configurable directory scopes.

Usage

Agent memory is configured through a new interactive dialog accessible during onboarding or settings. Users choose one of:

  • User scope (~/.claude/agent-memory/) -- general learnings across all projects
  • Project scope (.claude/agent-memory/) -- project-specific, shared via version control
  • Local scope (.claude/agent-memory-local/) -- project-specific, not checked into version control
  • None -- no persistent memory
Details
  • Memory is stored in MEMORY.md files that are automatically loaded into the system prompt
  • Claude is instructed to organize memory semantically by topic, not chronologically
  • Records insights about problem constraints, strategies that worked or failed, and lessons learned
  • Claude proactively updates memory as it discovers useful patterns during work
  • MEMORY.md is truncated at 200 lines with a warning when exceeded, encouraging users to compact or reorganize
  • When MEMORY.md is empty, Claude is prompted to start recording learnings for future sessions
  • Can be disabled with CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 environment variable
Evidence

Persistent Agent Memory feature with configuration UI (search for "Persistent Agent Memory", "Configure agent memory", "Organize memory semantically by topic", and "no persistent memory"). Gated by tengu_oboe feature flag (default !1 = false).

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

Streamlined SDK Output Types#

What

Two new message types for SDK consumers that provide a simplified view of Claude's output, stripping away thinking blocks and tool call details.

Details
  • streamlined_text -- preserves the text content from assistant messages but removes thinking and tool_use blocks
  • streamlined_tool_use_summary -- replaces verbose tool_use blocks with a human-readable summary string (e.g., "Read 2 files, wrote 1 file")
  • These message types are filtered out in the normal CLI transport layer and are intended for SDK streaming consumers
  • Marked as @internal in the schema descriptions
Evidence

New Zod schema types (search for "streamlined_text" and "streamlined_tool_use_summary")

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

Session Resume Hint on Exit#

What

When a session ends in a TTY terminal, Claude Code now displays a dimmed hint showing the exact command to resume that session.

Details
  • Displays Resume this session with: claude --resume <session-id> when exiting
  • Only shown in TTY mode (not in piped/scripted contexts)
  • Uses the session name if available, or the session ID
Evidence

Resume hint on exit (search for "Resume this session with:")

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

Expanded Tool Usage Instructions in System Prompt#

The system prompt now provides individual, per-tool instructions for when to use dedicated tools instead of Bash, replacing the previous single-paragraph format. The new format:

  • Lists each tool explicitly: Read instead of cat/head/tail/sed, Edit instead of sed/awk, Write instead of cat with heredoc, Glob instead of find/ls, Grep instead of grep/rg
  • Uses stronger wording: "Do NOT use the [Bash] to run commands when a relevant dedicated tool is provided"
  • Emphasizes this as "CRITICAL to assisting the user"
  • Wraps the tool-specific lines inside a top-level instruction, creating a clearer hierarchy

Previously, Glob and Grep were not explicitly mentioned as alternatives to bash commands.

Evidence

Expanded tool usage policy (search for "exclusively for system commands and terminal operations that require shell execution" and "Do NOT use the")

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

Improved Error Messages for Large Files#

Error messages for oversized PDFs and requests now include the actual size limits and suggest pdftotext as a specific alternative tool.

  • Old: "PDF too large. Try reading the file a different way (e.g., extract text with a CLI tool)."
  • New: "PDF too large (max N pages, Xmb). Try reading the file a different way (e.g., extract text with pdftotext)."
  • Old: "Request too large. Try with a smaller file."
  • New: "Request too large (max Xmb). Try with a smaller file."
Evidence

Improved error messages with limits (search for "PDF too large (" and "Request too large (")

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

Conditional Pricing in Model Selector#

Model descriptions in the model picker now conditionally show pricing information based on the user's account type. First-party (subscription) users see cost indicators, while API users do not.

Evidence

Conditional pricing display (search for H4() !== "firstParty" in model selector functions near line ~147370)

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

Permission Mode: Delegate Description#

The delegate permission mode now has an explicit description in the schema: "Delegate mode, restricts team leader to only Teammate and Task tools." Previously the mode existed in the enum but lacked a description string.

Evidence

Delegate mode documentation (search for "delegate" in the permission mode .describe() string)

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

Agent Teams Plan Gating#

Agent Teams (TeammateTool, SendMessage, spawnTeam) now checks plan eligibility before allowing team operations. Users on ineligible plans receive a clear error message instead of a silent failure.

Evidence

Plan check for Agent Teams (search for "Agent Teams is not yet available on your plan.")

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

Keybindings Schema URL Migration#

The JSON schema URL for keybindings configuration has migrated from Anthropic's platform domain to SchemaStore, a public schema registry.

  • Old: https://platform.claude.com/docs/schemas/claude-code/keybindings.json
  • New: https://www.schemastore.org/claude-code-keybindings.json
Evidence

Schema URL change (search for "schemastore.org/claude-code-keybindings.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.

Tool Permission Context in System Prompt#

The system prompt now includes context about how tool permissions work, explaining that tools are executed in a user-selected permission mode and that denied tool calls should not be re-attempted without adjusting the approach.

Evidence

Permission context in system prompt (search for "Tools are executed in a user-selected permission mode")

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

WebSocket Interval-Based Keepalive#

A new periodic interval-based keepalive mechanism has been added to the WebSocket transport, supplementing the existing activity-triggered keepalive. This should improve connection stability during idle periods in remote sessions.

Evidence

New keepalive interval (search for "WebSocketTransport: Sent keep_alive (interval)" and keepaliveInterval)

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

Tool Names in Messages [In Development]#

What

A feature that changes how deferred tool search prompts are constructed when tool names are injected into messages.

Status

Feature-flagged via tengu_tst_names_in_messages (default false)

Details
  • Controlled by CLAUDE_CODE_TST_NAMES_IN_MESSAGES environment variable or the tengu_tst_names_in_messages feature flag
  • When enabled, returns a different tool search prompt variant (CS9) instead of the default
  • Appears to change how the ToolSearchTool presents its available tools list
Evidence

Tool names in messages feature (search for "CLAUDE_CODE_TST_NAMES_IN_MESSAGES", gated by tengu_tst_names_in_messages)

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.31. 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 session resume hint on exit, showing how to continue your conversation later
  • Added support for full-width (zenkaku) space input from Japanese IME in checkbox selection
  • Fixed PDF too large errors permanently locking up sessions, requiring users to start a new conversation
  • Fixed bash commands incorrectly reporting failure with "Read-only file system" errors when sandbox mode was enabled
  • Fixed a crash that made sessions unusable after entering plan mode when project config in ~/.claude.json was missing default fields
  • Fixed temperatureOverride being silently ignored in the streaming API path, causing all streaming requests to use the default temperature (1) regardless of the configured override
  • Fixed LSP shutdown/exit compatibility with strict language servers that reject null params
  • Improved system prompts to more clearly guide the model toward using dedicated tools (Read, Edit, Glob, Grep) instead of bash equivalents (cat, sed, grep, find), reducing unnecessary bash command usage
  • Improved PDF and request size error messages to show actual limits (100 pages, 20MB)
  • Reduced layout jitter in the terminal when the spinner appears and disappears during streaming
  • Removed misleading Anthropic API pricing from model selector for third-party provider (Bedrock, Vertex, Foundry) users
System prompt

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