What the H5 app actually does today.
This page follows the current H5 implementation: live table, history/review, stats/drills. Backlog items are not described as shipped.
Friend rooms, public tables, and bot practice share one table.
The H5 table connects to the server session task over WebSocket. The browser submits intent; the server owns action order, pots, showdown, countdowns, reconnect, and hidden-card fan-out.
Finished hands land in history and hand review.
History has session and hand views. Review reads real hand detail: action stream, board, showdown hands, per-player net, and solver markers only where the viewer is allowed to see them.
Core stats are live; drills and daily recommendations are live.
Stats shows VPIP, PFR, BB/100, net chips, and daily net-chip timeseries. Drills supports filters, progress, accuracy, and post-submit GTO breakdown. The 13×13 starting-hand heatmap remains backlog, so we do not fake it.
The real production boundary today.
Production uses server-authoritative dealing and state. We are not presenting the Mental Poker mock/dev path as a production promise; startup guard blocks mock encrypted dealing in production. Here is the live boundary.
The server session task owns game state. Clients cannot choose cards, pots, action order, or showdown results.
Live snapshots are generated per viewer. Players receive their own hole cards; opponent cards appear only after showdown, winner auto-reveal, or voluntary reveal.
History and review reuse the reveal policy: your own cards, shown-down cards, and permitted reveals are visible; unrevealed opponent hole cards are not leaked in the UI.
All chips are practice chips. The product has no deposit, withdrawal, redemption, rake, or real-money operator integration.