Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .changeset/i18n-false-meta-safety.md

This file was deleted.

9 changes: 9 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
31 changes: 31 additions & 0 deletions packages/mcp/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
Loading