Skip to main content
  1. Articles/

Claude Code v2.1.119: Multi-VCS Support, Settings Persistence, and the Enterprise Push

·1316 words·7 mins·

Not every Claude Code release gets a blog post. Some are genuinely maintenance updates — bug fixes, dependency bumps, minor UX polish. Version 2.1.119, which shipped in late April 2026, looked like one of those at first glance. No new model. No headline agentic feature. Just a changelog of targeted improvements.

Look closer and a pattern emerges. Almost every change in v2.1.119 addresses a friction point that enterprise teams — specifically teams operating in mixed-VCS environments, with strict configuration policies and CI/CD integration requirements — repeatedly reported. This is what enterprise-grade maturation looks like in practice: not a flashy announcement, but the quiet removal of reasons not to deploy at scale.


The Big One: Multi-VCS --from-pr
#

The most significant change in v2.1.119 is also the most practical: --from-pr now accepts URLs from GitLab merge requests, Bitbucket pull requests, and GitHub Enterprise Server instances, in addition to the public GitHub URLs it already supported.

Previously, --from-pr was effectively a GitHub-only feature. Point it at a PR URL, and Claude Code would pull the diff, context, and history, then start working from there — resuming an in-progress session or bootstrapping a new one. This is genuinely useful for picking up where you left off, handing a PR off to a colleague, or running automated review passes from CI.

The restriction to public GitHub meant it didn’t apply to the majority of enterprise deployments. Large organizations tend to run GitHub Enterprise Server on-premises, or choose GitLab for compliance and self-hosting reasons, or use Bitbucket if they’re deep in the Atlassian ecosystem. All of those teams were excluded from a workflow that GitHub-native users took for granted.

With v2.1.119, that gap closes. The implementation covers:

  • GitLab merge requests: gitlab.com/org/repo/-/merge_requests/123 and self-hosted GitLab instances
  • Bitbucket pull requests: bitbucket.org/org/repo/pull-requests/123
  • GitHub Enterprise Server: github.your-company.com/org/repo/pull/123

The /resume search box received the same treatment. You can now paste any VCS provider’s PR URL directly into the session picker, and Claude Code will find the originating session regardless of which platform hosted the PR.

For teams running GitLab-based monorepos or Bitbucket-centric workflows, this alone justifies the upgrade.


Settings Persistence and the Config Hierarchy
#

Before v2.1.119, changing settings via /config in a Claude Code session worked fine within that session — but there was no guarantee those changes persisted in a predictable location. Power users had learned to edit ~/.claude/settings.json directly, but /config changes could end up in project-local files or session-only memory depending on how the session was started.

v2.1.119 establishes a clean override hierarchy:

  1. Policy settings (~/.claude/settings.policy.json) — system-level, read-only for users
  2. User settings (~/.claude/settings.json) — where /config changes now always land by default
  3. Project settings (.claude/settings.json in repo) — team-shared, checked into version control
  4. Local project settings (.claude/settings.local.json) — developer-specific overrides, gitignored

This matches how configuration typically works in well-designed CLI tools — and more importantly, it matches what enterprise IT and security teams expect when they need to audit or enforce settings. Administrators can now write to the policy layer and know those settings will not be silently overridden by user-level /config changes.

For individual developers, the practical effect is simpler: if you set effort to xhigh or configure a custom apiKey via /config, it sticks across sessions without any manual JSON editing.


Agent Frontmatter in --print Mode
#

The --print flag puts Claude Code into non-interactive batch mode — it reads a prompt, runs it, and outputs the result to stdout. This is the mode used when Claude Code is invoked from scripts, CI pipelines, or orchestration layers.

Before v2.1.119, --print ignored agent frontmatter — the tools: and disallowedTools: declarations at the top of an agent file that constrain which tools the agent can invoke. This created a security and behavior gap: an agent carefully designed to only use specific tools (say, a review-only agent that should never write to the filesystem) would behave differently when invoked via --print than when invoked interactively.

The fix in v2.1.119 makes --print honor frontmatter consistently. This matters specifically for teams building agentic pipelines where agents are called non-interactively from scripts or CI runners. An agent that declares disallowedTools: [Write, Bash] will now have those restrictions enforced in --print mode, not just in interactive sessions.

It also makes the --print mode more composable with the Claude Code skills system, where agents are defined as markdown files with frontmatter. Invoking a skill non-interactively now produces behavior that matches the interactive case.


The Small Additions That Add Up
#

Several other changes in v2.1.119 are individually minor but collectively signal the same enterprise-focus pattern:

prUrlTemplate setting — allows teams to override the PR badge URL in Claude Code’s output footer. Useful for organizations that use custom code review interfaces (like GitHub proxies or internal review portals) rather than linking directly to public GitHub or GitLab.

CLAUDE_CODE_HIDE_CWD environment variable — suppresses the current working directory in Claude Code’s startup banner. Sounds trivial, but organizations that run Claude Code in CI environments with sensitive path structures (directories that reveal internal project names, network mount paths, or container layouts) have asked for this. It’s also useful for screenshots and screen recordings where CWD disclosure is undesirable.

${CLAUDE_EFFORT} variable in skill content — skills and agents can now reference the current effort level via ${CLAUDE_EFFORT} in their prompt content. This allows skills to adapt their instructions based on whether Claude is running at medium, high, or xhigh effort — a useful hook for skills that should behave differently depending on compute budget.

Windows PowerShell fallback — when Git Bash is absent, Claude Code now falls back to PowerShell for shell execution on Windows. Reduces friction for enterprise Windows deployments that haven’t set up Git Bash.

MCP server auto-retry — MCP servers that fail to start due to transient errors (network timeouts, slow process initialization) now get up to three automatic retry attempts before Claude Code gives up and shows an error. This addresses flakiness in CI environments and slow-starting MCP servers.


claude ultrareview as a Subcommand
#

The /ultrareview command — which spins up a fleet of cloud-based multi-agent reviewers for deep code analysis — was introduced in April 2026. It was interactive-only: you ran it inside a Claude Code session, waited for results, and read them in the terminal.

v2.1.119 adds claude ultrareview [target] as a proper non-interactive subcommand, with a --json output flag for machine-readable results. This is the integration point CI/CD pipelines were waiting for. Instead of wrapping an interactive session, a build step can now invoke claude ultrareview --json ./src/auth/ and get structured findings that feed into a PR check, a Slack notification, or a build gate.

The combination of non-interactive --print mode with honored agent frontmatter, and claude ultrareview --json for batch review, gives teams a meaningful toolkit for agentic code quality enforcement without manual review steps.


119K GitHub Stars and What It Signals
#

As a footnote: Claude Code’s GitHub repository crossed 119,000 stars alongside the v2.1.119 release. Stars are a vanity metric, but the growth curve is meaningful — the repository added roughly 20,000 stars in the six weeks following the desktop redesign launch in mid-April.

That kind of sustained star growth, months after initial launch, typically reflects actual adoption rather than launch-day hype. Developers star tools they are actively using or evaluating, not tools they vaguely heard about. Combined with the revenue figures, the star growth confirms a tool that is growing into its user base rather than exhausting an initial wave of enthusiasm.

v2.1.119 is not a headline release. But if you’re running Claude Code in any enterprise context involving GitLab, Bitbucket, GitHub Enterprise, or CI/CD pipelines, it is one of the more practically useful updates the tool has shipped.


Sources:

Related