CultLib/tests/GameCult.Mesh.Tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 825b4f7d26 Mirror snapshots carry the cache Sequence they reflect
ObserveAsync, ReactiveAsync and RefreshAsync read a snapshot without a
Sequence, so an older change admitted before the read but delivered after it
overwrote the newer value.

CultCache.GetWithSequence(key) returns the document and the cache's Sequence,
read together under the gate. A cache-backed CultMesh handle passes it to its
mirrors; each mirror subscribes first, then adopts the sequenced read under its
own gate and takes that Sequence as applied, so a straggler at or below it
drops. RefreshAsync on both mirrors uses the same adoption path. Public Mesh
surface unchanged. The read is non-generic because the Mesh route needs the
untyped document for same-schema conversion.

Contract: only Watch/WatchRecord changes carry Sequence; OnUpdate-derived
CultNet streams have no ordering or stale protection; schema-alias handles and
removals are not stale-protected; the sequence constructor argument changed
CultCacheDocumentChange<T>'s binary signature.

Tests: ObserveAfterNewerSnapshotIgnoresStraggler and
RefreshIgnoresStragglerOlderThanSnapshot (observed and reactive cases) fail on
4562340; SequencedReadReflectsEveryChangeAtOrBelowItsSequence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:02:49 +02:00
..
CultMeshAuthorityProofTests.cs Ship authenticated remote transports in Unity package 2026-08-18 20:23:27 +02:00
CultMeshAuthorityResolverTests.cs Centralize CultMesh authority resolution 2026-07-13 14:00:26 +01:00
CultMeshBodyPublicationTests.cs Keep exact live subscriptions active before publication 2026-07-19 11:49:18 +01:00
CultMeshBodySessionTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshBodyTransportTests.cs Fence body commits by demand generation 2026-08-19 14:27:22 +02:00
CultMeshCdnTests.cs Add CultMesh distributed asset packages 2026-06-28 07:54:00 +01:00
CultMeshClientTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshContentSessionTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshContentTransferTests.cs Stream CDN artifacts in coarse durable windows 2026-07-19 20:29:07 +01:00
CultMeshDeterministicNetwork.cs Establish CultMesh reliability failure harness 2026-07-12 19:56:20 +01:00
CultMeshDiscoveryServiceTests.cs Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
CultMeshEntityPrefabTests.cs Add CultMesh distributed asset packages 2026-06-28 07:54:00 +01:00
CultMeshFrameBodyTests.cs Support mapped frame bodies on Unix 2026-08-18 04:18:46 +02:00
CultMeshProviderSessionWireTests.cs Fence provider RUDP connection generations 2026-07-19 00:50:20 +01:00
CultMeshReliabilityDiagnosticsTests.cs Establish CultMesh reliability failure harness 2026-07-12 19:56:20 +01:00
CultMeshSessionManagerTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshStreamingTests.cs Mirror snapshots carry the cache Sequence they reflect 2026-09-13 21:02:49 +02:00
CultMeshTestTrust.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshTransportModularityTests.cs Bind CultMesh application ingress to session identity 2026-08-18 23:08:59 +02:00
GameCult.Mesh.Tests.csproj Bind CultMesh application ingress to session identity 2026-08-18 23:08:59 +02:00