release: v0.51.1 — collection-id divergence + faceted-catalog scoping fixes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ben Stull
2026-06-07 22:30:09 -07:00
parent 2fc7029bd9
commit 52f465b4dd
3 changed files with 29 additions and 2 deletions
+27
View File
@@ -23,6 +23,33 @@ 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.1 — 2026-06-07
**Patch — two §22 correctness fixes (no operator action required).**
- **Faceted catalog / bulk bar now scope to the named collection in the URL.**
`useCollectionId` read the route param, but the catalog renders above the
`c/:collectionId` route, so it always fell back to the default collection —
the faceted filter (§22.4a SLICE-3) and bulk action bar (SLICE-5) never
scoped to a named, `fields:`-bearing collection in the deployed app. It now
resolves the `/c/<id>/` segment from the path. Caught by a new end-to-end
Playwright suite exercising the metadata UI against a real browser + Gitea.
- **Heal the migration-029 vs registry-mirror collection-id divergence.** On a
deployment that already held ≥2 projects when migration 029 ran, the default
project's collection was seeded as the project id while the mirror expects
`'default'`, so the mirror inserted a duplicate empty collection. A new
startup reconciler (`projects.reconcile_default_collection_id`, the
collection-grain twin of the §22.13 re-stamp) renames the divergent
collection to `'default'` before the mirror runs. Idempotent; a no-op on
fresh / single-project / already-aligned deployments (incl. the default
`document` deployment).
Also: the per-IP auth rate-limiter budgets are now env-overridable
(`RATELIMIT_OTC_REQUEST_MAX` / `_VERIFY_MAX` / `_CHECK_MAX`) for test/PPE stacks
that drive auth from one IP; production keeps the secure defaults. The Tier-1
test harness is brought current with the §22 three-tier app.
## 0.51.0 — 2026-06-07
**Minor — bulk tag/untag metadata edit (§22.4a SLICE-5).**