Claude Code 2.1.119
`/config` changes now persist to `~/.claude/settings.json`, `--from-pr` supports GitLab/Bitbucket/GitHub Enterprise, custom `prUrlTemplate`, PowerShell auto-approval parity with Bash, and a large cleanup of bugs and one security fix.
This article is a summary based on official documentation.
What changed
Claude Code 2.1.119 (April 24, 2026) — /config changes survive restarts by persisting to ~/.claude/settings.json, --from-pr accepts non-GitHub providers, PowerShell matches Bash for auto-approval, and owner/repo#N shorthand links follow your git remote. Mostly a polish + bug-fix release.
New features
-
Persistent
/configsettingsTheme, editor mode, verbose, etc. used to reset on restart. They now persist to
~/.claude/settings.jsonand participate in project → local → policy override precedence. -
prUrlTemplatefor custom code-review URLsThe footer PR badge always linked to github.com, which was wrong for teams on Phabricator, Gerrit, GitLab, etc.
prUrlTemplatepoints the badge at a custom review system. -
CLAUDE_CODE_HIDE_CWDfor screen recordingsThe startup logo leaked the working directory path during screen sharing. Set this env var to hide cwd in the logo.
-
--from-praccepts GitLab / Bitbucket / GitHub EnterprisePreviously GitHub-only. Now accepts GitLab merge-request URLs, Bitbucket pull-request URLs, and GitHub Enterprise PR URLs.
-
--printhonors agent frontmatterNon-interactive
--printignored an agent’stools:anddisallowedTools:frontmatter, diverging from interactive behavior. Both modes now match. -
--agent <name>honorspermissionModeBuilt-in agents’
permissionModeis now respected when launched via--agent. -
PowerShell auto-approval parity
PowerShell tool commands can be auto-approved in permission mode the same way Bash commands can.
Improvements
duration_msonPostToolUsehooks —PostToolUseandPostToolUseFailurehook inputs now includeduration_ms(tool execution time, excluding permission prompts andPreToolUsehooks).- Parallel MCP reconfiguration — subagent and SDK MCP server reconfiguration connects servers in parallel instead of serially.
- Pinned plugins auto-update — plugins pinned by another plugin’s version constraint now auto-update to the highest satisfying git tag.
- Vim INSERT Esc — Esc in INSERT no longer pulls a queued message back into the input; press Esc again to interrupt.
- Slash command picker — matched characters are highlighted in the picker, and long descriptions wrap instead of being truncated.
owner/repo#Nuses git remote host — shorthand links now follow your git remote’s host instead of always pointing at github.com.- OpenTelemetry fields —
tool_resultandtool_decisionevents includetool_use_id;tool_resultalso includestool_input_size_bytes. - Status line stdin JSON — now includes
effort.levelandthinking.enabled. - Vertex AI: tool search off by default — avoided an unsupported beta header error. Opt back in with
ENABLE_TOOL_SEARCH.
Notable fixes
Input / paste
- CRLF pastes adding blank lines — Windows clipboards and Xcode console pastes no longer insert an extra blank line between every line.
- Kitty keyboard protocol + bracketed paste — multi-line pastes no longer lose newlines.
@-file Tab completion in slash commands — absolute paths no longer replace the entire prompt.- Stray
pat startup prompt — fixed in macOS Terminal.app via Docker or SSH.
Tools / permissions
- Glob and Grep disappearing when Bash is denied — fixed on native macOS/Linux builds.
UI / session
- Scroll-snap-to-bottom on tool finish — fullscreen mode no longer snaps back every time a tool completes.
- Rewind overlay “(no prompt)” — messages with image attachments show the actual prompt.
- Auto mode overriding plan mode — conflicting “Execute immediately” instructions no longer bypass plan mode.
- Verbose setting not persisting — fixed (paired with
/configpersistence).
MCP / OAuth
- HTTP MCP OAuth discovery — non-JSON bodies no longer fail with “Invalid OAuth error response.”
${ENV_VAR}in MCPheaders— now substituted before requests for HTTP/SSE/WebSocket MCP servers.--client-secret+client_secret_post— stored secret is now sent during token exchange for servers requiring it.- Plugin MCP servers on Windows — now spawn when the plugin cache is incomplete.
- Disabled MCP servers labeled “failed” in
/status— fixed. - Plugin MCP servers with optional
${user_config.*}left blank — no longer fail.
Hooks and slash commands
- Async
PostToolUsehooks with no response — no longer write empty transcript entries. /skillsEnter — now pre-fills/<skill-name>instead of closing the dialog./agentsdetail mislabels — built-in tools unavailable to subagents are no longer shown as “Unrecognized.”/exportmodel label — shows the model the conversation actually used, not the current default./usageprogress bar overlap — no longer collides with “Resets …” labels./planand/plan open— now act on the existing plan when entering plan mode./reload-plugins//doctorerrors for disabled plugins — no longer reported.
Agents / resume
- Stale worktree reuse —
Agenttool withisolation: "worktree"no longer reuses worktrees from prior sessions. - Skills re-executing after auto-compaction — skills invoked before compaction no longer fire again against the next user message.
TaskListsort order — tasks now return sorted by ID instead of filesystem order.- Orphaned subagent notifications — no longer leave the spinner on.
Miscellaneous
- False “rate limit exceeded” hints — fixed when
ghoutput contained PR titles mentioning “rate limit.” - SDK/bridge
read_filesize cap — now enforced correctly on growing files. - Worktree PR linking — PRs are now linked to the session when working in a worktree.
/doctorMCP override warnings — fixed for entries overridden by a higher-precedence scope.- Windows
cmd /cwrapper warning — false-positive removed. - [VS Code] voice dictation first recording — macOS microphone permission prompt no longer eats the first recording.
Security
blockedMarketplaces— now correctly enforceshostPatternandpathPatternentries.
Notes
/configchanges now persist. If you deliberately used different settings per project, manage them via project-levelsettings.json.prUrlTemplateis a template string with placeholders like{owner}/{repo}/{number}(see official docs). Set it once for your internal review system.- Vertex AI users: tool search is off by default starting 2.1.119. If you relied on it, set
ENABLE_TOOL_SEARCH=1. - If you previously hit extra blank lines pasting CRLF text from Windows or Xcode, that’s fixed in this release.