CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 9118e24976 CultMesh TS: a document is read only under an id its type declares
Soul F3 and F4, and F1 in CultMesh's schema descriptor.

- The schema descriptor built from a definition uses schemaIdentityOf, so
  a handle's schema id is the id the cache stamps.
- Store documents (F3): a handle reads the record under its schema id, or,
  for a definition, under an id the definition lists as compatible, as the
  cache resolves it. The catalog-entry name/version match and both parse
  fallbacks are deleted: a record under another id is not this document,
  whatever its payload parses as.
- Peer snapshots (F4): syncDocumentFromPeerSnapshot and definition-named
  peer-snapshot handles take the peer's record at the key under the type's
  schema id only. The shape filter is deleted and no match is not-found.
  P8a (syncing A at k while the peer holds only B at k overwrote the local
  B and then threw) and P8b (a peer's C stored as A) write nothing now.
- HELD: a peer-snapshot handle named by a bare schema-id string still takes
  the first record at the key. Eve Electron reads the C# Aetheria daemon
  that way (EveElectron src/cultmesh-provider-client.mjs:129-142): the
  daemon stamps SHA-256 schema ids and the client asks by
  "gamecult.eve.provider_advertisement.v1", so only the fallback finds its
  records. How a TS reader names a C#-hosted schema is raised as a fork;
  the fallback goes when it is ruled.

Tests: the store- and peer-snapshot tests that asserted shape routing are
replaced by tests of the refusal, including P8a and P8b, and one that pins
the held fallback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:49:57 +02:00
..
cultcache-py Python: a document listing an id registers beside the one owning it; registration refuses typed 2026-09-30 15:31:25 +02:00
cultcache-rs Rust: a registered type owns its schema id, so only it may name an id over records the file holds 2026-09-30 11:10:06 +02:00
cultcache-ts CultCache TS: one function derives a definition's schema identity 2026-09-30 19:49:41 +02:00
cultmath CultMath: Phacelle port moves into MPL-2.0 files; prune cut pinned by boundary points 2026-09-30 00:34:27 +02:00
cultmesh-browser Raise the TypeScript packages' Node floor to 20 2026-09-29 01:21:18 +02:00
cultmesh-kotlin CultMesh Kotlin: the reconciliation self-test note gets its own schema 2026-09-30 18:34:37 +02:00
cultmesh-py One local schema id in cultmesh-py; catalog writers merge only the same schema; a compatible entry before its owner reads as the owner 2026-09-30 09:01:00 +02:00
cultmesh-rs CultNet Rust: a second type for one schema id is refused, typed 2026-09-30 17:47:39 +02:00
cultmesh-ts CultMesh TS: a document is read only under an id its type declares 2026-09-30 19:49:57 +02:00
cultnet-py Writers derive the catalog from the records they write; the merging is deleted 2026-09-30 10:03:34 +02:00
cultnet-rs CultNet Rust: a second type for one schema id is refused, typed 2026-09-30 17:47:39 +02:00
cultnet-ts CultNet TS: the registry resolves only ids a definition declares 2026-09-30 19:49:41 +02:00