From 8b780a27bc486b08ade9497ae6430c2af6c7f8ea Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 23 Oct 2026 12:17:32 +0200 Subject: [PATCH] cultcache-py CHANGELOG: registration refusals are SchemaConflictError, one owner per schema id, records resolve by schema id first Co-Authored-By: Claude Opus 5.5 --- packages/cultcache-py/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/cultcache-py/CHANGELOG.md b/packages/cultcache-py/CHANGELOG.md index 60db4f59..d2f76628 100644 --- a/packages/cultcache-py/CHANGELOG.md +++ b/packages/cultcache-py/CHANGELOG.md @@ -10,3 +10,6 @@ write the catalog cannot describe. A store is exactly three slots; a schema is never recovered from a record's payload. - The single-file writer derives the catalog from the records it writes: one entry per carried schema id, the registered entry over an arrived one, written as chosen and never merged. A cache stamps a record with its registered schema's id. +- Every registration refusal is now a `SchemaConflictError`, a `ValueError`, where it was a `CultCacheError`, a `RuntimeError`: registering a document type or a schema name twice no longer raises what `except CultCacheError` or `except RuntimeError` catches. +- Two documents that own one schema id are refused at registration (`SchemaConflictError`). 2.0.1 accepted them. A document may still list another's id as compatible. +- A loaded record resolves by its schema id first: the document that owns the id, else the one document that lists it as compatible; several listers and no owner refuse the record with `SchemaConflictError`. The record's type name resolves it only when its schema id names no registered document. 2.0.1 resolved by the record's type name alone.