TS: write_admitted / error.v1 decoder, WriteTracker, vector replay runner #62
Loading…
Reference in a new issue
No description provided.
Delete branch "libby/ts-write-receipt-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
TS client half of the write receipt spec (#59); stacked on #59 (its commits appear until #59 merges; review only the top commits).
cultnet.write_admitted.v0andcultnet.error.v1decode/encode in cultnet-ts (closed code set incl.limit_reached); error.v0 untouched; a hello is receipt-capable only when it lists both frames.WriteTracker(packages/cultnet-ts/src/write-tracker.ts): outcomes admitted / refused(code) / unconfirmed(window_elapsed|session_ended), admitted_late / refused_late recorded, id-less errors attributed only with exactly one unanswered write, window from send (5000 ms receipt peer, 500 ms legacy).publishRudpDocumentOnce: opt-inwriteReceipts: true(sends hello, waits 500 ms for the server hello); otherwise behaviour unchanged. Silence or session end against a receipt peer throwsCultMeshRudpWriteUnconfirmedError.packages/cultnet-ts/tools/replay-write-receipt-vectors.mjs: 32/32 (constants, 6 wire frames, 7 invalid frames, 18 scenarios); exit nonzero on failure; interface documented in the cultnet-ts README ("Write receipt replay runner") for Rust and C# to port.Tests: cultnet-ts 301 (1 pre-existing esbuild failure), cultmesh-ts 256 (198 pass, 0 fail). StrykerJS absent: 31 hand-run tracker mutants, 27 killed, 2 compile errors, 2 survivors killed after new tests.
Not reached:
publishRudpDocumentAndWaitForReceipt; server dedupe vectors not replayed; no run against a real cultmesh-ts server; schemas read from contracts/cultnet/interop/. No tag, no publish.🤖 Generated with Claude Code
8dc75c55226eb6d2440e6eb6d2440ec89c4ee39a