Appearance
2026-07-20 — OHH Frame Projector: the golden replay suite, ▶ watch, and the registry gate
Plan 3 of 3 of ui-stability (D3 + D5). One machine, three payoffs:
- The projector — pure
projectOhh(ohh) → ReplayFrame[]reconstructs the pacedgame_stateframe sequence a recorded hand would have produced live, chip-conserving against the record's own pot, muck-private, and frame-contract-clean (every projected frame passes the same D1 invariants live frames obey). - The golden replay suite — recorded hands replay through the REAL
BratPokerTableunder fake timers, asserting the choreography where regressions live. First-ever pinning for the deal ceremony (#1) and the winner glow (#17 — the known zero-test regression); every future felt bug becomes a permanent fixture. - ▶ watch — the ✋ hand-history modal replays the hand through the real felt (play/pause/step/speed), affordance-gated so partial records never get a broken player.
- Writer integrity — the observatory rule
ohh_show_cards_foldedfails a record that shows a folder's cards at the boundary, before it becomes a wrong fixture or replay. - The registry gate (D5) —
packages/game-ui/FELT-REGISTRY.mdis now repo-tracked; a felt PR updates its row + names its pinning test, or it's rejected. Auto-post (#11) and the next-hand timer (#47) pinned; the two silent feature-losses vs classic RESTORED (#53 disconnected, #54 sitting-out — dim + badge on brat).
Current-state page: Felt Replay & the Golden Suite