kaintuck: log market reports to a notification center
#58 in Riparion/riparion-retro — merged 2026-06-16
What
The trader's name in the upper-left status bar becomes a badge button. Market reports — the wharf-factor reality line, the rumor payoff (held/wind), the next-leg price tip, and (multiplayer-only) trader gossip — now log to a per-run notification center instead of stacking up as one-at-a-time popups on every arrival.
Tapping the name drops a sheet down from the top with the full log, newest-first, and marks everything read (clearing the unread-count badge). True decisions (crew desertion, the Duck River ferry) still pop up unchanged.
How
- Engine: new
Notificationtype + persistedstate.reportslog +Game::report()(does not touchpending, so no popup). Four market-report call sites switched frommessage()toreport(). The cap (40) trims the oldest read report first, so an unopened center never silently drops unread reports. - retro-kit:
Sheetgains a backward-compatiblefrom_topvariant (new.crt-sheet-topCSS); existing bottom-sheet callers are unchanged. - Gossip:
voice_trader_gossipnow drains the shared feed into the log silently rather than competing for the popup beat slot; deadGOSSIP_PRESSURE/gossip_pendingremoved. - Golden trace re-pinned (narrative-routing only, RNG-neutral): the diff is the snapshot losing the extra
Mode::Interactionpause-frames those reports used to produce — verified by diffingprint_golden_trace, no numeric/outcome drift.
Test
cargo test -p kaintuck-engine— 78 pass incl. re-pinned golden trace; gossip unit test rewritten for the log.cargo check --target wasm32-unknown-unknownclean for the kaintuck bundle.
Versions bumped: kaintuck-engine 0.1.8, retro-kit 0.1.11, kaintuck 0.1.31.
🤖 Generated with Claude Code
Last updated 2026-06-16
Links to this note
Merged pull requests, newest first.