What changed
Claude Code 2.1.233 shipped on August 14, 2026, largely as cleanup after 2.1.232 a day earlier. Two Bash permission changes introduced in 2.1.232 are reverted, and a Windows auto mode regression from the same release is fixed. The rest is GitLab merge request support, three opt-in settings aimed at fleet and gateway operators, and a behavior change that removes the todo/task-tracking tools on newer models.
New features
-
GitLab merge request URL support
Teams on GitLab could not point Claude Code at a merge request URL directly. The
--worktreeflag and theclaude agentsview now accept GitLab merge request URLs, and MRs display as!N. -
forward_user_identityapps gateway settingWith a proxy behind the apps gateway (the self-hosted control plane for centrally managing a Claude Code deployment), requests looked like they came from the gateway, so spend could not be split per user. An opt-in
forward_user_identitysetting on Anthropic upstreams now sends the signed-in user’s identity as headers, so a proxy behind the gateway can attribute spend per user. -
Memory cgroup support for Bash tool commands on Linux (
CLAUDE_CODE_TOOL_MEMORY_LIMIT)A build launched through the Bash tool could consume memory until the whole session stalled. Opt-in memory cgroup support on Linux, configured with
CLAUDE_CODE_TOOL_MEMORY_LIMIT, now caps Bash tool commands so a runaway build can’t stall the session. -
CLAUDE_CODE_WEBFETCH_CACHE_TTL_MSenvironment variableWebFetch reuses a response for the same URL within a session, and that window was not configurable. The new
CLAUDE_CODE_WEBFETCH_CACHE_TTL_MSenvironment variable configures the WebFetch session URL cache TTL. The default is unchanged at 15 minutes.
Key improvements
-
Todo/task-tracking tools removed on newer models
TaskCreate,TaskGet,TaskUpdate,TaskList, andTodoWrite— the tools used to build and update a working task list — are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models. SetCLAUDE_CODE_ENABLE_TODO_TOOLS=1to bring them back. -
2.1.232 Bash permission changes reverted
2.1.232 added permission checks for Cygwin-style symlinks on Windows and for input redirections (
< file). Both changes are reverted in this release; a narrower version will return in a later release. -
Faster
claude self-hosted-runnersession startCreating the session branch rewrote the working tree, and two server round trips blocked the agent’s launch. The session branch is now created without rewriting the working tree, and those two round trips no longer block the launch.
-
Apps gateway error forwarding
400 and 413 errors from Vertex, Foundry, and Claude Platform on AWS upstreams lost the original message, leaving little to diagnose. Those errors now carry the upstream’s own message, which also fixes a bug with auto-compact on apps gateway.
-
claude plugin validatechecks a bare.claude/skillsdirectoryA layout with only a
.claude/skillsdirectory fell outside validation, so a broken SKILL.md frontmatter surfaced only after install.claude plugin validatenow checks that directory and reports SKILL.md files whose frontmatter fails to parse. -
Screen reader mode
The
/effortselector was hard to follow without the screen, and hint and dialog text was clipped. The/effortselector now renders as a numbered list with a typed-number prompt, and hint and dialog text is no longer clipped. -
Print mode diagnostics for unrecognized model IDs
In
-p(print) mode, a request going out for a model ID Claude Code doesn’t recognize produced no signal at all. A[claude-code:unrecognized_model]line is now written to stderr for those requests; map the ID withmodelOverridesto silence it. -
Setup tips matched to the git host
The GitHub app setup tip also appeared in repositories whose origin remote is on gitlab.com or bitbucket.org. It no longer appears there, and the enterprise marketplace tip now covers non-GitHub internal git hosts.
Bug fixes
Sessions & integrations
- Cloud sessions occasionally being marked as lost when the environment shut down while Claude was waiting on a permission prompt — fixed.
- MCP v2 connections endlessly reopening the
subscriptions/listenstream — fixed for servers that terminate long-held streams on a fixed timeout (e.g. serverless hosts). - Notification hooks not firing for permission prompts when running under Claude Desktop or VS Code — fixed.
Skills & commands
- Bundled skill aliases like
/checkupand/reviewreporting “Unknown command” when a user or project skill shadows the bundled skill — fixed; this happened in-pmode or with plugins/MCP loaded. - Skill/command argument substitution letting argument values be re-expanded as template markers — fixed.
Windows & Linux
- Windows paths spelled with the NT
\??\device prefix bypassing UNC path validation — fixed, closing an NTLM credential-leak vector. - [Windows] Auto mode repeatedly stopping for manual approval on ordinary
cd <dir> && <command> > fileBash commands — fixed; this was a 2.1.232 regression. - Idle sessions on Linux sometimes keeping one CPU core at 100% when sandboxing is enabled — fixed.
Notes
- The two 2.1.232 Bash permission changes no longer apply — permission checks on input redirections (
< file) and the change for Cygwin-style symlinks on Windows are both reverted. The behavior described in the 2.1.232 post does not hold on this version; a narrower version will return in a later release. - Upgrade if Windows auto mode kept stopping on you — ordinary
cd <dir> && <command> > filecommands stopping for manual approval was a 2.1.232 regression, fixed here. - Check any flow that relies on the todo tools —
TaskCreate,TaskGet,TaskUpdate,TaskList, andTodoWriteare gone on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models. SetCLAUDE_CODE_ENABLE_TODO_TOOLS=1to keep using them. - The Bash memory limit is Linux-only and opt-in — behavior is unchanged unless you set
CLAUDE_CODE_TOOL_MEMORY_LIMIT. - The WebFetch cache default stays at 15 minutes —
CLAUDE_CODE_WEBFETCH_CACHE_TTL_MSonly makes the TTL configurable; leave it unset and nothing changes. - Silence the unrecognized-model line with
modelOverrides— if[claude-code:unrecognized_model]shows up in print mode, map that model ID withmodelOverrides.