kaintuck: Trace-phase banter & hazard tuning
#50 in Riparion/riparion-retro — merged 2026-06-14
Two small kaintuck Trace-phase fixes, both engine-only (bumps kaintuck-engine 0.1.1 → 0.1.3).
1. Silence shared-world river gossip on the Trace (a20490c)
Trader gossip from the shared-world feed is news of river trades, but voice_trader_gossip wasn't phase-gated the way authored crew beats are — so dockside chatter kept narrating to a crew walking the overland Trace. Gated the single chokepoint to Phase::River: off the water it returns false without draining, so both call sites fall through to authored Trace beats and the CAP-bounded feed simply goes unvoiced (the Trace is the last phase, so it's never drained later anyway).
Offline single-player has no feed, so this is behavior-neutral there and the golden trace is unchanged (no re-pin). Added a regression assertion that a queued event stays silent and undrained on the Trace.
2. Retune Trace hazards toward outlaws over sickness (18bb31f)
Shifted the Trace hazard-table band widths from illness to brigands:
| Outcome | Type | Before | After |
|---|---|---|---|
mason (Mason's men, gunpoint) |
brigand | 8% | 14% |
dose (swamp fever) |
illness | 10% | 6% |
swamp (mud crossing) |
terrain | 16% | 14% |
| clean | — | 44% | 44% |
Total hazard load unchanged, so the road is no deadlier overall — just more lawless than feverish. The RNG stream is untouched (same uniform() draws); only which arm each Trace roll lands in moves. Verified by diffing print_golden_trace that the drift is confined to Trace| lines (River phase byte-identical) and the fixture still ends in the same Victory; re-pinned golden_trace_is_stable accordingly.
Verification
cargo test -p kaintuck-engine— 77 passcargo check --workspace— clean
🤖 Generated with Claude Code
Last updated 2026-06-15
Links to this note
Merged pull requests, newest first.