CultLib/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens ea5a07b37a Own serialization options by the document's assembly
The static UntrustedData options are gone. An assembly declares its formatter
resolvers with [assembly: CultCacheFormatterResolver(typeof(R))];
CultDocumentMessagePackSerialization.OptionsFor(assembly) composes them ahead
of CultDocumentResolver and StandardResolver, once per assembly, and hands
assemblies that declare nothing the base Options. Generated codecs and the
reflective SerializeUntyped/DeserializeUntyped path both read
OptionsFor(typeof(X).Assembly). No registration call, no mutable options, no
load order.

CultMessagePackSecurity copies UntrustedData and supplies a collision-resistant
comparer over CultRecordRef<T>.Key.Value, so ref-keyed dictionaries
deserialize.

Tests: RefKeyedDictionaryRoundTrips failed on 825b4f7 ("No hash-resistant
equality comparer available"); DeclaredResolverEncodesValueTypeAsPositionalArray
and UnknownAssemblyGetsBaseOptions did not compile there (new API);
InteropNoteBytesUnchanged is a pin whose payload constant was captured on
825b4f7. BenchItem, the one unkeyed [CultDocument] in any consumer (in-memory
benchmark, no store), gains [Key]s in its existing slot order.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:12:53 +02:00
..
GameCult.Caching.ConsumerBuild Stop MessagePack's source generator flowing to consumers 2026-09-13 21:09:16 +02:00
GameCult.Caching.InteropPeer Pin CultNet publish-after-commit, add write-routed interop, update contract status 2026-09-13 17:58:00 +02:00
GameCult.Caching.Tests Own serialization options by the document's assembly 2026-09-13 21:12:53 +02:00
GameCult.Geometry.Tests Add CultGeometry isosurface extraction 2026-08-26 17:37:22 +02:00
GameCult.Mesh.Quic.Native.Tests Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
GameCult.Mesh.Quic.Tests Recover authority-bound CultMesh and atomic generations 2026-08-26 19:01:24 +02:00
GameCult.Mesh.Tests Mirror snapshots carry the cache Sequence they reflect 2026-09-13 21:02:49 +02:00
GameCult.Networking.InteropPeer Add C# interop RUDP serve dial path 2026-06-17 11:22:17 +01:00
GameCult.Networking.Tests Carry order as data: per-cache change Sequence, no delivery scheduler 2026-09-13 20:43:11 +02:00
GameCult.Networking.WebSockets.Tests Add real browser CultMesh transport proof 2026-08-18 00:05:57 +02:00