This continues my digest of v2.1.294 to v2.1.300. The source is the Claude Code releases page. Dates there show day and month only, and the notes are truncated in places, so I’m reporting what I saw and haven’t tested these changes.

v2.1.302 (October 16)

Behavior changes worth checking

  • Fork subagents on by default. subagent_type: "fork" is now enabled in claude -p, the Agent SDK, the desktop app and VS Code. Set CLAUDE_CODE_FORK_SUBAGENT=0 to turn it off.
  • Background subagents. The desktop app and VS Code now always run the main conversation’s subagents in the background.
  • Default permission mode on third-party providers. claude -p and Agent SDK sessions with no permission mode now start in default mode on third-party providers. --permission-mode auto still selects auto. If you run scripts through Bedrock or Vertex and expected looser behavior, this is the line to read.
  • New variable: CLAUDE_CODE_AUTO_MODE_MODEL selects the model for the client-side auto mode classifier. It doesn’t change the server-side auto mode.

Performance and fixes

  • The Read tool no longer loads image files entirely into memory, and image sources over 128 MB are refused.
  • Startup is faster with many plugins enabled, especially on Windows.
  • Fixed every file write being refused for projects on exFAT or FAT32 drives (Windows).
  • Fixed a “Prompt is too long” error during compaction, a Vertex/Bedrock “Extra inputs are not permitted” error after switching providers mid-session, and a prompt-cache miss for tools loaded through ToolSearch.

v2.1.301 (October 15)

Added

  • CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS: unattended retry mode can end a request when a usage limit resets too far away, instead of waiting.
  • Vim mode % motion to jump to the matching bracket, alone or with d, c and y.
  • classifier_verdict, permission_mode and classifier_category fields on OpenTelemetry tool_decision events, so auto-mode classifier decisions can be told apart from permission rules.
  • VS Code: LaTeX math rendering, a “Get more usage” link on the usage-limit banner, and panel fixes.

Fixes worth knowing

  • Quitting no longer removes a WorktreeCreate hook’s worktree without asking when it may hold unpushed commits. That is a data-loss guard, and relevant if you use worktrees like in the Codex worktrees post.
  • Grep and Glob now report an error when the search program fails, instead of reporting no matches. Before, a failure could look like “nothing found.”
  • The Read tool no longer reads binary files (.xlsm, .parquet, .epub, .heic) as text.
  • The fable/best alias retries once on the previous Fable model when the newest one isn’t available to your organization.
  • Vim mode no longer sometimes stays in INSERT after Escape.

Changed

  • Switching to a model with a smaller context window summarizes the conversation with the previous model first.
  • Faster rendering while long-running subagents work.

What stood out to me

  1. Silent-failure fixes are the quiet safety work. An agent that sees “no matches” when a search actually failed will confidently conclude something false. The Grep and Glob change addresses that.
  2. Subagents are becoming the default shape. Two releases in a row touch background or fork subagents, which also explains why classifier and permission settings are getting new knobs.
  3. Check your scripts. The third-party-provider permission default is the kind of change that surprises people running claude -p in CI.

If you want the permission-model background, see the Claude Code permission post.

Source: Claude Code releases on GitHub.