All 123 preserved failed-*.json captures were resumed in place with
tools/faction-games.ts --resume (same saved position, seed and physical
custody; no reset, no fresh re-run). 102 of the 116 that produced a report
now complete; seven collided on duplicate basenames and were re-run with
unique output directories.
- The low-Tupile CHOAM opening-income ruling unblocked all 23 captures that
stopped at response choamCharity, across the mixed/single/paired/native
Homeworld+Nexus profiles and the occupation choam-6-basic capture.
- The exhausted-cache count ruling unblocked all three captures that stopped
at decision richeseBlackMarket (seeds 20265033, 20273010 and the paired E3
discovery variant).
- Nine of the thirteen preserved homeworld-occupation captures now complete.
- Suk/Kwisatz, Guild Secret Ally return and Sandmaster relocation changed no
capture outcome.
The 14 remaining captures are gated on three other unresolved questions (the
competing-occupier/native-repopulation occupation lifecycle, the Homeworld
high-threshold revival-deployment timing and the odd-force Basic Ecaz Occupy
casualty rounding), not on the five implemented rulings. No guard was
weakened and no capture was force-completed.
The user answered five recorded questions; each ruling is indexed in
RULE_DECISIONS.md and implemented with a focused regression.
- CHOAM opening income counts as a qualifying collection, so low-population
Tupile adds its bank increment under the Inflation multiplier. The engine
guard is removed and the projection/notice expose the added bonus.
- An exhausted Richese cache is legal and restores one ordinary lot; the
canceled/prevented compulsory cache auction branch restores the reduction
before the ordinary pool runs and the cache offer is skipped when no cache
lot can run. The pure continuation quote mirrors the count.
- Suk-rescued casualties count toward Advanced Atreides' seven Kwisatz
Haderach losses: the battle-loss counter gains the full dialed allocation in
both rescue paths, and the earlier Suk availability restriction is removed.
- The Guild Nexus Secret Ally reserve return overrides the Arrakis-to-native-
Homeworld restriction for the holder's own reserves and deposits through the
shared native-reserve pipeline (generalized from the revival deposit).
- Interior passengers count as entering the territories a relocated Ixian HMS
points into, so Sandmaster collects there before the native collection.
Full offline suite 7804/7804, types and lint pass. Historical evidence and
superseded test expectations are updated to the ruled behaviour; preserved
combined Homeworld/Nexus, occupation and Richese captures are unblocked but
not re-run here. No existing game, seat or saved state was changed.
Operations now report the SQLite database size and page count, read through
PRAGMA page_count/page_size in the same authority-checked batch as the
lifecycle counters with non-numeric values clamped to zero; the page renders
both and states that free disk space is still unknown.
replaceMoritaniAssassinationTraitors draws the first distinct physical Traitor
Card from the reserve instead of the reserve's first entry, because the face-up
set-aside card can still sit in that list: re-drawing it produced a receipt
whose replacement equalled the revealed card, which the assassination integrity
check rejects mid-Mentat. With no distinct card left the step is blocked with an
explicit reason instead of committing an invalid receipt.
Four tests were made reproducible after measuring their real failure rates,
because a suite that fails for random reasons cannot act as a checkpoint gate:
the Discovery typed Spice Blow test now removes other cards for the same
territory so one blow deposits the printed amount (0/20 after, ~20% before); the
Discovery E2 skills deal is pinned with the new shared
tests/deterministic-random.ts helper so a Lasgun-shield explosion cannot
pre-empt its skill consumer (0/12 after, ~20% before); the Ecaz Occupy Ix/CHOAM
policy check accepts any legal continuation and still asserts the phase it
reaches (0/30 after, ~10% before); and the mixed-E3 Moritani Cunning test keeps
the random storm off red_chasm's single sector (0/25 after, ~20% before).
Offline suite 7,801/7,801 with typecheck and lint clean. No game, seat, saved
state or deployment changes.