Claude Code

Claude Code 2.1.286 Caps Retries at 14 and Runs a Skill Named verify Before Committing

3 min read AI-generated

The Claude apps gateway's spend meter was pricing 1-hour prompt cache writes at the cheaper 5-minute rate. That's fixed — along with five cases where a secret slipped through into logs and transcripts.

Featured image for "Claude Code 2.1.286 Caps Retries at 14 and Runs a Skill Named verify Before Committing"

Version 2.1.286 landed in the npm registry on September 30 at 17:14 UTC, with 91 lines of changelog. It isn’t a feature release, it’s a hardening release, aimed at exactly the places that hurt when an agent runs unattended. 2.1.285, two days ago, gave you a switch for WebFetch. This one cleans up.

Retries now have a number

Failed API requests are retried differently: one limit now covers a whole model call rather than each request. With default retry settings, a failing call sends at most 14 requests. Anyone who has watched an agent burn through a quota overnight knows why that matters.

Two billing bugs go with it, both of them mismeasuring: the Claude apps gateway’s spend meter priced 1-hour prompt cache writes at the cheaper 5-minute rate, and on streamed turns that run a server-side tool, web search for instance, it counted only the first model call’s input tokens.

Secrets that slipped through

Five lines concern redaction, and each one describes a hole:

  • MCP error messages showed a credential’s value when Bearer or Basic came before its key name.
  • Percent-encoded bearer tokens were only partly masked.
  • A secret whose key name contains an invisible character, such as a zero-width space, appeared in redacted logs in the clear.
  • Part of a URL password stayed visible when it contained characters like ), quotes, ], & or a second @ — Same again when it ran past a / to a bracketed host like [::1].
  • The transcript inside the zip that /feedback writes to disk contained invalid JSON lines after redaction.

What changes while you work

  • --bare is actually bare now. It connects only the MCP servers named on the command line, sends the model no system reminders and starts no background tasks. A shell command that hits its timeout stops there instead of moving to the background.
  • A skill named verify runs before the commit. If your project or user skills include one with that name, Claude is now told to run it right before committing. Docs-only and tests-only commits are exempt.
  • Model fallback speaks up. When the API refuses the model your default or an alias resolves to, Claude Code retries once on the previous model of the same tier. The notice now also says when a fallback dropped the context window from 1M to 200K tokens.
  • /compact, /clear and /rewind typed while viewing a background agent’s transcript used to act silently on the main conversation. A dialog now names the target and asks first.
  • Permission prompts count themselves. When several stack up, you get “2 of 5”.

For cloud sessions there’s one line that should interest anyone running routines: routine runs whose cloud session never started used to show as Succeeded, in the Runs pane, on the routine’s page and in the sidebar. They now show as Failed.

The quiet releases are the important ones

A changelog with no new feature reads as boring and tells you more about how a tool is actually used. Fourteen requests instead of endless, a spend meter that picks the right cache rate, a failed run that stops reporting itself as a success. Those are problems belonging to people who no longer watch Claude Code work.

Sources:

Claude CodeAnthropicReleasesMCPCowork