Artifact a5069e059bdba0cb7ceac9395923a76e673944df67c5fd6d2c2b5db18483d376:
- File
src/sim/sync_sweep.zig
-
2026-07-20 04:43:07
— part of check-in
[0fbc9225bf]
on branch h7-degraded
— Compute the degraded liveness window without catch unreachable
The loss-scaled convergence window used divCeil with a catch unreachable for the divide-by-zero arm, which the precommit guard flags outside tests. The delivered-percent denominator is provably at least one, so plain integer ceil division gives the same bound with no error union. (user: dmestas, size: 56714) [annotate] [blame] [check-ins using]
-
2026-07-20 04:52:51
— part of check-in
[b8ef4a68e5]
on branch trunk
— Merge h7-degraded: prove sync converges on a wire that never heals
Phase 2 only ever proved convergence after the network was fully healed, so a protocol that converges on a perfect wire but livelocks under sustained loss would have passed. A new degraded phase holds a fixed, never-healed drop and duplication rate on both links and drives a fresh session through the same safety, convergence and termination oracles, within a window scaled to the loss rate: a round makes progress only if both its request and reply arrive, so the expected round count grows as one over the delivered-fraction squared, times a safety factor, with the derivation in a recomputable comment. It converges with wide margin -- across many seeds the worst run finished in a small fraction of the window at every rate tested -- so there is no livelock. Pinning the window below the real need trips the oracle, so the check is not vacuous. The gate runs one modest rate; the soak sweeps a range. (user: dmestas, size: 56714) [annotate] [blame] [check-ins using]
-
2026-07-20 04:43:07
— part of check-in
[0fbc9225bf]
on branch h7-degraded
— Compute the degraded liveness window without catch unreachable