From 51eaa7fee9303c0d541c0301579d09aaa010e354 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 21:12:31 +0000 Subject: [PATCH] chore(release): version packages --- .changeset/i18n-false-meta-safety.md | 30 --------------------------- packages/cli/CHANGELOG.md | 9 ++++++++ packages/cli/package.json | 2 +- packages/mcp/CHANGELOG.md | 31 ++++++++++++++++++++++++++++ packages/mcp/package.json | 2 +- 5 files changed, 42 insertions(+), 32 deletions(-) delete mode 100644 .changeset/i18n-false-meta-safety.md diff --git a/.changeset/i18n-false-meta-safety.md b/.changeset/i18n-false-meta-safety.md deleted file mode 100644 index 54c04da..0000000 --- a/.changeset/i18n-false-meta-safety.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -"@contentrain/mcp": patch ---- - -fix(mcp): make i18n:false delete and meta cleanup safe - -Two bugs a project hit while cleaning up an `i18n: false` collection, plus a -source-hygiene fix surfaced along the way. - -**`content_delete` no longer destroys content when handed a locale.** On an -`i18n: false` model, passing a non-default `locale` was destructive: the locale -mapped onto `data.json` and the default-locale meta, so the call emptied the -shared content and deleted the wrong meta file while the locale actually named -kept its stray meta — the opposite of the request. Content is locale-agnostic -here, so a locale-scoped delete is now rejected with a clear error (both in the -plan API and the legacy path). Omit `locale` to delete the entry. - -**`contentrain_validate` with `fix: true` now clears the meta layout mismatch it -warns about.** The "Meta layout mismatch" warning had no remediation, so `fixed` -stayed `0`. The fix is deterministic and never decides a status: when the -default-locale meta is authoritative the redundant strays are pruned; when only -a stray exists it is migrated to the default path so the record is preserved; -several strays with no default is left for the author to resolve. Consolidation -runs before the orphan-content pass and gates that pass's draft fabrication, so -a real published record is never replaced by a fabricated draft and then deleted -on a later run. - -Also replaced two raw NUL bytes in the validator source (a Map-key separator) -with a `\u0000` escape — identical at runtime, but the source is now plain text -instead of being classified as binary by grep/diff/editors. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 706598a..1072b88 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,14 @@ # contentrain +## 0.7.10 + +### Patch Changes + +- Updated dependencies [a0d5bfe] + - @contentrain/mcp@2.0.1 + - @contentrain/rules@0.6.0 + - @contentrain/skills@0.6.0 + ## 0.7.9 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index b39eaa6..f58d909 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "contentrain", - "version": "0.7.9", + "version": "0.7.10", "license": "MIT", "description": "CLI for Contentrain — AI content governance infrastructure", "type": "module", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 4e1f18d..0810b92 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,36 @@ # @contentrain/mcp +## 2.0.1 + +### Patch Changes + +- a0d5bfe: fix(mcp): make i18n:false delete and meta cleanup safe + + Two bugs a project hit while cleaning up an `i18n: false` collection, plus a + source-hygiene fix surfaced along the way. + + **`content_delete` no longer destroys content when handed a locale.** On an + `i18n: false` model, passing a non-default `locale` was destructive: the locale + mapped onto `data.json` and the default-locale meta, so the call emptied the + shared content and deleted the wrong meta file while the locale actually named + kept its stray meta — the opposite of the request. Content is locale-agnostic + here, so a locale-scoped delete is now rejected with a clear error (both in the + plan API and the legacy path). Omit `locale` to delete the entry. + + **`contentrain_validate` with `fix: true` now clears the meta layout mismatch it + warns about.** The "Meta layout mismatch" warning had no remediation, so `fixed` + stayed `0`. The fix is deterministic and never decides a status: when the + default-locale meta is authoritative the redundant strays are pruned; when only + a stray exists it is migrated to the default path so the record is preserved; + several strays with no default is left for the author to resolve. Consolidation + runs before the orphan-content pass and gates that pass's draft fabrication, so + a real published record is never replaced by a fabricated draft and then deleted + on a later run. + + Also replaced two raw NUL bytes in the validator source (a Map-key separator) + with a `\u0000` escape — identical at runtime, but the source is now plain text + instead of being classified as binary by grep/diff/editors. + ## 2.0.0 ### Major Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 8f9ab80..c8d7ce8 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@contentrain/mcp", - "version": "2.0.0", + "version": "2.0.1", "mcpName": "io.github.Contentrain/contentrain", "license": "MIT", "description": "Local-first MCP server for AI-generated content governance — 24 deterministic tools (19 core + 5 media), stdio + HTTP transports, Local / GitHub / GitLab providers",