Claude Code v2.1.233: GitLab Merge Request Worktrees, Linux Bash Memory Limits, and Opt-In Todo Tools on Newer Models
Claude Code v2.1.233 adds GitLab merge request support to --worktree and claude agents, an opt-in Linux memory limit for Bash commands, a WebFetch cache TTL variable, and makes todo tools opt-in on newer models.
Claude Code v2.1.233 is a mid-sized release with 20 changelog entries. It brings GitLab merge requests to worktree and agent workflows, adds new controls for Bash memory use, WebFetch caching, and per-user identity forwarding through the apps gateway, and makes the todo and task-tracking tools opt-in on newer models. The remaining entries fix issues in MCP, hooks, skills, and Windows Bash permissions, including a 2.1.232 regression.
What’s New
GitLab Merge Requests in --worktree and claude agents
The --worktree flag and the claude agents view now support GitLab merge request URLs. In the claude agents view, merge requests are displayed as !N.
Opt-In Memory Limit for Bash Commands on Linux
On Linux, Bash tool commands can now run inside a memory cgroup, configured through CLAUDE_CODE_TOOL_MEMORY_LIMIT. The feature is opt-in and is meant to keep a runaway build from stalling the session.
Todo and Task Tools Now Opt-In on Newer Models
The todo/task-tracking tools (TaskCreate/Get/Update/List and TodoWrite) are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models. Set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back.
Per-User Identity Forwarding in the Apps Gateway
A new opt-in forward_user_identity apps gateway setting for Anthropic upstreams sends the signed-in user’s identity as headers. This lets a proxy behind the gateway attribute spend per user.
Configurable WebFetch Cache TTL
The new CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS environment variable sets the TTL of the WebFetch session URL cache. The default is unchanged at 15 minutes.
Unrecognized Model Diagnostics in Print Mode
When a request goes out for a model ID that Claude Code doesn’t recognize, print mode now writes a [claude-code:unrecognized_model] line to stderr. Map the model with modelOverrides to silence it.
Fixes and Improvements
- Windows and Bash permissions: On Windows, auto mode no longer repeatedly stops for manual approval on ordinary
cd <dir> && <command> > fileBash commands (a 2.1.232 regression). The 2.1.232 Bash permission changes for Cygwin-style symlinks on Windows and for input redirections (< file) have been reverted; the changelog says a narrower version will return in a later release. - Security: Windows paths spelled with the NT
\??\device prefix no longer bypass UNC path validation, closing an NTLM credential-leak vector. - Sessions: Cloud sessions are no longer occasionally marked as lost when the environment shuts down while Claude is waiting on a permission prompt. Idle sessions on Linux no longer sometimes keep one CPU core at 100% when sandboxing is enabled.
- Hooks: Notification hooks now fire for permission prompts when Claude Code runs under Claude Desktop or VS Code.
- MCP: MCP v2 connections no longer endlessly reopen the subscriptions/listen stream against servers that terminate long-held streams on a fixed timeout, such as serverless hosts.
- Skills and commands: Bundled skill aliases such as
/checkupand/reviewno longer report “Unknown command” in-pmode or with plugins/MCP loaded when a user or project skill shadows the bundled skill. Skill and command argument substitution no longer re-expands argument values as template markers. - Plugins:
claude plugin validatenow checks a bare.claude/skillsdirectory and reports SKILL.md files whose frontmatter fails to parse. - Self-hosted runner:
claude self-hosted-runnersessions start faster. The session branch is now created without rewriting the working tree, and two server round trips no longer block the agent’s launch. - Apps gateway: 400/413 errors from Vertex, Foundry, and Claude Platform on AWS upstreams now carry the upstream’s own message, and a bug with auto-compact on the apps gateway is fixed.
- Accessibility: In screen reader mode, the
/effortselector renders as a numbered list with a typed-number prompt, and hint and dialog text is no longer clipped. - Tips: The GitHub app setup tip no longer appears in repositories whose origin remote is on gitlab.com or bitbucket.org, and the enterprise marketplace tip now covers non-GitHub internal git hosts.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - If you rely on the todo/task-tracking tools with Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or newer models, set
CLAUDE_CODE_ENABLE_TODO_TOOLS=1to keep them.