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.117 v2.1.119newer

Claude Code v2.1.118

36 entries read diff v2.1.117 → v2.1.118 Markdown

This release introduces the /autofix-pr command for automated PR monitoring and fixing, adds the /plugin tag command for plugin release management, replaces the standalone Config tool with integrated settings UI, and brings significant infrastructure improvements including a new PostToolBatch hook event, WSL managed settings inheritance, custom theme creation, MCP tool hooks, and a new SSE-based sessions transport (SessionsV2Client). The /cost and /stats commands are now aliases for an expanded /usage command.

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

Changesopen

/autofix-pr Command#

What

A new slash command that monitors a PR for CI failures and review comments, then automatically investigates and pushes fixes.

Usage
/autofix-pr
/autofix-pr stop
Details
  • Can spawn either a background in-process agent or a remote autofix session (CCR)
  • Monitors the current PR continuously for CI failures or review comments
  • Automatically investigates issues and pushes fixes to the PR branch
  • Tracks monitoring state, preventing duplicate monitors with "Already monitoring" detection
  • Use /autofix-pr stop to stop monitoring
  • The remote variant shows "Spawning remote autofix session…" instead of the previous generic "Spawning remote Claude Code session…"
Evidence

Slash command definition (search for "autofix-pr") with description "Monitor and autofix any issues with the current PR". Background agent spawned via lG1 at line ~473108.

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.

/plugin tag Command#

What

A new slash command and CLI subcommand to create versioned git tags for plugin releases, with validation against plugin.json and marketplace entries.

Usage
/plugin tag [path] [--push] [--dry-run] [-f|--force]
claude plugin tag [path] [--push] [--dry-run] [-f|--force] [-m <msg>] [--remote <name>]
Details
  • Validates plugin.json and any enclosing marketplace manifest agree on name and version
  • Checks for uncommitted changes, existing tags, valid semver, and valid git ref names
  • Creates annotated git tags in the format {name}--v{version}
  • --push pushes the tag to the remote after creation
  • --dry-run previews what would be tagged without creating it
  • --force skips dirty-working-tree and tag-already-exists checks
  • CLI variant adds --message <msg> for custom tag annotation and --remote <name> for push target
  • Detailed error messages for version mismatches, missing manifests, and invalid configs
Evidence

Slash command help text (search for "Create a {name}--v{version} git tag") and CLI subcommand .command("tag [path]") at line ~652882.

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

PostToolBatch Hook Event#

What

A new hook event type that fires once after every tool call in a batch has resolved, before the next model request.

Details
  • Unlike PostToolUse which fires per-tool and may run concurrently for parallel tool calls, PostToolBatch fires exactly once with the full batch
  • Hook input includes tool_calls array with {tool_name, tool_input, tool_use_id, tool_response} for each call
  • Supports additionalContext return to inject content into the next model request
  • Can return "stopAgent": true to halt execution, showing "Execution stopped by PostToolBatch hook"
  • Available in hooks configuration under the event name "PostToolBatch"
Evidence

Schema definition (search for "PostToolBatch") at line ~263664. Hook input schema describes "Fired once after every tool call in a batch has resolved, before the next model request".

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

MCP Tool Hooks (mcp_tool)#

What

A new hook type that invokes an MCP server tool as the hook action, as an alternative to bash/command hooks.

Details
  • Configure with type: "mcp_tool" in hook definitions
  • Specify server (name of an already-configured MCP server) and tool (tool name on that server)
  • Supports arguments object with ${path} interpolation from hook input JSON
  • Optional timeout field for per-call timeout in seconds
  • Reads X-Mcp-Error-Code header from 401 responses for better error diagnostics
  • Not available for all hook events — logs "mcp_tool hooks are not available for the '<event>' hook event" when unsupported
Evidence

Hook type definition (search for "mcp_tool") and MCP tool schema fields (search for "Name of an already-configured MCP server to invoke").

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

WSL Managed Settings Inheritance#

What

WSL (Windows Subsystem for Linux) instances can now inherit managed settings from the Windows host's policy chain.

