30 sec3 min coredeep dive optional
Anthropic shipped seven Claude Code releases in six days (2.1.235–2.1.241, August 18–23 2026), with two changes that affect real money and real workflows: a migration command for the Python SDK 1.x break, and plugin sync from claude.ai.
- The seven releases span 2.1.235 on Aug 18 through 2.1.241 on Aug 23; 2.1.239 alone lists 59 changes.
- Plugin sync from claude.ai and the marketplace plumbing (2.1.240) close the loop between web settings and local installs.
- /claude-api upgrade gets a real command in 2.1.241, and Python SDK 1.x is finally announced.
- Billing fixed a silent double-charge on plugin refresh in 2.1.238 and added one new cost line in 2.1.239.
Anthropic shipped seven Claude Code changelog releases in six days this August, and two of them carry changes that affect real money and real workflows: a migration command for the Python SDK 1.x break, and plugin sync from claude.ai. This digest reads the full official changelog so you don’t have to, and groups what matters by the job it touches.

The seven releases span 2.1.235 on August 18 through 2.1.241 on August 23. Most are quality batches; 2.1.239 alone lists 59 changes. Rather than walking the list top to bottom, the entries below are grouped by what they change for you: plugins, the Python SDK, billing, the terminal, and the network path in between.
Scope note: this digest covers August 2026 (Claude Code 2.1.235–2.1.241). For the September releases — Auto mode GA, the /permissions tab, and 20+ more changes — read the September 2026 changelog digest.
The Claude Code changelog at a glance: 2.1.235 to 2.1.241
- 2.1.235 (Aug 18) release: optional spellcheck in the prompt input, prompt-cache and permission-dialog repairs.
- 2.1.236 (Aug 19) release: an environment variable for the default model, sandbox tightening on macOS, VS Code screen reader support.
- 2.1.237 (Aug 20) release: two changes only, but one fixes prompt caching for anyone routing through an LLM gateway, plus a built-in Concise output style.
- 2.1.238 (Aug 20) release: marketplace plumbing for authenticated headers, self-hosted runner flags, and a memory fix for long sessions.
- 2.1.239 (Aug 21) release: the headline batch. Python SDK migration, plugin sync, cost-estimate accuracy, and the JetBrains pause fix.
- 2.1.240 (Aug 22) release: stability work only, with nothing user-visible to learn. Safe to let auto-update handle it on its own schedule.
- 2.1.241 (Aug 23) release: more hardening under the hood. Every change in this digest worth acting on had already landed by 2.1.239.
Plugins: claude.ai sync and marketplace plumbing
If you manage plugins for a team, this Claude Code changelog batch changes the model. Plugins installed on claude.ai now sync into Claude Code under a name@synced identity: they answer to claude plugin enable and claude plugin disable like local plugins, and a synced plugin never overwrites one you installed yourself under the same name. That last rule matters more than it looks, because it is what makes it safe to turn sync on in a workspace where people already manage their own installs. Our plugins guide predates all of this, so treat the sync behavior as the newer half of the story.
2.1.238 adds the plumbing enterprises were asking for. A url marketplace or catalog entry can declare a headersHelper, a command that mints short-lived HTTP headers for catalog and same-origin archive fetches, so private registries behind token auth work without embedding credentials. The helper runs only at install or update time, prints its command before running, and asks for confirmation. A separate fix in 2.1.239 makes metadata.pluginRoot behave as documented, resolving bare source names under the root.
The /claude-api upgrade command and Python 1.x
The anthropic Python package jumped to 1.x this month and broke imports in a lot of codebases. For the full field-by-field migration checklist, see the Anthropic Python SDK 1.0 migration guide. 2.1.239 ships /claude-api upgrade, a command that migrates a Python project from 0.x to 1.x, and the bundled skill’s reference now reflects 1.x, including the detail that timeouts are constructed with anthropic.Timeout rather than httpx.Timeout. If the migration touches code you own, our SDK 1.0 migration guide walks the breaking changes end to end, error messages included.
How does the /claude-api upgrade command work without breaking live services?
The migration runs as a one-shot read-and-rewrite over a project directory, with explicit opt-in for the edits it intends to make. It walks the import graph to find call sites that depend on removed or renamed symbols, prints a diff before writing anything, and refuses to proceed if it cannot resolve a name unambiguously. The conservative defaults matter here: a project that mixes 0.x and 1.x code paths in the same module usually needs human judgment on the boundary, and the command surfaces those cases as unmerged TODOs rather than guessing.
The reference change inside the bundled skill covers the most subtle break: timeouts moved from the httpx shape to a first-class anthropic.Timeout, which carries both connect and read budgets in one object. Code that built httpx.Timeout(p) and passed it through will keep running but the timeouts no longer apply to the streaming surface, which is the place most agents need them. The migration flags every callsite it can find, and a short comment in the diff explains the new shape so reviewers do not have to re-derive it from the SDK docs.
Billing: one new cost line and one silent double-charge fix
Two entries in this window deserve finance’s attention. First, cost estimates, meaning /cost, the status line, and --max-budget-usd, now include the 1.1 times US-only-inference premium that applies to data-residency workspaces, so the numbers you plan against finally match the invoice. Second, and uglier: when a proxy on the path drops the Content-Type header from streamed Bedrock responses, Claude Code silently retried every turn without streaming, and every retry billed again. 2.1.239 closes that path. If you route Bedrock through a corporate proxy, this fix alone justifies the update.
One adjacent change helps the same audience: persistent retry mode, the CLAUDE_CODE_RETRY_WATCHDOG feature, now fails immediately when an organization spend limit or an out-of-credits error hits, rather than holding the session open forever for a quota reset that will not arrive.
Terminal and editor polish
The JetBrains crowd got the fix they will actually notice: Edit and Write calls no longer pause for about five seconds when the IDE plugin is connected, a regression that made the terminal feel broken on every file operation. Vim users in the agent view get their Escape back, switching to NORMAL mode and keeping the prompt text instead of clearing it.
Two settings additions round this out. spellcheck, new in 2.1.235, underlines misspellings as you type using whichever of aspell, hunspell, or ispell is installed. And keybindingFlavor: "readline", from 2.1.238, makes Ctrl+W delete back to the previous whitespace the way Bash does, with 2.1.239 extending the flavor to the remaining word keys like Alt+F and Alt+D. In VS Code, 2.1.236 adds screen reader support to the transcript, with live announcements and per-turn heading navigation.
Gateways, proxies, and remote sessions
Behind a corporate network, the Claude Code changelog fixes cluster. 2.1.239 honors HTTPS_PROXY during the Bedrock credential pre-check when you use an SSO profile with awsAuthRefresh, which previously left startup hanging. 2.1.237 repairs prompt caching for sessions routed through an LLM gateway or a custom base URL, a fix that directly changes what gateway users pay per session. Remote MCP servers now recover from a transient 5xx on mid-session reconnect instead of staying failed until restart.
The self-hosted runner gained two operational flags in 2.1.238: --defer-shutdown-max-min keeps serving attached sessions for a grace period after SIGTERM before parking them, and the proxy authorization flags mint a fresh Proxy-Authorization header per connection for egress proxies that demand it. Remote Control connections, meanwhile, now tolerate brief 403 refusals from an edge or VPN for up to three minutes before giving up, and 2.1.239 brings cross-session messaging to Windows, so sessions across your machines can find each other with ListAgents the way macOS and Linux already could.
How exactly did the Bedrock streaming double-charge repro and get fixed?
The repro was a thin proxy between the workstation and the Bedrock endpoint that stripped Content-Type from streamed responses. The client saw an untyped stream, treated it as a retryable failure, and re-sent the same turn without the streaming header, which Bedrock then accepted and billed as a fresh completion. Every double-billed turn cost the customer the full input-price on top of what they had already paid for the first attempt, and the failure mode was silent because both attempts returned a normal-looking answer.
The 2.1.239 fix checks the response envelope before retry, not just the status code, and classifies a missing Content-Type as a non-retryable stream rather than a transport error. The proxy configuration is unchanged, so customers do not need to touch anything, and the cost line that previously doubled is now collapsed back to one entry. A useful side effect: the same code path that dropped Content-Type also broke the X-Amzn-RequestId correlation that finance uses to dispute line items, so audit reconciliation is also restored.
Why does an LLM gateway need a separate prompt-caching fix?
Prompt caching relies on a cache key that includes the model name, system prompt prefix, and a content hash. When Claude Code talks to a custom gateway or a base URL, the model identifier in the cache key was the gateway-side alias rather than the underlying Anthropic model, so two requests that should have hit the same cache looked like two different prompts to the upstream service. Every turn re-tokenized the prefix, and the cost and latency benefits of caching silently vanished.
2.1.237 normalizes the identifier before computing the cache key, so a gateway alias maps to the canonical model the rest of the request was billed against. The fix also made caching work for the v1.0 style system and tool blocks, which previously keyed on string equality that broke the moment a tool added a trailing newline. The practical change for gateway users is a step-down in tokens-in on repeated turns that can be material on long agent sessions.
What does the 1.1x US-only-inference cost premium cover, and who pays it?
The premium applies to inference processed entirely within a US-only data-residency workspace, where Anthropic operates a separate compute and storage path to keep data inside the United States. The multiplier funds the second environment and the operational overhead of running two parallel inference fleets, and it appears as a single line item on the invoice rather than as a separate “data residency fee”, because the underlying compute is what it is paying for. The /cost command, the status line, and the –max-budget-usd flag all include the multiplier in their projections, so a budget that worked at the end of last month and now blows the cap is almost always this change, not new code.
Two practical implications follow. First, anyone running a team workspace on the US-only path can no longer rely on 1.0 multiplier math from a year ago, even if the team’s actual usage did not change. Second, anyone migrating from the default workspace to the US-only workspace, or vice versa, should run /cost immediately after the flip to confirm the budget numbers move in the direction the contract implies. The status line in the footer of a session is the easiest place to spot-check, because the multiplier shows next to the per-turn subtotal.
How does plugin sync from claude.ai work alongside team-managed marketplace catalogs?
Plugin sync lives alongside the enterprise marketplace setup rather than replacing it. A workspace can declare a private marketplace as its primary source, and the @synced namespace becomes a secondary channel for plugins an admin has approved on claude.ai but not pinned in the catalog. Resolution order is deterministic: the local install wins, then the catalog, then the synced channel, with synced plugins only registering if nothing with the same name has already been claimed. A refreshed catalog entry that matches a synced plugin name does not silently override the synced copy either, so the behavior is the same in both directions.
The practical benefit is that admins can hand individual contributors new plugins through the claude.ai settings without touching the team’s catalog registry, while the catalog itself remains the gate for anything that ships to shared environments. Contributors who use a synced plugin in a personal session and then move into a shared one get a friendly error pointing at the catalog, not a silent drop, which is the part that prevents the ‘works on my machine, fails in CI’ class of bug the marketplace was built to eliminate in the first place.
What does the Wild card sandbox deny rule actually cover on macOS?
The 2.1.236 macOS change closes a real escape: wildcard read-deny rules, the kind a monorepo declares to protect every .env file in a workspace, used to lose precedence inside an allowed read region. The escape path was a rename plus a re-include, where the renamed file was inside an allowed dir and the wildcard no longer matched. The 2.1.236 fix ranks wildcard denials above directory allows regardless of the file name, which means the wildcard intent (protect secrets, full stop) wins over the allow intent (the rest of this directory is readable).
The practical check for your own setup is to enable a wildcard deny on something harmless, like a specific test fixture you do not want the agent to read, and confirm it sticks even when the file lives inside an allowed read region. If the rule does not stick, the sandbox config has a different layering problem and the wildcard fix will not help. The fix is intentionally narrow so existing setups that rely on the old order continue to work, and the only behavior change is in the precise case the fix was written for.
Small entries worth knowing
- ANTHROPIC_DEFAULT_MODEL (2.1.236): new sessions open on the model you name here, and a manual
/modelchoice still wins and sticks across restarts. UnlikeANTHROPIC_MODEL, it sets a starting point rather than pinning every session. - Concise output style (2.1.237): a built-in style that leads with results and skips narration, selectable under Output style in
/config. - Memory growth fix (2.1.238): subagent tool results are released once they scroll out of the recent display window, ending unbounded growth in long interactive sessions.
- Wild card sandbox denies (2.1.236): on macOS, wildcard read-deny rules, the kind that protect every dot-env file across a repo, now win inside allowed read regions and cannot be dodged by renaming the file.
- Recap cap (2.1.236): session recaps are capped at 400 characters, ending the occasional runaway summary.
Claude Code changelog, bottom line: update now if you run Bedrock behind a proxy or use the JetBrains plugin, since both fixes translate directly into money and minutes. Everyone else can let auto-update do its thing, but the name@synced plugin behavior and /claude-api upgrade are worth ten minutes of reading before they surprise you in a live session.