Skip to content
AI Primer
release

Claude Code 2.1.117 updates default effort and fixes OAuth, WebFetch, and plugins

Anthropic shipped Claude Code 2.1.117 with 28 CLI changes, including persistent model selection, OAuth refresh fixes, WebFetch truncation, and plugin dependency repair. The release also changes default effort behavior for Pro and Max users, which can affect token burn and session behavior.

4 min read
Claude Code 2.1.117 updates default effort and fixes OAuth, WebFetch, and plugins
Claude Code 2.1.117 updates default effort and fixes OAuth, WebFetch, and plugins

TL;DR

  • ClaudeCodeLog's release post says Claude Code 2.1.117 shipped with 28 CLI changes, led by persistent /model selection, plugin dependency repair, and stricter managed marketplace enforcement.
  • According to ClaudeCodeLog's changelog post, the release fixes mid-session OAuth expiry, large-page WebFetch hangs, and a crash on 204 No Content proxy responses.
  • ClaudeCodeLog's changelog post also says Claude Code had been computing Opus 4.7 sessions against a 200K window instead of the model's native 1M, which inflated /context percentages and triggered early autocompaction.
  • The release changes default effort behavior too: ClaudeCodeLog's changelog post says Pro and Max users on Opus 4.6 and Sonnet 4.6 now default to high effort, while the main HN discussion summary had already flagged higher default effort and tokenizer overhead as practical cost issues around the broader Opus 4.7 rollout.

You can inspect the release tag, compare the tiny CLI surface diff, and jump back one version to see how quickly Anthropic is iterating via the 2.1.116 release notes. The changelog also sneaks in a context-window bug for Opus 4.7, native bfs and ugrep on macOS and Linux, and a new external-build flag for forked subagents via ClaudeCodeLog's changelog post.

Model selection

Claude Code now keeps a user-picked model across restarts even when the project pins something else, and the startup header tells you whether the active model came from the project or managed settings.

The point is not the persistence alone. Anthropic also exposed the source of truth in the header, which is the part that reduces pin confusion in shared repos.

The same changelog flips the default effort for Pro and Max subscribers on Opus 4.6 and Sonnet 4.6 from medium to high. That lands in the middle of an ongoing cost and behavior debate, because the HN discussion summary singled out higher default effort and tokenization changes as reasons simple spend estimates were drifting.

OAuth, WebFetch, and plugins

Most of 2.1.117 is operational cleanup.

The biggest fixes break down cleanly:

  • OAuth: reactive token refresh on 401s fixes sessions that died mid-turn with "Please run /login".
  • WebFetch: large HTML pages are truncated before HTML-to-Markdown conversion, which avoids hangs.
  • Proxies: HTTP 204 responses now surface a clear error instead of throwing a TypeError.
  • Plugins: reinstalling an already-installed plugin now repairs missing dependencies instead of bailing early.
  • Marketplaces: blockedMarketplaces and strictKnownMarketplaces now apply to install, update, refresh, and autoupdate.

That plugin work extends a pattern from ClaudeCodeLog's 2.1.116 release post, which had already added dependency auto-install for plugin reloads and updates. One version later, Anthropic pushed the same logic into fresh installs and stricter marketplace policy enforcement.

Context windows and search speed

The weirdest fix in the release is the Opus 4.7 context bug.

Claude Code had been measuring Opus 4.7 sessions against a 200K context window instead of 1M, according to ClaudeCodeLog's changelog post. That made /context look fuller than it was and caused autocompaction to fire too early.

Search also gets a plumbing change on native macOS and Linux builds. Anthropic replaced the dedicated Glob and Grep tools with embedded bfs and ugrep exposed through the Bash tool, while Windows and npm-installed builds stay unchanged.

Subagents and telemetry

A few of the smaller items are more revealing than the headline fixes.

  • External builds can enable forked subagents with CLAUDE_CODE_FORK_SUBAGENT=1.
  • Main-thread agent sessions launched with --agent now load agent frontmatter mcpServers.
  • OpenTelemetry events now include command_name, command_source, and an effort attribute on supported models.
  • Custom and MCP command names stay redacted unless OTEL_LOG_TOOL_DETAILS=1 is set.
  • The retention sweep now covers ~/.claude/tasks/, ~/.claude/shell-snapshots/, and ~/.claude/backups/.

Those additions sit next to a very small surface diff: ClaudeCodeLog additional changes post lists four new env vars, API_FORCE_IDLE_TIMEOUT, CLAUDE_CODE_FORK_SUBAGENT, CLAUDE_CODE_RATE_LIMIT_TIER, and CLAUDE_CODE_SUBSCRIPTION_TYPE, plus the removal of EMBEDDED_SEARCH_TOOLS. The bundle only grew by 64 KB, with no prompt-file or prompt-token changes, per the linked metadata diff.

Further reading

Discussion across the web

Where this story is being discussed, in original context.

On X· 1 thread
OAuth, WebFetch, and plugins1 post