Details
  • A new wslInheritsWindowsSettings boolean setting controls this behavior
  • When set to true in a Windows admin-only source (HKLM registry or C:/Program Files/ClaudeCode/managed-settings.json), WSL reads managed settings from the full Windows policy chain
  • Windows sources take priority over Linux-native /etc/claude-code settings
  • Double opt-in required: admin enables the chain via HKLM/HKCU, user confirms via their own HKCU entry
  • Uses reg.exe queries via /mnt/c/Windows/System32/reg.exe for cross-environment access
  • Drop-in settings from C:/Program Files/ClaudeCode/managed-settings.d/ are also supported
Evidence

Schema description (search for "wslInheritsWindowsSettings") and WSL detection function pnH() at line ~50906.

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

Custom Theme Creation and Management#

What

Users can now create, edit, and manage custom color themes with fine-grained color token overrides.

Details
  • Custom themes are stored as JSON files in the user's themes directory (~/.claude/themes/)
  • Each theme specifies a name, base theme (dark or light), and color overrides
  • Color overrides accept rgb(r,g,b), #rrggbb, ansi256(n), or ansi:name formats
  • Custom themes appear in the /theme picker with a (custom) label
  • A "New custom theme…" option is available in the theme selector to create themes interactively
  • File watcher auto-reloads themes when JSON files are added, changed, or removed
  • Themes from plugins are also supported via a themes field in plugin.json or a themes/ directory
  • Plugin settings schema adds themesDirectories for specifying additional theme paths
Evidence

Theme creation flow (search for "__new_custom_theme__") and color validation (search for "Accepts rgb(r,g,b)" and "rgb(r,g,b) · #rrggbb · ansi:red").

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

--managed-settings CLI Flag#

What

A new CLI flag that accepts a JSON object of policy-tier settings from a spawning parent process (SDK use only).

Usage
claude --managed-settings '{"key": "value"}'
Details
  • Only honored when spawned by an SDK parent process
  • Ignored with a warning when passed outside SDK context: "--managed-settings ignored: only honored when spawned by an SDK parent"
  • Invalid JSON produces: "--managed-settings ignored: invalid JSON object"
  • Parsed settings are applied as "Enterprise managed settings (parent process)"
Evidence

CLI flag definition (search for "--managed-settings") and validation messages (search for "--managed-settings ignored").

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

--plan-mode-instructions CLI Flag#

What

A new CLI flag that lets users customize the plan-mode workflow instructions.

Usage
claude --print --plan-mode-instructions "Custom workflow instructions here"
Details
  • Replaces the default code-implementation phases in the plan-mode system reminder
  • The read-only enforcement preamble and ExitPlanMode protocol footer are always kept
  • Can only be used with --print mode; using it otherwise produces: "Error: --plan-mode-instructions can only be used with --print mode."
  • Also exposed as an agent frontmatter field planModeInstructions for programmatic configuration
Evidence

CLI option definition (search for "--plan-mode-instructions") and enforcement (search for "can only be used with --print mode").

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

Auto Mode Classifier $defaults Inheritance#

What

Agent definitions can now use the literal string "$defaults" in auto mode classifier sections to inherit built-in rules at a specific position.

Details
  • Works in allow, deny (soft_deny), and environment sections of the auto mode classifier
  • When $defaults is present, the built-in rules are inserted at that position in the list
  • Custom rules can appear before or after $defaults, enabling augmentation rather than replacement
  • The UI now distinguishes between modes: "Defaults also in effect:" (custom rules added alongside) vs "Defaults being replaced:" (custom rules replacing defaults)
Evidence

Variable definition do$ = "$defaults" and schema descriptions (search for "Include the literal string \"$defaults\" to inherit the built-in rules at that position").

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

Session Color Tags on Bridge Sessions#

What

The /color command now syncs color choices to the bridge session via API tags, enabling consistent color display across clients.

Details
  • When a bridge session ID is available, /color calls updateBridgeSessionColorTag to set a color: tag on the server-side session
  • Resetting to default removes all color tags
  • Uses the new QD6 function to manage color: prefixed tags via the sessions API
Evidence

Color tag update function QZ1 at line ~476042 (search for "color:") and tag prefix constant UD6 = "color:".

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

Unified /usage Command (replaces /cost)#

The standalone /cost command has been removed and consolidated into /usage. The /usage command now has "cost" and "stats" as aliases, so typing /cost or /stats still works. The description changed from "Show plan usage limits" to "Show session cost, plan usage, and activity stats". For thin-client (remote) sessions, /usage now fetches the remote container's cost via a get_session_cost control request instead of displaying $0.00.

Evidence

