Skip to content

Contentrain/ai

v@contentrain/[email protected] Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agents claude-code content-governance contentrain cursor developer-tools
+8 more
git i18n mcp mcp-server model-context-protocol sdk typescript windsurf

Affected surfaces

breaking_upgrade

ReleasePort's take

Light signal
editorial:auto 11d

RepoProvider.mergeBranch now preserves the source branch by default, avoiding accidental deletion of protected or long‑lived branches.

Why it matters: Prevents unintended loss of critical code paths; all merges automatically retain source branches unless explicitly overridden.

Summary

AI summary

Fix: RepoProvider.mergeBranch no longer deletes the source branch by default, preventing accidental deletion of protected or long‑lived branches.

Changes in this release

Bugfix Medium

RepoProvider.mergeBranch no longer deletes source branch by default; protected branches are never deleted.

RepoProvider.mergeBranch no longer deletes source branch by default; protected branches are never deleted.

Source: llm_adapter@2026-07-16

Confidence: low

Bugfix Medium

`RepoProvider.mergeBranch` now leaves the source branch intact by default.

`RepoProvider.mergeBranch` now leaves the source branch intact by default.

Source: granite4.1:30b@2026-07-16-audit

Confidence: low

Full changelog

Patch Changes

  • c444561: Fix: RepoProvider.mergeBranch no longer deletes the source branch by default (regression), and never deletes a protected branch even when asked

    The GitHub/GitLab providers' mergeBranch deleted the merged source branch by default (opt-out via removeSourceBranch: false). Because the primitive deletes whatever branch it is given, a driver merging a long-lived branch — contentrain → main (publish) or main → contentrain (sync) — would delete contentrain or main. This was a destructive-default change that shipped in a minor; it is a regression.

    • Opt-in, not opt-out. Like git merge and the platform merge APIs, mergeBranch now leaves the source branch in place by default. Callers that want the merged branch removed (e.g. cr/* review-branch cleanup) pass removeSourceBranch: true.
    • Mandatory guard. Even when opted in, the cleanup NEVER deletes the merge target (into), the contentrain content branch, or the repo's default branch (resolved via getDefaultBranch; fail-safe skips the delete if it can't be resolved). This mirrors the LocalProvider's existing cr/*-only guard and defends against head/base confusion.

    Applies to both the GitHub and GitLab providers. The LocalProvider path is unchanged (it already merges only cr/* branches and guards its remote cleanup). Studio's explicit removeSourceBranch: false pin remains valid and harmless.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Contentrain/ai

Get notified when new releases ship.

Sign up free

About Contentrain/ai

Local-first MCP server for AI content governance — 13 tools for model/content CRUD, validation, normalization, and i18n across any framework.

All releases →

Related context

Earlier breaking changes

Beta — feedback welcome: [email protected]