September 12, 2026 at 12:00:00 AM UTC

Liminalia test flake fix

liminaliagodotcsharptesting

liminalia

ProgressionTests.DifficultyChange_RaisesEvent failed roughly one run in ten with captured.Population == 0 (expected 29).

root cause

The unseeded Random in FireService could ignite a fire during the 10-hour bulk tick. Bulk steps ≥ BurnDownHours always burn the building down before firefighters can move, and a burn-down kills every citizen on the node — population hit 0 before the end-of-tick difficulty event fired.

fix

SimulationWorld now takes an optional seed, passed to FireService and PartnershipService (the two services with real randomness). The dead _rng in CrimeService is removed. Progression tests build their worlds with seed: 42.

Verified: 60 consecutive full-suite runs, zero failures.


all entries