CultLib/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens c5b03cb455 CultNet selection cut1, commit 2b: collapse IsSameCultDocumentSchema into the one alias matcher
CultMesh.IsSameCultDocumentSchema (CultMesh.cs) and the decode-time alias check
in CultMeshSnapshots.DecodeSnapshotDocuments both re-implemented schema-identity
comparison independently of CultNetSchemaAliasMatching, the one matcher landed
in commit 1. Both now call CultNetSchemaAliasMatching.Matches; the private
InferSchemaName duplicated at CultMeshSnapshots.cs is deleted (Matches already
applies the same .vN inference internally).

Spec discrepancy, reported per the Hands brief (map contradicted by the Body):
docs/cultnet-selection-cut.md section 4 lists CultMeshSnapshots.cs:1033-1047
(RawSnapshotPayloadMatchesSchema) and :1078-1088 (InferSchemaName) as deletions,
on the stated reasoning that decode no longer needs a client-side re-filter
because the server's v1 answer is exact. Deleting RawSnapshotPayloadMatchesSchema
outright breaks two existing, still-relevant Mesh tests:
SnapshotHelpers_DecodeSameSchemaAliasFromForeignSchemaId and
SnapshotEndpoint_SyncsCompatibleForeignSchemaIdIntoLocalCache
(CultMeshStreamingTests.cs). Both cover a wire schemaId this runtime cannot
resolve by any alias at all (a foreign/runtime-generated id, e.g.
"runtime.generated.mesh-note.ui.42") where the only way to decode is to trust
the payload's own embedded schemaVersion. That is a decode capability, not a
re-filter of an already-exact server answer, and the map's stated reason for
deleting it does not apply to it. Smallest change keeping the map's intent
true: kept RawSnapshotPayloadMatchesSchema and TryReadSchemaVersion, deleted
only the duplicate InferSchemaName inside it and routed the comparison through
CultNetSchemaAliasMatching.Matches.

Test counts, no regressions: Networking 162/162, Mesh 252/253 (the one
pre-existing skip), Caching 188/188.

Negative grep: MatchesRequestedSchema empty. The one remaining
"MatchesSchema(" grep hit is RawSnapshotPayloadMatchesSchema's own name and
declaration, kept for the reason above.

Still outstanding from the map's Mesh collapse (§4/§11, ~365 gross lines):
the five cloned CultMeshSnapshotRequestOptions-carrying option records, the
"no schema filter when keys are given" rule (x3), CleanSnapshotFilter, the
four-tier ReadDocumentFromSnapshotResponse fallback, and every selector
literal in CultMeshClient.cs/CultMeshBodyDemand.cs/CultMesh.cs peer-snapshot
and body-subscribe construction. Those require CultMeshSnapshotRequestOptions
(and the v0 wire builders that read it) to carry a Selection instead of
separate SchemaIds/RecordKeys — a wider, structural change across Mesh's
public surface that is not done in this commit. Recorded as the next slice.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 02:54:53 +02:00
..
GameCult.Caching CultNet selection cut1, commit 0: the cache's public read surface 2026-09-22 01:57:35 +02:00
GameCult.Caching.MessagePack Write an unset CultRecordRef as "" in every position 2026-09-14 21:34:23 +02:00
GameCult.Geometry Make CultMath normalize follow dxc and release 0.2.2 2026-09-14 18:04:04 +02:00
GameCult.Logging JSON backing store, I/O fixes, Networking Security 2026-04-18 13:01:24 +01:00
GameCult.Logging.Unity JSON backing store, I/O fixes, Networking Security 2026-04-18 13:01:24 +01:00
GameCult.Mesh CultNet selection cut1, commit 2b: collapse IsSameCultDocumentSchema into the one alias matcher 2026-09-22 02:54:53 +02:00
GameCult.Mesh.Quic Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
GameCult.Mesh.Quic.Native Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
GameCult.Networking CultNet selection cut1, commit 2a: delete _projectRecord, collapse the fourth schema matcher 2026-09-22 02:44:23 +02:00
GameCult.Networking.WebSockets Recover authority-bound CultMesh and atomic generations 2026-08-26 19:01:24 +02:00
GameCult.Unity Track the new CHANGELOG.md.meta files (force-added like other tracked .meta) 2026-09-17 20:11:48 +02:00
Directory.Build.props Initial commit 2026-04-18 06:04:39 +01:00