c04f9aed23
Adds the single stochasticity source for the SOR measurement instrument so every later stochastic decision (path selection R4, churn/selector R7, padding jitter R4) is driven by one --sor-seed and is byte-reproducible run-to-run — the R1 acceptance check and instrument-validation gate item 2. - hh/src/sor/mod.rs: SplitMix64 + SHA-256 domain-separated sub-streams + unbiased Lemire bounded sampling -> deterministic select_path/bringup. Pure bookkeeping: no forwarder, no socket, no engine. Isolated-engine containment assertions land with the R4 forwarder. - hh/src/main.rs: `sor-bringup --sor-seed` emits the deterministic circuit-build sequence as JSON (observable reproducibility). - cmd_chat/sor/config.py: bit-for-bit Python mirror so the seed means the same thing on both sides. - Tests (Rust proptest+unit, Python pytest): SplitMix64 known-answer vector, same-seed determinism, seed divergence, bounded/no-panic, and a shared cross-language parity vector asserted identically in both suites. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9 lines
396 B
Python
9 lines
396 B
Python
"""SOR (self-observing-relay) measurement instrument — Python side.
|
|
|
|
R1 lands the deterministic seed core (`config`). Later items add provenance
|
|
(R2), the immutable event log (R3), the isolated-engine forwarder (R4),
|
|
federation (R6), and churn/selector/analysis (R7). Everything stochastic is
|
|
driven by the single ``--sor-seed`` defined here, mirrored bit-for-bit in
|
|
``hh/src/sor/mod.rs``.
|
|
"""
|