CultLib/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 64b86e0a27 write-ownership-cs: a write owns a record by the written type; one-batch retype is eviction then add (squash of hands/variants-write-ownership a4eae905..8c7252ea)
A write owns the record at its key when the written type declares the
record's schema id, or reads an older undeclared id of its own schema name
whole (ruling own-entry-reads-whole); every other registered type's record
is refused, in every cache, with or without a backing store
(cache-refuses-retype).

Removing a record and adding one of another type in a single batch is
staged as the held record's eviction then the add, so validators, Claim,
the store judges and the change journal see what they see staged apart
(one-batch-retype-is-eviction-then-add); Watch<old> gets Removed and
Watch<new> Added. A one-batch retype across home stores is refused by the
batch-spans rule and must be staged apart. A variant rebase changes type
exactly where a plain write may (variant-rebase-follows-plain-write).
Store kinds outside the library get one protected per-key judge
(store-kind-per-key-judge), exercised by tests/GameCult.Caching.OutsideStoreTests.

Spec variants:cut_spec:cut-write-ownership-cs.r1; reports h1-h5;
Soul s5 clears the merge (verdict variants:verdict:cut-write-ownership-cs.s5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:22:20 +01:00
..
GameCult.Caching.ConsumerBuild Cacheless single-file API: WriteDocument encodes the declared type, the registry is the call's argument, DecodeDocument moves to CultCodec, ReadStoreSnapshot's gate is pinned 2026-10-23 01:38:16 +02:00
GameCult.Caching.GeneratorConsumer GeneratorConsumer: skip every ref-keyed dictionary serialization under NativeAOT 2026-10-28 00:03:21 +01:00
GameCult.Caching.InteropPeer Merge main at cultlib-unity-v2.0.0 (42dce361) into C2a: one owner per collision 2026-10-22 20:35:33 +02:00
GameCult.Caching.OutsideStoreTests write-ownership-cs: a write owns a record by the written type; one-batch retype is eviction then add (squash of hands/variants-write-ownership a4eae905..8c7252ea) 2026-10-28 08:22:20 +01:00
GameCult.Caching.Tests write-ownership-cs: a write owns a record by the written type; one-batch retype is eviction then add (squash of hands/variants-write-ownership a4eae905..8c7252ea) 2026-10-28 08:22:20 +01:00
GameCult.Geometry.Tests GeometryDocumentTests: a generated formatter passes the element-id door 2026-10-15 20:52:25 +02:00
GameCult.Mesh.Quic.Native.Tests Extend the Cut 5 interop lane: a late C# native connector gets the TS retained frame 2026-09-23 18:32:39 +02:00
GameCult.Mesh.Quic.Tests Fix a flaky disconnect wait in the reliable-ordered retention test 2026-09-23 18:20:36 +02:00
GameCult.Mesh.Tests Content vectors tests: chunk-ref extras sit past the id slot; add id-slot cases (chunk_id_str, chunk_id_int, chunk_id_str8, chunk_6) 2026-10-22 21:33:49 +02:00
GameCult.Networking.InteropPeer Ack Cut 1c (C#): a Connect's sequence says whether it repeats; the handshake alone seeds the watermark 2026-09-30 05:51:14 +02:00
GameCult.Networking.Tests RemoteWriteAuthorityTests: pin the refusal on the wire, the aliased delete's canonical ask and the null decision 2026-10-28 01:43:18 +01:00
GameCult.Networking.WebSockets.Tests Add real browser CultMesh transport proof 2026-08-18 00:05:57 +02:00
vectors Tests: C# refusal lines carry their source and the gate counts them distinct 2026-10-27 09:35:23 +01:00