Appearance
2026-06-23 — Tournament resolution
Stage 3 of a Sit-n-Go's lifecycle — completion — now runs end-to-end. The resolution chain (playing → ended → settling → closed, winner paid on-chain, betting market settled, winner page collectible) was fully coded but had never once run in production: live DB diagnosis on 2026-06-22 found zero payout_intents rows ever created, every tournament stuck in playing with all players sitting_out and no elimination_order assigned.
The reframe
Tournaments do play — the logs show active hands, blind escalation, and auto-folds. The "stuck" tables were abandoned (players left → sitting_out), and a forceEnd that landed on starting was just racing the 3-second reconstruction window (a reconstructed mid-playing tournament resets through registering → starting → playing and re-deals, since engine stacks aren't persisted in V0). The resolution machine was sound; two gaps stopped it short.
What was fixed
- Betting now settles on
forceEnd.dispatchBettingSettlelived only in the bust-drivenassignSurvivorAndTransitionToEnded; it moved intoonPlayingEnded, so both end paths (natural bust-down and operator force-end) settle the tournament's betting market. - Wrong-winner bug (fund-path).
computeActualPayoutsand the betting-settle both derived the winner from the in-memorythis.eliminations, which on a force-ended reconstructed tournament carried a stale entry that disagreed with the DB write — so the prize and the betting payout went to the position-2 loser. A newreadAuthoritativeStandings()readstable_players.elimination_order(the same source the results page serves), and both the payout and the betting winner now derive from it. Verified live: DB winner == payout winner == betting winner.
Verification
T1/T2/T3/T5/T6 verified live. T4 (winner-page UI polish) remains. The natural bust-driven conclusion works but is slow (blind erosion does the eliminating).
Residuals (follow-ups)
- Tournament play isn't durable across restarts — a reconstructed tournament re-deals from a fresh start (engine stacks aren't persisted in V0). A persistence follow-up.
Now-current pages: Tournament Resolution guide · SnG Tournaments guide · SnG Tournaments decision.