diff --git a/CHANGELOG.md b/CHANGELOG.md index 417be35..ede2458 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,30 @@ skip versions are the composition of each intervening adjacent release's steps in order — no A-to-B path is pre-computed beyond that. +## 0.51.0 — 2026-06-07 + +**Minor — bulk tag/untag metadata edit (§22.4a SLICE-5).** +An authorized user can now apply one metadata field change to many catalog +entries at once. A new endpoint +`POST /api/projects/{id}/collections/{cid}/meta/bulk` takes +`{slugs, op: set|add|remove, field, value}`, validates each entry against the +collection's `fields:` schema at the write boundary (INV-4), writes the passing +entries' `.meta.yaml` **sidecars** in a **single commit** (D7: bulk = one +commit, reusing the SLICE-4 sidecar write-through), re-ingests, and returns +`{applied, rejected}` so partial failures (missing entry, invalid value) are +reported without sinking the batch. `set` works for any field; `add`/`remove` +operate on a `tags`-type field. In the faceted catalog, contributors now get a +per-row selection checkbox and a sticky bulk action bar (one "Set ▾" control per +enum field, add/remove-tag for tags fields); a successful apply toasts the +applied/skipped counts and refreshes the list. This completes PUC-2 of the +[Configurable Collection Metadata](./docs/design/2026-06-06-configurable-collection-metadata.md) +design (§5.3, §6.4/§6.5). + +No deployment action required. The endpoint and the bulk bar are additive and +opt-in per collection: a collection with no `fields:` block (INV-5 — the +default `document` collection) shows no selection UI and the endpoint returns +`422`, so an N=1 deployment sees zero change. + ## 0.50.0 — 2026-06-07 **Minor — single-entry metadata edit + sidecar-aware writes (§22.4a SLICE-4).** diff --git a/VERSION b/VERSION index 564edf8..c5d4cee 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.50.0 +0.51.0 diff --git a/frontend/package.json b/frontend/package.json index 1be35a6..9abf447 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "rfc-app-frontend", "private": true, - "version": "0.50.0", + "version": "0.51.0", "type": "module", "scripts": { "dev": "vite",