CultLib/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 5cf31d1e87 CultNet selection cut1 fix batch 3, Rust half: R-N/R-O/R-T, retire the Rust mutation harness
docs/cultnet-selection-cut.md, Self's rulings for fix batch 3 (2026-09-22),
the Rust-owned share:

- R-N: cultnet.error.v0 gains additive code/details fields. SelectionRefusal
  now maps to a wire code (selection_invalid, cursor_stale, cursor_invalid,
  reference_outside_target) and a flat string-map details payload via
  to_wire_message(); the legacy array wire (gamecult.networking.v0) has no
  slot for either and never carries them, matching v0 peers ignoring them.
- R-O: the snapshot cursor is keyed. CursorKey is a random 32-byte
  per-process key; Cursor::mint/compute_digest now take it and use
  HMAC-SHA256 instead of plain SHA-256, so a cursor forged without the key,
  or minted under a different process's key, is refused cursor_invalid.
  Cursor::parse stays public and decodes as_of without the key (Huginn's
  dependency); only verify_digest (called from select()) needs it. The
  cursor body itself is now length-prefixed fields, not a delimiter-joined
  string, so a record key carrying any character - including the pre-fix
  C# delimiter U+241F - round-trips.
- R-T: matches_citation (the `cites` path) now checks every one of a
  citer's edges against its declared target before applying the
  citation's own role/key filters, closing F15: a corrupt edge used to
  hide behind an unrelated filter and never get validated.
- The retired Rust mutation harness entries file
  (scripts/mutate-cultnet-selection-rust.entries.ps1) is deleted; tests
  pin the behaviour directly.

Regenerated contracts/cultnet/interop/selection-vectors.rs-written.json
from the shared fixture; it is byte-identical to what was committed, so
R-T's fix does not change any existing fixture vector's outcome. The Rust
reader still evaluates every vector in the committed cs-written.json
(15/15) unchanged - that file predates the parallel C# Hands' R-N/R-S
work and was not touched here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 19:26:56 +02:00
..
build-quic-native.ps1 Correct stale Schannel/40,448-byte claims, ship OpenSSL's license notice 2026-09-17 19:49:14 +02:00
build-quic-native.sh Give the bridge a Linux build the deploy host's own distribution can produce 2026-09-16 21:04:14 +02:00
build-unity-package.ps1 Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
check-changelog-semver.mjs Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
check-changelog-semver.test.mjs Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
measure-reactive-document-performance.mjs Measure reactive performance across runtimes 2026-08-18 03:08:01 +02:00
measure-reactive-document-performance.ps1 Split the Python runtime into cultcache-py, cultnet-py, cultmesh-py 2026-09-10 13:10:47 +02:00
mutate-cultmesh.mjs Say what the restore digest is, since it is not an identity 2026-09-17 03:11:05 +02:00
pack-nuget.ps1 Delete the CultCache MessagePack source generator 2026-09-13 23:38:08 +02:00
quic-native-linux-dev.Dockerfile Offer the container line to both shells, and name the short-path requirement 2026-09-17 02:44:47 +02:00
run-typescript-workspaces.mjs Run the TypeScript workspaces by the name cultcache-ts actually has 2026-09-16 20:19:49 +02:00
sign-cultmesh-authority-vectors.mjs Pin the TypeScript-signed direction of the authority parity check 2026-09-16 16:27:06 +02:00
test-typescript-package-closure.mjs Let the verse catalog schema say what the reference emits 2026-09-10 13:55:46 +02:00
verify-caching-unity-release.ps1 Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
verify-eve-browser-network.mjs Let the browser sample read the provider's advertisement 2026-09-10 13:55:46 +02:00
verify-eve-getting-started.ps1 Ship authenticated remote transports in Unity package 2026-08-18 20:23:27 +02:00
verify-eve-two-runtime-sample.ps1 Retain native clients across provider routes 2026-08-18 03:34:59 +02:00
verify-reactive-document-scaling.ps1 Split the Python runtime into cultcache-py, cultnet-py, cultmesh-py 2026-09-10 13:10:47 +02:00
write-cultmesh-realtime-frame-vectors.mjs Encode a CultMesh realtime frame in TypeScript 2026-09-16 19:20:41 +02:00