Command definition with aliases (search for "Show session cost, plan usage, and activity stats") and remote cost fetching (search for "Loading remote cost").

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

Config Tool Removed in Favor of Settings UI#

The standalone Config tool (which allowed the model to get/set settings via tool use) has been completely removed. All its functionality — theme, model, permissions, voice, memory, and other settings — is now managed through the /config slash command and settings UI. This simplifies the tool surface and prevents the model from changing settings without explicit user intent.

Evidence

Removal of var Fw7 = "Config" tool definition and all associated functions (sw7, tw7, ms$, ew7, $j7, Kj7, _j7, Aj7, Wj7, Gj7, Zj7) from v2.1.117.

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.

Broadcast Messaging Deprecated#

The to: "" broadcast mode for SendMessage in agent teams has been deprecated. The new behavior produces: "broadcast (to: \"\") is no longer supported — send a message per recipient". The team system prompt no longer mentions broadcast capability, directing agents to send individual messages instead.

Evidence

Deprecation message (search for "broadcast (to: \"*\") is no longer supported").

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

Improved Recap Messages#

The recap command now provides more specific error messages based on the failure reason:

  • No turns yet: "Nothing to recap yet — send a message first." (previously: generic "No recap available")
  • Generation failed: "Couldn't generate a recap. Run with --debug for details."
  • Cancelled: "Recap cancelled."
Evidence

New recap messages (search for "Nothing to recap yet" and "Couldn't generate a recap").

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

MCP Server Authentication Improvements#

When an MCP server returns 401, the error message now offers an "Authenticate" option for OAuth-capable servers: "requires authentication. Use 'Authenticate' if the upstream server uses OAuth, or check the headersHelper script and use 'Reconnect'." The previous version only suggested checking the headersHelper script.

Evidence

Updated authentication message (search for "Use 'Authenticate' if the upstream server uses OAuth").

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

Speculation Generalized from Bash to Shell#

The speculative execution boundary detection has been generalized from "Speculation paused: bash boundary" to "Speculation paused: shell boundary", reflecting broader shell support including PowerShell.

Evidence

New string "Speculation paused: shell boundary" replaces "Speculation paused: bash boundary".

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.

PowerShell Remove-Item Support in Memory Mode#

The memory agent's restricted shell commands now understand PowerShell Remove-Item (and aliases ri, del, erase, rd, rm, rmdir) for .md file deletion, not just Unix rm. This aligns with the cross-platform shell support.

Evidence

PowerShell command parser Z31 at line ~433184 (search for "Remove-Item" / "PowerShell Remove-Item").

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

Admin-Controlled Update Blocking#

Administrators can now disable auto-updates via managed settings. When disabled, users see: "Updates are disabled by your administrator. Contact your IT team to get the latest version." This supports enterprise environments with controlled rollout.

Evidence

Admin update blocking message (search for "Updates are disabled by your administrator").

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.

Plugin Autoupdate "Blocked by Pinner" Notifications#

When a plugin can't auto-update because another plugin pins it to a specific version, users now receive a clear notification explaining the hold: "Autoupdate held". The notification identifies which plugin is blocking the update and whether those pinning plugins are disabled.

Evidence

Autoupdate blocked notification type (search for "autoupdate-blocked-by-pinner" and "Autoupdate held").

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

Push Notification Tips#

New tips encourage users to enable push notifications:

  • "Get pinged on your phone when long tasks finish · enable push notifications in /config"
  • After session completion: "get pinged when Claude finishes · enable push notifications in"
Evidence

Tip definition (search for "push-notif" or "Get pinged on your phone").

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

Frontmatter Schema Validation Telemetry#

New telemetry tracks when plugin/skill frontmatter contains unknown keys or type mismatches against the expected schema. This helps identify misconfigured plugins without breaking them.

Evidence

Validation function pwH at line ~205424 (search for "tengu_frontmatter_shadow_unknown_key").

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

Anthropic Client Platform Header#

API requests now include an anthropic-client-platform header that identifies the entrypoint context (VSCode, remote, SDK, MCP, GitHub Action, local agent, Slack, or CLI). This enables better server-side analytics.

Evidence

Header function YDH() at line ~147245 (search for "anthropic-client-platform").

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

Fork Context Reference Tracking#

When forking sessions, the system now tracks a fork-context-ref linking the child to the parent context. This improves session lineage tracking for forked conversations.

