Claude Code v2.1.234: Auto-Continue at Usage Limit, GitLab Merge Requests, and Windows Path Hardening#

Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog

Coming from v2.1.229, a v2.1.234 user gets a session that picks itself back up when a claude.ai usage limit resets. When you hit the cap, Claude Code now waits for the reset and continues the turn on its own; a "Continue automatically at usage limit" row in /config turns it off.[1] The binary carries a quota_auto_resume state machine behind it (tengu_quota_auto_resume_armed, tengu_quota_auto_resume_fired) and a settings key autoContinueAtUsageLimit, with an autoContinueAtUsageLimitToggleable flag deciding whether the row is available in a given environment.

GitLab reaches parity with GitHub#

Repos on GitLab now surface a merge request badge in the footer and statusline: with a GitLab remote and an authenticated glab CLI, Claude Code shows MR !N with draft, pending, and green states.[1] The --worktree flag and the claude agents view accept GitLab MR URLs and render them as !N. This lands on top of v2.1.232's GitLab work, which added token-family redaction (glpat-, glrt-, and siblings) and taught plugin marketplaces to clone bare gitlab.com URLs the way they already clone github.com.

/goal survives stalls and dead turns#

/goal gained two reliability fixes. When a turn dies on an unrecoverable error (revoked auth, an exhausted credit balance, a context overflow), the goal now clears itself with a notice instead of staying armed against a session that can no longer act on it. And when background tasks keep a goal waiting for 30 or more minutes, Claude checks in on them rather than blocking indefinitely. The check-in cadence is wired through xLH(), gated on tengu_saffron_wren, reading CLAUDE_CODE_GOAL_CHECKIN_MINUTES (default 30, set to 0 to opt out); its deferred-evaluation notice reports how many minutes a goal's evaluation was held while background work ran.[1]

Todo tools now depend on the model#

Todo and task tracking tools (TaskCreate/Get/Update/List, TodoWrite) are no longer offered on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models.[2] The availability check cJ() returns true only when CLAUDE_CODE_ENABLE_TODO_TOOLS is explicitly set, otherwise deferring to a server gate that is off by default on those models. Set the variable to 1 to bring the tools back.

Security tightened on Windows. Remote file reads, session restore, CLAUDE.md includes, workflow scripts, and file uploads now reject NT-namespace (\??\) paths, closing the remaining pre-approval file accesses against the NTLM credential-leak vector that v2.1.232 and v2.1.233 began hardening.[1]

New Environment Variables#

VariableWhat It Does
CLAUDE_CODE_PROJECT_DIR_NAMEWhen CLAUDE_CONFIG_DIR is set, picks a short name for the per-project transcript directory so a host that gives each session its own config directory can label it. The value passes a validation check that rejects malformed names before it is used. Shipped in v2.1.234.
CLAUDE_CODE_GOAL_CHECKIN_MINUTESSets how long /goal waits on stalled background work before Claude checks in, defaulting to 30 minutes; 0 opts out. Read only when the tengu_saffron_wren gate is on. Shipped in v2.1.234.
CLAUDE_CODE_ENABLE_TODO_TOOLSSet to 1 to restore the todo and task tools on models where they are now off by default (Opus 4.8, Sonnet 5, Fable 5, Mythos 5). The gate falls through to a server default when the variable is unset. Shipped in v2.1.233.
CLAUDE_CODE_TOOL_MEMORY_LIMITCaps memory for Bash tool commands via a Linux/WSL cgroup so a runaway build cannot stall the session. Only honored on Linux and WSL; none disables it. Shipped in v2.1.233.
CLAUDE_CODE_WEBFETCH_CACHE_TTL_MSConfigures the WebFetch session URL cache TTL. The default is unchanged at 15 minutes. Shipped in v2.1.233.

What These Tell Us#

The quota auto-resume machinery and the goal check-in timer both target the same failure mode: a long-running session that would otherwise sit dead against a limit or a stalled background task. Each ships with its own gate and an environment-variable escape hatch, so the behavior can roll out per environment and be turned off where it does not fit.

GitLab is being brought level with GitHub across the surfaces that already understood pull requests: statusline, footer, --worktree, the agents view, marketplace clones, and secret redaction. The todo-tool change points the other way, provisioning tools by model rather than uniformly, with the stronger models opted out by default and a single variable to override. Underneath sits a broad maintenance pass: 65 new environment variables over the baseline, markdown now rendered in your own prompts, /permissions and /add-dir usable mid-turn, and the built-in claude-api skill trimmed from roughly 200k tokens to 25k by loading its reference docs on demand.

This analysis is conducted for educational and research purposes under fair use principles. All trademarks and software referenced belong to their respective owners. This content is not intended to infringe on any intellectual property rights, circumvent any protections, or encourage unauthorized access to proprietary systems.

Sources#

  1. Claude Code Official Changelog, v2.1.234 release notes
  2. Claude Code Official Changelog, v2.1.233 release notes