Anthropic reports Claude Code regressions after March 26 thinking bug and xhigh default shift
Anthropic said three harness-side changes degraded Claude Code quality, then reset subscriber limits and rolled out fixes in 2.1.119. The update matters because recent failures came from tool defaults and prompt handling rather than the base model alone.

TL;DR
- Boris Cherny, Claude Code lead at Anthropic, said Anthropic's post-mortem found three separate harness-side regressions, not a single model failure, behind the recent drop in Claude Code quality bcherny's post-mortem thread.
- According to theo's screenshot of the post-mortem, the three fixes were a default reasoning change from high to medium that ran from March 4 to April 7, a stale-session thinking bug that ran from March 26 to April 10, and a verbosity prompt change that ran from April 16 to April 20.
- Anthropic also reset subscriber usage limits, which bcherny's follow-up announced directly after the post-mortem, and which koltregaskes' account reset screenshot showed hitting users before their expected renewal date.
- The fast patch train matters on its own: ClaudeCodeLog's 2.1.117 summary restored high default effort for Pro and Max users on Opus 4.6 and Sonnet 4.6, while ClaudeCodeLog's 2.1.119 summary landed 51 more CLI changes less than a day later.
- ClaudeCodeLog's 2.1.119 inventory also shows the harness growing again, with 216 new prompt files and a 155,048-token jump in prompt text, which helps explain why developers were blaming the wrapper as much as the base model.
You can read Anthropic's 2.1.119 changelog, skim Simon Willison's note on the post-mortem, and compare that with Anthropic's earlier Harnessing Claude's intelligence post about prompt caching and harness design. Community complaints were already piling up in r/ClaudeAI and r/ClaudeCode before the post-mortem landed.
Three harness regressions
The post-mortem pinned the drop in quality on three overlapping changes inside Claude Code's harness.
- Default reasoning effort dropped from high to medium on March 4, to reduce latency severe enough to make the UI look frozen. Anthropic reverted that on April 7, according to theo's screenshot, and the 2.1.117 changelog summary later recorded that Pro and Max users on Opus 4.6 and Sonnet 4.6 were back to high by default.
- Idle sessions lost prior thinking repeatedly after March 26. According to the screenshot of the post-mortem, a change meant to clear old thinking once after an hour of inactivity instead kept firing on every subsequent turn, which made Claude Code look forgetful and repetitive until April 10.
- A prompt tweak to reduce verbosity hurt coding quality from April 16 to April 20. The same screenshot says the problem showed up in Sonnet 4.6, Opus 4.6, and Opus 4.7.
That sequence fits the complaints users were posting before the write-up. omarsar0 described the tool as barely usable over the previous couple of days and blamed the harness more than the model, while mbusigin reduced the experience to a blunt "wtf happened? this is unusable."
Usage resets and rate-limit fallout
Anthropic paired the post-mortem with an account-level concession. In the same thread, Cherny said the team was still investigating separate Opus 4.7 issues in Claude Code and was resetting usage limits for subscribers bcherny's follow-up.
Users saw those resets immediately. koltregaskes' screenshot shows credits returning ahead of schedule, and scaling01 summarized the move as a global subscriber reset.
That did not erase the rate-limit story around Opus 4.7. bridgemindai's screenshot described a Pro user hitting a 10 hour wait after a single high-reasoning request, while a r/ClaudeAI thread reported a first prompt of the day tripping a 5 hour limit and a r/ClaudeCode thread claimed paid API credits were burning much faster than expected.
2.1.117 fixed the obvious harness mistakes
The changelog for 2.1.117 reads like the first pass at undoing the bad tradeoffs.
- Default effort returned to high for Pro and Max subscribers on Opus 4.6 and Sonnet 4.6, per the 2.1.117 changelog.
- Opus 4.7 context accounting was corrected after Claude Code computed against a 200K window instead of Opus 4.7's native 1M, according to the same changelog.
- Stale sessions got a new summarization path because
/resumebegan offering to summarize large, old sessions before rereading them via the 2.1.117 notes. - MCP startup and reload moved toward concurrency, with concurrent connect enabled by default and serial reconnect bugs fixed in the 2.1.117 notes.
The release also exposed a few internal knobs that looked relevant to the week's complaints. ClaudeCodeLog's additional 2.1.117 changes added CLAUDE_CODE_RATE_LIMIT_TIER and CLAUDE_CODE_SUBSCRIPTION_TYPE to the CLI surface, which is the kind of plumbing you only notice after people start screen-shotting rate-limit behavior.
2.1.119 shipped another 51 CLI changes
Then Anthropic shipped 2.1.119 less than 24 hours after 2.1.118 and roughly a day after 2.1.117, according to ClaudeCodeLog's metadata. The patch is large enough that it looks more like another harness surgery than a routine dot release.
The useful changes cluster into a few buckets:
- Config persistence:
/configsettings now write to~/.claude/settings.jsonand follow project, local, and policy precedence according to ClaudeCodeLog's summary. - Editing discipline: session note edits now have to go through the Edit tool in one parallel message, preserving section headers and templates per ClaudeCodeLog's summary.
- Memory compaction: memory-synthesis now extracts code-query facts with explicit fact and sentence caps to bound context size in the 2.1.119 highlights.
- Permissions and safety: built-in agents now honor their declared
permissionMode, and PowerShell auto-approval now matches Bash behavior in the 2.1.119 changelog. - MCP reliability: OAuth edge cases, env-var substitution, plugin server spawning, and parallel MCP reconnection all got fixes across the 2.1.119 notes.
That last point is where this story stops being about one bad prompt. The official fix path now spans effort defaults, session compaction, edit semantics, permissions, and MCP transport. The harness was moving on several fronts at once.
Tool count and harness sprawl
Community criticism had already converged on harness complexity. 0xblacklight's screenshot counted more than three dozen tools before extra MCP servers, including Monitor, Task, Cron, Worktree, Web, and multiple Google auth endpoints.
That same thread reduced the minimal useful set to eight or nine primitives: read, write, edit, bash, agent, web fetch, web search, and optionally skill 0xblacklight's post. pvncher added that new monitor behavior could revive processes in the background, while 0xblacklight's reply pointed SDK users toward a custom tools array or a custom harness.
Some of the fragility showed up below the UX layer. badlogicgames' screenshot of mitsuhiko's notes says Claude Code avoids messages.stream(), accumulates raw input_json_delta, parses tool JSON itself, falls back to {} on malformed tool input, and retries in non-streaming mode if streaming fails mid-turn.
Prompt growth in 2.1.119
The most eyebrow-raising number in 2.1.119 is not a bug fix. It is the prompt surface area.
According to ClaudeCodeLog's 2.1.119 inventory, the bundle grew by about 1.05 MB, prompt files jumped by 216, and prompt tokens rose by 155,048. The token mix also flipped from 100 percent system-reminder in 2.1.117 to a spread dominated by system at 39.6 percent and tools at 24.5 percent.
ClaudeCodeLog's inventory also called out three new prompt behaviors:
- An agent prompt that generates shell command descriptions.
- A session-notes prompt that forces all edits through the Edit tool in one parallel message.
- A recurring-loop prompt that can set up cloud schedules automatically and discourages local scheduling for daily phrasing.
That is fresh evidence that the fix for recent regressions was not a simple revert. Anthropic was still expanding the harness, just with tighter structure around memory, editing, and background work.