Evidence

Fork context reference (search for "fork-context-ref" and "Failed to record fork-context-ref").

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

Stall Detection and Diagnostics#

A comprehensive stall detection system has been added that logs timing information for:

  • Stream idle partials: [Stall] stream_idle_partial lastChunkAgeMs=...
  • Classifier requests: start, progress, and finish with timing and outcome
  • Tool dispatch: start, end, and post-error with tool name and permission decision timing
  • Agent completion events

This helps diagnose performance bottlenecks and stuck sessions.

Evidence

Stall detection logs (search for "[Stall]"), with fields like promptTokensEst= and permissionDecisionMs=.

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

Improved Edit Tool Unicode Handling#

The Edit tool now attempts to match \uXXXX escape sequences and their literal Unicode character equivalents. If neither form matches, it provides a more helpful error message: "Edit also tried swapping \uXXXX escapes and their characters; neither form matched, so the mismatch is likely elsewhere in old_string.".

Evidence

Unicode swap functions $e8 and qe8 at line ~260927, and error hint (search for "swapping \\uXXXX escapes").

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

Fullscreen Renderer Memory Optimization#

The fullscreen renderer's pool reset logic has been optimized. Instead of resetting all pools every 5 minutes unconditionally, it now only resets the hyperlink pool when its size exceeds a threshold. The character pool is no longer reset, reducing memory churn.

Evidence

Structural change in class VH$ — conditional this.hyperlinkPool.size > i4K check before pool reset.

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

Byte Watchdog with Stall Detection Tiers#

The streaming byte watchdog now includes tiered stall detection with escalating timeouts (15s, 30s, 60s, 120s) before the final hard watchdog fires. Each tier logs [Stall] stream_idle_partial with byte count and timing, providing earlier visibility into stalled streams.

Evidence

Stall tier array f = [15000, 30000, 60000, 120000] in function Md_ at line ~145358.

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

User OAuth and Ant Auth Profile Support#

The credentials system now recognizes user_oauth authentication type alongside oidc_federation, enabling new identity provider flows. The status display distinguishes between profile types (explicit vs. implicit) and shows the authentication type. A new logout hint tells users: "Run \ant auth logout\, or remove the active profile under ~/.config/anthropic/configs/.".

Evidence

Authentication type detection in $y8 at line ~101631 (search for "user_oauth") and logout hint (search for "ant auth logout").

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.

Cache Diagnosis Beta Header Handling#

Improved handling of the cache diagnosis beta feature. If the server rejects the beta header, it's now detected and dropped gracefully: "[cache-diagnosis] server rejected beta — dropping header latch". A retry mechanism ("retry:cache-diagnosis-beta") handles transient failures.

Evidence

Cache diagnosis handling (search for "cache-diagnosis" and "retry:cache-diagnosis-beta").

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

Atomic File Writes#

A new rcq function implements atomic file writes using temp-file-then-rename, with fallback to copy+unlink for cross-device scenarios (EXDEV, EPERM, EEXIST). This prevents data corruption from interrupted writes.

Evidence

Atomic write function at line ~145955 (search for ".tmp." in the write context).

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.

3 entries

Bug Fixesopen

#

  • Fixed potential data loss when writing files across filesystem boundaries — atomic writes now handle EXDEV and EPERM errors gracefully (search for "EXDEV")
  • Fixed session reattachment cleanup — CLAUDE_BRIDGE_REATTACH_SESSION and CLAUDE_BRIDGE_REATTACH_SEQ environment variables are now properly cleared on TUI restart to prevent stale reattachment (search for "CLAUDE_BRIDGE_REATTACH_SESSION")
  • Improved credentials lock handling with proper retry logic and error reporting: "Could not acquire credentials lock at ... after N retries" (search for "credentials lock")
  • Fixed potential memory leak in fullscreen renderer where character pools were unnecessarily reset every 5 minutes

Pro Trial Expired Options [In Development]#

What

A new slash command pro-trial-expired for handling expired Pro plan Claude Code trials.

Status

Stubbed — isEnabled returns !1 (false) and isHidden is !0 (true).

Details
  • Described as "Options shown when the Pro plan Claude Code trial has ended"
  • Includes a user-facing message "Your Claude Code trial has ended." and "Upgrade to Max" option
  • The "No, don't ask again" dismiss option with value "decline-dont-ask" is also wired up
  • Infrastructure is complete but the command is hidden and disabled
