CultCache interop: C# union and nested-bytes store read by Rust read-only, and back #139

Merged
libby merged 1 commit from libby/cs-writer-rs-reader into main 2026-11-12 12:16:54 +00:00
Member

Follow-up cultlib-gaps:follow_up:chat-s7178-7178 item (3).

Extends the existing harness (packages/cultcache-ts/test/cult-cache.test.ts driving the C# and Rust interop peers) rather than adding one. New peer modes write-shapes / read-shapes in the C# peer and the Rust example: two records with a union field (two arms) and nested bytes (a bin member, a bin list incl. an empty chunk, all 256 byte values).

  • C# writes, Rust reads via pull_all_read_only_snapshot (no lock, no write); Rust writes, C# reads: equal both ways.
  • Leftover staging files in both runtimes' naming sit beside the store; the read must leave them and the store bytes untouched.
  • Variant (document-variants) records are not included: Rust refuses those by design (existing vectors cover it).
  • Bites: flipping one byte of a record before the read fails the test with the text diff; restored, it passes.
  • Linux CI: cultmesh-portability.yml runs npm run test --workspace packages/cultcache-ts on ubuntu-latest for pull_request, after .NET and Rust setup, so it runs there.

🤖 Generated with Claude Code

Follow-up cultlib-gaps:follow_up:chat-s7178-7178 item (3). Extends the existing harness (`packages/cultcache-ts/test/cult-cache.test.ts` driving the C# and Rust interop peers) rather than adding one. New peer modes `write-shapes` / `read-shapes` in the C# peer and the Rust example: two records with a union field (two arms) and nested bytes (a bin member, a bin list incl. an empty chunk, all 256 byte values). - C# writes, Rust reads via `pull_all_read_only_snapshot` (no lock, no write); Rust writes, C# reads: equal both ways. - Leftover staging files in both runtimes' naming sit beside the store; the read must leave them and the store bytes untouched. - Variant (document-variants) records are not included: Rust refuses those by design (existing vectors cover it). - Bites: flipping one byte of a record before the read fails the test with the text diff; restored, it passes. - Linux CI: `cultmesh-portability.yml` runs `npm run test --workspace packages/cultcache-ts` on ubuntu-latest for pull_request, after .NET and Rust setup, so it runs there. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
CultCache interop: C# and Rust write a union and nested bytes, the other reads them read-only
All checks were successful
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 29m46s
e3bce664e0
Extends the existing cross-runtime harness (cultcache-ts interop test, C# and Rust interop peers) with
write-shapes/read-shapes: a union field with two arms and bin members. Rust reads through the read-only
snapshot door; leftover staging files of both runtimes sit beside the store and must survive the read,
and the store bytes must not change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit f4fe424d41 into main 2026-11-12 12:16:54 +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!139
No description provided.