wifi-densepose/archive/v1/data/proof
ruv b5a23b03e5 fix(proof): cross-platform tolerance gate for verify.py determinism
Definitive root cause of the failing determinism gate: the SHA-256 of
fixed-decimal-rounded features is bit-exact only WITHIN one CPU
microarchitecture. Windows and a second Linux box (ruvultra, identical
numpy 2.4.2/scipy 1.17.1) produce the same hash at every precision
(ca58956c), but the GitHub Azure runner diverges at EVERY precision
including 2 decimals (667eb054) — because pocketfft/BLAS reorders FP
reductions per-microarch and the ~1e-6 *relative* drift lands on
large-magnitude PSD bins as an absolute difference no fixed-decimal grid
can absorb. So no quantization can fix it; the primitive was wrong.

Fix: keep the bit-exact SHA-256 as the strong same-platform proof, and
add a relative-tolerance fallback (np.allclose, rtol=1e-4/atol=1e-6)
against a committed reference feature vector (expected_features_reference.npz,
36,800 float64 values). A run PASSES on either; tolerances sit ~100x over
the observed microarch drift and ~10x under any signal-meaningful change,
so real regressions still fail. Verified locally: bit-exact MATCH -> PASS,
and a corrupted hash falls through to TOLERANCE MATCH -> PASS. CI (Azure,
different hash) now passes via the tolerance path. Removes the temporary
sweep diagnostic.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-31 12:07:00 -04:00
..
cir_verify_helper.py feat(signal): ADR-134 CSI→CIR via ISTA + NeumannSolver warm-start (#837) 2026-05-28 16:24:37 -04:00
expected_calibration_features.sha256 feat(signal): ADR-135 — empty-room baseline calibration 2026-05-28 18:57:08 -04:00
expected_cir_features.sha256 fix(proof): regenerate ADR-134 CIR witness hash after CIR fixes 2026-05-31 11:11:38 -04:00
expected_features.sha256 fix(verify): make v1 proof tolerant of unrelated .env keys + regen hash 2026-05-26 08:28:31 -04:00
expected_features_reference.npz fix(proof): cross-platform tolerance gate for verify.py determinism 2026-05-31 12:07:00 -04:00
generate_reference_signal.py chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
sample_csi_data.json chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
sample_csi_meta.json chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
verify.py fix(proof): cross-platform tolerance gate for verify.py determinism 2026-05-31 12:07:00 -04:00