Evidence

Command definition (search for "pro-trial-expired") with isEnabled: () => { return !1; } and isHidden: !0.

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

Sessions V2 Client (SSE Transport) [In Development]#

What

A complete replacement for the WebSocket-based SessionsWebSocket client, using Server-Sent Events (SSE) over HTTP.

Status

Infrastructure added. The new SessionsV2Client coexists with the old WebSocket client.

Details
  • Uses /events/stream SSE endpoint for receiving events (replacing WebSocket)
  • Uses POST /events for sending events (replacing WebSocket send)
  • Includes reconnection budget tracking with backoff
  • Supports from_sequence_num for event replay on reconnect
  • Liveness timeout detection with automatic reconnection
  • Force reconnect capability
  • Full control request/response protocol over HTTP
Evidence

New client class (search for "SessionsV2Client") with log prefixes like "[SessionsV2Client] Connecting to", "[SessionsV2Client] Connected", etc.

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

1 entry

Notesopen

#

  • The /cost command still works — it is now an alias for /usage, which provides expanded session cost, plan usage, and activity stats
  • The Config tool removal means the model can no longer change settings autonomously; all settings changes now go through the interactive /config UI
  • WSL managed settings inheritance requires explicit opt-in from both the Windows admin (via HKLM or Program Files config) and the user (via HKCU) — it is not enabled by default
  • Custom themes require the user themes directory (~/.claude/themes/); themes are auto-detected and hot-reloaded on file changes
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.118. 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 vim visual mode (v) and visual-line mode (V) with selection, operators, and visual feedback
  • Merged /cost and /stats into /usage — both remain as typing shortcuts that open the relevant tab
  • Create and switch between named custom themes from /theme, or hand-edit JSON files in ~/.claude/themes/; plugins can also ship themes via a themes/ directory
  • Hooks can now invoke MCP tools directly via type: "mcp_tool"
  • Added DISABLE_UPDATES env var to completely block all update paths including manual claude update — stricter than DISABLE_AUTOUPDATER
  • WSL on Windows can now inherit Windows-side managed settings via the wslInheritsWindowsSettings policy key
  • Auto mode: include "$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing it
  • Added a "Don't ask again" option to the auto mode opt-in prompt
  • Added claude plugin tag to create release git tags for plugins with version validation
  • --continue/--resume now find sessions that added the current directory via /add-dir
  • /color now syncs the session accent color to claude.ai/code when Remote Control is connected
  • The /model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL gateway
  • When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in /doctor and the /plugin Errors tab
  • Fixed /mcp menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with headersHelper, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401
  • Fixed MCP servers whose OAuth token response omits expires_in requiring re-authentication every hour
  • Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's insufficient_scope 403 names a scope the current token already has
  • Fixed an unhandled promise rejection when an MCP server's OAuth flow times out or is cancelled
  • Fixed MCP OAuth refresh proceeding without its cross-process lock under contention
  • Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token, causing unexpected "Please run /login" prompts
  • Fixed OAuth token refresh failing when the server revokes a token before its local expiry time
  • Fixed credential save crash on Linux/Windows corrupting ~/.claude/.credentials.json
  • Fixed /login having no effect in a session launched with CLAUDE_CODE_OAUTH_TOKEN — the env token is now cleared so disk credentials take effect
  • Fixed unreadable text in the "new messages" scroll pill and /plugin badges
  • Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with --dangerously-skip-permissions
  • Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than Stop or SubagentStop
  • Fixed prompt hooks re-firing on tool calls made by an agent-hook verifier subagent
  • Fixed /fork writing the full parent conversation to disk per fork — now writes a pointer and hydrates on read
  • Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input
  • Fixed connecting to a remote session overwriting your local model setting in ~/.claude/settings.json
  • Fixed typeahead showing "No commands match" error when pasting file paths that start with /
  • Fixed plugin install on an already-installed plugin not re-resolving a dependency installed at the wrong version
  • Fixed unhandled errors from file watcher on invalid paths or fd exhaustion
  • Fixed Remote Control sessions getting archived on transient CCR initialization blips during JWT refresh
  • Fixed subagents resumed via SendMessage not restoring the explicit cwd they were spawned with
System prompt

1 new prompt appeared. 1 prompt disappeared. 22 of 23 tool descriptions changed.

Agent SDK, print mode