Run both halves of the realtime frame parity in CI
The codec's byte parity rests on two vector files written from opposite sides: `realtime-frame-vectors.json` by the C# reference and decoded by TypeScript, and `realtime-frame-vectors.ts-written.json` by the TypeScript codec and decoded by C#. Neither half ran in CI. The TypeScript suite ran nowhere — cultmesh-ts was not in any job — and the C# test ran nowhere either, because `cultnet-interop.yml` is windows-latest and main-only and does not filter for it. A codec that agreed only with itself would have gone green on every push, which is the exact failure the two-file scheme exists to prevent. Both now run in the `reactive-and-resource-lifetime` job beside the authority steps, on windows-latest and ubuntu-latest, for main, codex/** and pull requests. That job was already the one place the TypeScript side of CultMesh gets exercised on Linux at all. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
9a4c9396b4
commit
6ed0ff75af
1 changed files with 18 additions and 0 deletions
18
.github/workflows/cultmesh-portability.yml
vendored
18
.github/workflows/cultmesh-portability.yml
vendored
|
|
@ -109,6 +109,15 @@ jobs:
|
|||
- name: Verify the browser client against the shared TypeScript verifier
|
||||
run: npm run test --workspace packages/cultmesh-browser
|
||||
|
||||
# The realtime frame codec. Its byte parity rests on two vector files,
|
||||
# contracts/cultmesh/realtime-frame-vectors.json written by the C#
|
||||
# reference and decoded by this step, and realtime-frame-vectors.ts-written.json
|
||||
# written by this codec and decoded by the C# step below. Neither half ran
|
||||
# in CI on any OS until these two steps existed, so a codec that agreed
|
||||
# only with itself would have gone green.
|
||||
- name: Verify the realtime frame codec with the TypeScript codec
|
||||
run: npm run test --workspace packages/cultmesh-ts
|
||||
|
||||
# Both directions of the CultMesh authority vectors: the C#-written
|
||||
# file (contracts/cultmesh/authority-route-vectors.json) and the
|
||||
# TypeScript-signed file (authority-route-vectors.ts-signed.json) are
|
||||
|
|
@ -120,3 +129,12 @@ jobs:
|
|||
dotnet test tests/GameCult.Mesh.Tests/GameCult.Mesh.Tests.csproj
|
||||
--filter FullyQualifiedName~AuthorityProof
|
||||
--logger "console;verbosity=minimal"
|
||||
|
||||
# The other half of the frame parity: the C# reference decodes and
|
||||
# re-encodes the vector file the TypeScript codec wrote. A fixture
|
||||
# authored on one side alone would only agree with itself.
|
||||
- name: Verify the realtime frame vectors with the C# reference
|
||||
run: >-
|
||||
dotnet test tests/GameCult.Mesh.Tests/GameCult.Mesh.Tests.csproj
|
||||
--filter FullyQualifiedName~RealtimeWireProtocol
|
||||
--logger "console;verbosity=minimal"
|
||||
|
|
|
|||
Loading…
Reference in a new issue