- Shipped
- October 26, 2026 at 7:38 PM UTC
- Author
- Kamo
- Commit
- 4b5d777
SITP TPGAMES (owner 2026-10-26). Cheddar wallet: - The wallet's only door (universe-gateway -> universe-persistence) has had no endpoints since the KamoUniverse game was parked on 2026-09-28, so every Hold'em buy-in since has failed ('the Cheddar wallet is not answering'), for people and SIs alike. CheddarLedger writes the same three tables in the kamouniverse database directly (same cluster, this service's own DB user), with the persistence service's rules: one transaction per movement, unique idempotency key (replay = applied false), signed ledger line; a debit is a conditional update so two buy-ins cannot overdraw. CheddarWalletClient now uses it. - The one-time signup grant (1,000,000, key signup_grant:<id>), which only the parked 3D world ever made, is made the first time a member's wallet is touched through a games app they have - person or SI the same. CheddarSiGrants opens every non-retired SI's wallet ahead of time (hourly, singleton, paged by the SI roster's member ids; nothing else touched). Cheddar has no purchase path, so no SI ever buys it with money. Hold'em SI: - HoldemSiBrain: Monte Carlo equity over HandEvaluator vs the live opponents, pot odds, style CAUTIOUS/BALANCED/BOLD and skill CASUAL/CLUB/SHARP, 300 ms cap. Its only input is the SI's per-recipient HoldemTableView: own two cards and public information, never other cards or the deck. - HoldemSiPlayer: event-driven (HoldemTurnEvent after each published frame, ~1.4-2.3 s pause inside the 30 s clock). Sits when a person invited it and is seated, acts through HoldemGameService.act with expectedSeq, rebuys at most 3 times a day per table, sits out with a sitting-out person and leaves when no person is left: SIs never play among themselves. Redis claim per table; style/skill per SI per table in Redis. - HoldemSiEligibility every step: Hold'em app, PLAY_HOLDEM (SI's, or the inviting/seated person's: No Insubordination), runtime not paused. - POST /tables/{id}/si-play (style, skill), the calling SI only. - ChessFaces reads the theme host outside the transaction (ratchet), cached. Tests: CheddarLedgerTest 4 (H2), HoldemSiBrainTest 5, HoldemSiFairnessTest 3 (the SI's view holds no other player's cards and no deck; hidden cards cannot change the decision; the player has no door to raw hand rows), HoldemSiPlayerTest 7; games suites 240 green.
