docs(start): tested CultNet first-call snippets (C#, TypeScript, Rust, Python) #11

Merged
libby merged 2 commits from libby/start-cultnet-cells into main 2026-11-07 12:10:56 +00:00
Member

Fills the four CultNet cells in the docs/start language x package matrix. Each runtime defines a typed document, sends it as a cultnet.document_put_raw.v0 message over a loopback pipe (TCP loopback for C#, TypeScript and Rust; a socket pair for Python) and applies it to a second cache. A second test in each file fails if docs/start/README.md stops showing the snippet verbatim.

Run by:

  • C#: dotnet test tests/GameCult.Networking.Tests --filter CultNetFirstCallTests (2 passed)
  • TypeScript: npm test in packages/cultnet-ts, after npm run build in packages/cultcache-ts; node --test dist-test/test/first-call.test.js runs just this file (2 passed)
  • Rust: cargo test --test first_call in packages/cultnet-rs (2 passed)
  • Python: python -m unittest tests.test_first_call in packages/cultnet-py with src and ../cultcache-py/src on PYTHONPATH and msgpack installed (2 passed)

Found while writing the TypeScript one: CultNetDocumentRegistry.createDocumentPutMessage leaves sourceRuntimeId, sourceAgentId, sourceRole and tags as undefined, which MessagePack encodes as nil, so the receiving peer's parseCultNetMessage rejects the message (/document/sourceRuntimeId: must be string ...). The TypeScript snippet therefore uses the raw put. Not fixed here.

🤖 Generated with Claude Code

Fills the four CultNet cells in the docs/start language x package matrix. Each runtime defines a typed document, sends it as a `cultnet.document_put_raw.v0` message over a loopback pipe (TCP loopback for C#, TypeScript and Rust; a socket pair for Python) and applies it to a second cache. A second test in each file fails if docs/start/README.md stops showing the snippet verbatim. Run by: - C#: `dotnet test tests/GameCult.Networking.Tests --filter CultNetFirstCallTests` (2 passed) - TypeScript: `npm test` in packages/cultnet-ts, after `npm run build` in packages/cultcache-ts; `node --test dist-test/test/first-call.test.js` runs just this file (2 passed) - Rust: `cargo test --test first_call` in packages/cultnet-rs (2 passed) - Python: `python -m unittest tests.test_first_call` in packages/cultnet-py with `src` and `../cultcache-py/src` on PYTHONPATH and msgpack installed (2 passed) Found while writing the TypeScript one: `CultNetDocumentRegistry.createDocumentPutMessage` leaves `sourceRuntimeId`, `sourceAgentId`, `sourceRole` and `tags` as undefined, which MessagePack encodes as nil, so the receiving peer's `parseCultNetMessage` rejects the message (`/document/sourceRuntimeId: must be string ...`). The TypeScript snippet therefore uses the raw put. Not fixed here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(start): tested CultNet first-call snippets for C#, TypeScript, Rust, Python
Some checks failed
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest one-command multiplayer onboarding (pull_request) Failing after 1m18s
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 56s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Failing after 43s
CultMesh portability and performance / windows-latest one-command multiplayer onboarding (pull_request) Has been cancelled
CultMesh portability and performance / windows-latest reactive semantics and leases (pull_request) Has been cancelled
CultNet cross-runtime interop / C# / TypeScript / Rust / Python / Kotlin (pull_request) Has been cancelled
be0502c897
Each sends a typed document as a document_put_raw message over a loopback
pipe and applies it to a second cache; a second test per runtime fails when
docs/start/README.md stops showing the snippet verbatim.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge remote-tracking branch 'origin/main' into HEAD
Some checks failed
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 6m11s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 26s
00345b424b
# Conflicts:
#	docs/start/README.md
libby merged commit 778a4032c4 into main 2026-11-07 12:10:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!11
No description provided.