Commit graph CultLib/tests/GameCult.Networking.InteropPeer/Program.cs
Author SHA1 Message Date
Meta Vens
546c919d4a Merge the CultCache store-routing cuts into main
Brings Cuts 1-6 of the Aetheria CultCache migration (one home store per
type, fixed routes, atomic commit with compare-exchange, parked SoA) and
CultMath 0.2.0 onto main, which had moved on with the CultNet contract
consolidation. The two lines touch disjoint files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 15:16:29 +02:00
Meta Vens
a5d1be650d Mark every Cult document [MessagePackObject]
PlayerData, CultMeshSimulationFact, the Networking interop peer's
CultNetInteropNote, the cultnet-py benchmark item and the Caching test
documents lacked [MessagePackObject]. Only the generated codec could
serialize them; MessagePackSerializer refuses such types. Non-public test
documents take [MessagePackObject(AllowPrivate = true)], as consumer
internal documents already do, and ConditionalCommitTests.Slow marks its
private backing fields [IgnoreMember].

Same [Key]s, so payloads are unchanged: a pre/post probe over the
Networking assembly and both interop peers showed identical schema id,
content hash and payload bytes for all 9 documents, PlayerData equal once
its Guid.NewGuid() default id is masked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 23:38:08 +02:00
Meta Vens
fcc49cffa0 Consolidate CultNet schema contracts into CultLib/contracts/cultnet
REC-032 commit 1: move the canonical 33 TS + witness-artifact-bundle
schema files (34 total) into runtime-neutral CultLib/contracts/cultnet,
move the interop-note schema (and delete the zero-consumer discovery-*
schemas per D3, tagged parked/cultnet-discovery-contracts) into
contracts/cultnet/interop, and delete the 27 C# and 24 Rust duplicate
copies after confirming byte-for-byte equivalence (only
cultnet.snapshot-request differs: TS carries shardId/shardEpoch, a
known drift already resolved in favor of the TS shape).

Rewrite every $id from https://github.com/GameCult/cultnet-ts/contracts/
and .../cultnet-ts/integration/contracts/ to
https://github.com/GameCult/CultLib/contracts/cultnet/(interop/); give
the two shard-catalog schemas URL ids per D1, replacing the bare
cultnet.shard_catalog_*.v0 identifiers; leave ghostlight.agent-state's
Ghostlight-owned $id untouched per D5.

Repoint every runtime's load path and id literal at the new location:
C# csproj EmbeddedResource + LogicalName, Rust include_str! paths,
TS contracts.ts imports + swarm-contracts manifest/tooling + package.json
files/prepack, and the id/path literals in the C#, Rust, Python and
Kotlin interop tests and peers. Python and Kotlin still build their own
schema JSON in-process (D2); only their base constants, id literals,
and (for Kotlin) contentHash literals were swapped. Every Kotlin
contentHash was recomputed from the final canonical files using the
runtime's own stable-stringify + SHA-256 function; all matched the
planner's precomputed values except cultnet.schema-catalog-response,
where the planner's proposed value did not match recomputation and the
freshly computed value was used instead.

REC-032, decisions D1/D2/D3/D5.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 17:27:41 +02:00
Meta Vens
cd3f3c28f6 Add C# interop RUDP serve dial path 2026-06-17 11:22:17 +01:00
Meta Vens
6373f8126b Add C# RUDP schema message ergonomics 2026-06-15 23:38:42 +01:00
Meta Vens
59146888c0 Propagate RUDP disconnect reasons across runtimes 2026-06-15 03:11:46 +01:00
Meta Vens
436654de75 Prove RUDP reordering across runtimes 2026-06-15 02:52:01 +01:00
Meta Vens
d6f5ee28b0 Add RUDP fragmentation across runtimes 2026-06-15 02:26:34 +01:00
Meta Vens
4209bbb9b6 Prove RUDP response resend across runtimes 2026-06-15 01:40:43 +01:00
Meta Vens
d070869c75 Prove CSharp RUDP interop with TypeScript 2026-06-15 01:06:43 +01:00
Meta Vens
8ce89688e2 Add C# CultNet transport port 2026-06-14 21:59:09 +01:00
Meta Vens
a2bc9aeab4 Advertise CultNet transport profiles 2026-06-14 21:20:52 +01:00
Meta Vens
e443631f42 Exercise CultNet interaction parity 2026-05-16 10:20:08 +01:00
Meta Vens
bb1437dc58 Use CultNet binding schema ids for raw records 2026-05-16 09:16:43 +01:00
Meta Vens
c26870b803 Generate explicit CultCache payload codecs 2026-05-08 02:19:27 +01:00
Meta Vens
da94389ee2 Rewrite CultCache as attribute-first storage 2026-05-08 01:13:15 +01:00
Meta Vens
123f0147e7 Add CultNet C# interop peer harness 2026-05-06 13:22:01 +01:00