Claude Code v2.1.234: Auto-Continue After Usage Limit Resets, GitLab MR Badge, and Mid-Turn /permissions and /add-dir
Claude Code v2.1.234 continues sessions automatically when a claude.ai usage limit resets, adds a GitLab merge request badge, lets /permissions and /add-dir open mid-turn, and cuts the claude-api skill's context cost.
Claude Code v2.1.234 is a large release with 51 changelog entries. Highlights include automatic session continuation after a claude.ai usage limit resets, a GitLab merge request badge in the footer and statusline, more commands that work while Claude is busy, and /goal check-ins on long-running background tasks. It also hardens Windows path handling and permission-preview relays, improves Remote Control, and fixes a long list of prompt, transcript, and agent-messaging issues.
What’s New
Automatic Continuation When a Usage Limit Resets
Claude Code now continues your session automatically when a claude.ai usage limit resets. You can turn this off in /config with the “Continue automatically at usage limit” option.
GitLab Merge Request Badge
The footer and statusline now show a GitLab merge request badge. In repositories with a GitLab remote and an authenticated glab CLI, it displays MR !N with draft, pending, and green states.
More Commands Work While Claude Is Working
/permissions can now be opened while Claude is working, and rule changes apply to the rest of the current turn. /add-dir <path> can also be used mid-turn, and in the fullscreen TUI the /add-dir, /autocompact, /theme, /help, /config, and /advisor dialogs open mid-turn.
/goal Check-Ins and Automatic Clearing
When background tasks keep a goal waiting for 30 minutes or more, Claude now checks in on them instead of waiting indefinitely; set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out. /goal also clears itself with a notice when a turn dies on an unrecoverable error, such as revoked auth, an exhausted credit balance, or a context overflow, instead of staying armed.
Lower Context Cost for the claude-api Skill
Loading the built-in claude-api skill now costs about 25k tokens of context instead of ~200k+, because its reference docs are loaded on demand.
New Environment Variable and Keybinding Action
The optional CLAUDE_CODE_PROJECT_DIR_NAME environment variable lets hosts that give each session its own config directory choose a short name for the per-project transcript directory. A new selection:clear keybinding action lets you bind a key to clear an in-app text selection, and it also works in the agents view.
Remote Control Updates
Signing this computer in to a different claude.ai account or organization now stops the running Remote Control session within seconds and says why, instead of producing a misleading HTTP 404 hours later. Sessions started from Claude Code Desktop or VS Code keep phones and claude.ai/code updated on the session’s permission mode (and claude.ai/code on the model) as it changes. Effort picks made on a phone or on claude.ai/code now apply to terminal- and Desktop/VS Code-hosted sessions, and the session publishes its effort level to connected clients.
Default Teammate Model Setting Removed
The “Default teammate model” setting has been removed from /config. Agent-team teammates now use the leader’s model unless the spawn names one.
Fixes and Improvements
- Security: Remote file reads, session restore, CLAUDE.md includes, workflow scripts, and file uploads now reject Windows NT-namespace (
\??\) paths, hardening the remaining pre-approval file accesses against the NTLM credential-leak vector. MCP diagnostics no longer print resolved secrets: scope-conflict warnings show the configured${VAR}form, and connection-failure details show only the server origin.strictKnownMarketplacesallowlists no longer accept SCP-style git marketplace sources whose host differs from the one git would actually connect to. - Permission previews: Previews now relay only to channel servers admitted by the inbound trust gate, and a server’s explicit permission-capability opt-out is honored. Credential masking can no longer hide commands, paths, or destinations from the approver, oversized private-key blocks now redact under full-strength redaction, and provider API tokens mask even when directly followed by shell delimiters.
- Account email: Claude is now told to use your account email only to identify you, and not to send it to unrelated services unless you ask.
- Auto mode and permissions: In very long sessions, auto mode no longer repeatedly re-checks and denies sandboxed commands’ network access after the conversation has been compacted. Session-scoped permission answers, including denies, are no longer dropped when answering background subagent tool permission prompts. The redundant “Allowed by auto mode classifier” line under every Agent tool call has been removed.
- Fullscreen renderer and
/tui: Accepting the “Try the new fullscreen renderer?” prompt no longer restarts the session without its permission mode (e.g.--dangerously-skip-permissions), tool allow/deny rules, or model and effort flags./tuino longer drops launch--allowed-tools/--disallowed-toolsrules when it restarts; it now declines to switch, with the reason, when the session has restrictions a restart can’t carry over. - Agents and messaging:
SendMessageno longer rejects a recipient copied fromListAgentswhen the session name is at the 200-character cap or emoji-heavy, and both tools now say when your account’s session list was too long to check completely. Claude Desktop inter-session messages are no longer silently dropped by the recipient when cross-session messaging read as disabled. Background task notifications delivered between turns are now sent to the model inside<system-reminder>tags, matching mid-turn delivery. - Shell commands (
!mode): A queued!shell command is no longer sent to the model as plain text after you press up-arrow to edit it, and dialogs like/permissionsopened while a!command is running are no longer dismissed when it finishes. Queued messages no longer reappear in the prompt history while still queued, Esc while selecting a queued message no longer interrupts the turn, and!mode no longer sticks after a mid-turn submit. - Transcript and display: Your own prompts now render markdown (highlighted code blocks, inline code, lists) the same way replies do. Auto-generated session titles now read as short, specific names (e.g. “Login button bug”) rather than sentences restating your request. Markdown rendering is no longer extremely slow for some messages containing unusual Unicode sequences.
- Fullscreen selection: Esc in fullscreen mode no longer clears a mouse text selection; it interrupts or dismisses as usual and the selection stays highlighted. Modal text such as the
/loginOAuth URL no longer loses characters when copied in fullscreen. - Errors and login: A crash is fixed for API responses on the non-streaming fallback path (typically via third-party gateways) that contained a thinking block missing its thinking field or a text block missing its text field. The “API returned an empty or malformed response” error now says what came back (content type, body kind, size, request ID) and why the original streaming request failed. An expired Anthropic profile credential now points you at
/loginwhen a claude.ai login would take precedence. - Remote Control files: Files sent to the user during Remote Control sessions hosted by Claude Code Desktop or VS Code now upload, so they open on phone and web instead of showing an empty card.
- Repository detection: Git remotes with unusual userinfo no longer have their host mis-read, which had produced links and repo-specific behavior for the wrong host.
- Windows: Startup no longer stalls on repeated rename retries when
~/.claude.jsonis read-only.
This release contains 51 changes in total; see the official changelog linked below for the complete list.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - Sessions now continue automatically when a claude.ai usage limit resets; if you prefer to resume manually, turn off “Continue automatically at usage limit” in
/config.