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.

TL;DR
- ClaudeCodeLog's release post says Claude Code 2.1.117 shipped with 28 CLI changes, led by persistent
/modelselection, plugin dependency repair, and stricter managed marketplace enforcement. - According to ClaudeCodeLog's changelog post, the release fixes mid-session OAuth expiry, large-page
WebFetchhangs, and a crash on204 No Contentproxy 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
/contextpercentages 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:
blockedMarketplacesandstrictKnownMarketplacesnow 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
--agentnow load agent frontmattermcpServers. - OpenTelemetry events now include
command_name,command_source, and aneffortattribute on supported models. - Custom and MCP command names stay redacted unless
OTEL_LOG_TOOL_DETAILS=1is 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.