← Back to latest updates
RELEASE ARCHIVE

Earlier public releases.

750 earlier updates, newest first. Showing 41–60 on page 3 of 38.

  1. Released
    H5Backend

    5 updates in this release

    This release includes: Refresh poker reactions; Improve login cancellation and connection delay attribution; Reduce Google sign-in round trips and distinguish OAuth latency budgets; Capture evidence for subsecond communication delays; Reduce trend read round trips and improve slow request attribution.

    1. Refresh poker reactions

      Replace the cow reaction with 👍, remove Bluff and Barking choices, and give Animal a new comic sticker across chat, self-reaction and throw menus.

      • Keep chat, self-reaction and throw menus consistent
      • Give Animal a laughing comic donkey sticker
    2. Improve login cancellation and connection delay attribution

      Distinguish authentication probe timeouts from reconnect cancellation, record socket open dispatch delay, and avoid mislabeling diagnostic scan limits as damaged logs.

      • Preserve login security checks, timeouts and recovery behavior
      • Add bounded diagnostics without extra business requests
    3. Reduce Google sign-in round trips and distinguish OAuth latency budgets

      Verify Google signatures and claims locally with cached public keys, fetching keys only on cache misses or rotation. Google and Apple sign-in/link requests with measured provider calls use a 500ms total alert budget while retaining 100ms for non-provider time.

      • Preserve signature, issuer, expiry, audience and email verification
      • Restrict exceptions to explicit OAuth routes with measured provider work
    4. Capture evidence for subsecond communication delays

      Add bounded transport snapshots for WebSocket operations above 100ms, retaining sampling capacity for severe stalls and existing resource limits to investigate path waits and retransmissions.

      • Capture at most six 100–1000ms samples per minute
      • Preserve original round trips and severe-stall evidence
    5. Reduce trend read round trips and improve slow request attribution

      Batch report transaction settings and distinguish session, staff authorization, trend SQL and response processing time while preserving authorization and query safeguards.

      • Batch seven report setting round trips into one per page
      • Separate pool waits, SQL and application processing in slow requests
  2. Released
    H5BackendMarketing site

    21 updates in this release

    This release includes: Full-screen lottery draws; Paged lists and bounded background reads; Transparent and independently replayable draws; Unified admin workspace; Reduce idle background work and duplicate table updates; Fix signed-out game entry redirects; and 15 more changes.

    1. Full-screen lottery draws

      New lottery draws open a full-screen stage with larger draw machines, one-by-one reveals and a result screen that stays until dismissed.

      • Numbered balls tumble and collide at speed, with mechanical mixing for Double Color Ball and an air jet and outlet for DLT; drawn balls leave the pool
      • Show results instantly or return to picks; reduced motion and the original page position are preserved
    2. Paged lists and bounded background reads

      Collection APIs default to 100 rows, with pagination for history, table lists and administration to reduce the impact of large reads on gameplay.

      • History and ledger reads use bounded batches while preserving complete totals
      • Lists provide continuation and background work uses smaller transactions
      • Release checks use whole-runtime human table counts independently of pagination
    3. Transparent and independently replayable draws

      Add downloadable draw proofs and receipts for lotteries, scratch cards and Sicbo, with an open-source offline verifier sharing the backend rules. Historical records remain explicitly unproved.

      • Scheduled draws fix a future public beacon round and verify its signature, numbers and prizes
      • Scratch and Sicbo provide seed commitments and reveals, with pre-bet browser receipts
      • The offline verifier checks outcomes and prize arithmetic; it does not attest wallet credit or the deployed binary
    4. Unified admin workspace

      Unify admin navigation, page width and interactions with focused workspaces for overview, tables, monitoring and operations.

      • Live tables offer search, classification filters and contextual detail navigation
      • Monitoring, product usage and operations use focused workspaces with existing metrics and permissions
      • Refresh preserves valid results and cancels requests on navigation to reduce unnecessary reads
    5. Reduce idle background work and duplicate table updates

      Consolidate poker idle cleanup, wait on demand for next hands and report refreshes, and avoid unchanged table broadcasts.

      • Stop polling for a next hand without enough connected players while preserving settlement displays and reconnection
      • Schedule daily reports and reviews directly, and reuse hourly cleanup for retired device records
    6. Fix signed-out game entry redirects

      Signed-out visitors can open the Baccarat and Sic Bo lobbies, with explicit registration prompts for room actions instead of being sent back to login on entry.

      • Baccarat and Sic Bo lobbies are open for browsing
      • Browser coverage follows the try-first link from login into each game
    7. Centre your Guandan seat

      Place your avatar at the bottom centre opposite your partner while preserving the existing card layout and grouping.

      • Four seats form a natural table arrangement
      • Keep the avatar clear of play actions and cards
    8. Adjust idle practice-table cleanup

      After ten minutes without a completed hand, practice tables are checked by the shared five-minute cleanup, preserving in-flight hands and settlement displays.

      • Remove the per-table five-second expiry check
      • Keep seats on disconnect; idle cleanup normally occurs 10–15 minutes after the last hand ends
    9. Publish lottery and dice draw source

      Add a draw source directory to the existing public repository, covering sampling, prize rules and related settlement for SSQ, Daletou, TOTO, Happy8, Fucai3D, scratch cards and Sicbo.

      • Mirror the exact server files with disclosure and source consistency checks
      • Document OS randomness, unrevealed numbers and verification limits
    10. Keep poker practice tables available after disconnects

      Practice seats and chips remain available after disconnects until the room expires or ten minutes after the last completed hand. Connection closure and resume evidence helps diagnose interruptions.

      • Offline players retain their seats beyond the former one-minute reclaim window, while bots do not start hands alone
      • Client, server and proxy records share a connection ID, with bounded automatic closure evidence at the proxy
    11. Lighter background reporting and cleanup

      Optimized daily report aggregation, anonymous device cleanup and notification statistics, with shorter background transactions to reduce resource contention with gameplay.

      • Daily reports use bounded indexed reads while preserving metric definitions
      • Anonymous cleanup checks bounded pages and retains account-link protections
      • Notification statistics aggregate changes with bounded background transactions
    12. Add Super Lotto gold-bean game

      Super Lotto joins the lottery center with five front numbers from 35 and two back numbers from 12, plus single and system entries, quick picks and multipliers using the shared gold-bean balance.

      • Scheduled server draws settle automatically and persist both zones and ticket history
      • Rules, ticket history and past draws stay in the top-right menu
      • Fixed practice payouts; additional bets and banker entries are not supported
    13. Street-by-street all-in equity

      Once betting is closed and hands are revealed, each player’s equity appears beside their hole cards and updates with the flop, turn and river.

      • Estimated preflop and exact postflop equity, with tied outcomes shared
      • River odds update after the squeeze reveal; calculation runs off the interaction thread
    14. Simpler lottery game pages

      Double Color Ball, Happy 8, Fucai 3D and TOTO keep rules, ticket history and past draws in the top-right menu, leaving picks, current tickets and draw results on the game page.

      • Removed duplicate controls and explanations while keeping full rules in the menu
      • The shared ticket component no longer adds another history entry, with the same convention for new games
    15. Improve failed-deal recovery and active-user reporting

      Failed sealed-deal recovery can run during bot thinking. Daily active-user counts use indexed lookups, and connection diagnostics retain specific evidence-unavailable reasons.

      • Keep delivery, seat and hand-stage guards and the existing void/refund path
      • Avoid historical environment aggregation when counting active users
      • Retain bounded reasons already returned by the proxy without adding probes
    16. Fix table reactions on older browsers

      Table reactions use a lookup compatible with older browsers. Client error reports retain unattributed script errors instead of excluding them based only on the page script inventory.

      • Fix table reaction errors in older iPad WeChat browsers
      • Keep unattributed script errors visible for diagnosis
    17. Shared time cards for card games

      Zha Jin Hua, Bull Bull, Blackjack, Short Deck, Dou Dizhu, Guandan, Color Clash and Three Pictures share free time cards: five per room session, 60 seconds each and up to three per decision. Texas Hold’em is unchanged.

      • Balances survive reconnects and re-seating
      • Extend an active decision without duplicate charges
    18. Clearer raise controls for Zha Jin Hua and Short Deck

      Raise panels keep amount entry and quick bet choices visible. Adjusted amounts are previewed before confirmation. Zha Jin Hua controls, cards, and stack labels stay separate in shorter desktop windows.

      • Type an amount, drag the slider, or pick a quick bet
      • Independent shared raise controls for Zha Jin Hua and Short Deck
      • Keep cards and controls visible in shorter windows
    19. Keep all-in showdown cards visible after a bust

      Already revealed hole cards remain visible through settlement when a player loses their stack, keeping the table consistent with hand history.

      • Bust updates preserve the same player’s already public cards
      • Cards still clear when settlement ends or the next hand starts
    20. Pagination for poker squid records

      Browse squid round details 10 rounds at a time with previous and next controls, while the leaderboard keeps session-wide totals.

      • 10 rounds per page with previous, next and current page controls
      • Whole rounds stay together and failed page loads can be retried
    21. Clarify communication alerts and diagnostic evidence

      Communication alerts distinguish probes, action acknowledgements, sealed dealing and telemetry uploads, with explicit outcomes. Probes cancelled by reconnects retain their cause while actual command timeouts remain recorded. Duplicate sample projections no longer prevent diagnostic correlation.

      • Keep existing alert thresholds and actual failure records
      • Preserve raw evidence without treating repeated samples as conflicting operations
      • Distinguish probes cancelled by reconnects from actual transport errors
  3. Released
    H5Backend

    2 updates in this release

    This release includes: New confused and rivered poker reactions; Let all club members view the member list.

    1. New confused and rivered poker reactions

      Chat and avatar interactions gain confused and rivered stickers, with question-mark shakes and a river-card flip impact.

      • Both stickers work in chat, self reactions and throws at opponents
      • Distinct animations respect reduced-motion preferences
    2. Let all club members view the member list

      Members can see member avatars, names, and roles; application reviews, role changes, and member removal remain admin-only.

      • Open the member list to all current club members
      • Keep admin authorization on management controls and API writes
  4. Released
    H5Backend

    4 updates in this release

    This release includes: Complete home module recovery and coalesce reloads; Reduce monitoring traffic and complete Apple login diagnosis; Correct feedback sources and Zha Jin Hua compare wording; Complete game connection latency diagnosis.

    1. Complete home module recovery and coalesce reloads

      Share bounded recovery work when multiple home modules fail, covering captured assets without competing reloads; add coarse script and network-state evidence.

      • Cover captured failed modules with at most four concurrent downloads
      • Share boot and route repairs while retaining reload-loop guards
      • Keep script errors visible with bounded classification and connectivity context
    2. Reduce monitoring traffic and complete Apple login diagnosis

      Batch routine uploads and sample latency within bounded windows while preserving anomaly diagnosis and alerts; add missing timing phases to Apple login.

      • Batch routine uploads for 30 seconds, schedule anomalies within 2 seconds, and back off during collector outages
      • Randomly retain samples within each window and keep extra anomaly evidence out of trends instead of favoring earlier completions
      • Distinguish Apple key refresh, authorization-code exchange and database steps while preserving authentication behavior
    3. Correct feedback sources and Zha Jin Hua compare wording

      Include App, Web and Telegram sources in ratings and feedback, and clarify that Zha Jin Hua hands in the same category still compare ranks, with the challenger losing a tie.

      • Fix App feedback notifications being labeled as Web
      • Clarify that hands in the same category still compare card ranks
    4. Complete game connection latency diagnosis

      Correlate shared game connections across browser, proxy and server, and expose captured retransmission and acknowledgement progress in offline diagnosis.

      • Reuse bounded collection without making game messages wait for diagnostics
      • Do not require a connection upgrade in every dealer ticket trace; preserve evidence gaps and alert thresholds
  5. Released
    H5BackendMarketing site

    7 updates in this release

    This release includes: Keep poker cards clear of reaction barrages; Attribute Google login verification time; Improve poker connection latency diagnosis; Improve hole-card delivery on slow connections; Clearer Dou Dizhu and Chinese Chess guides; New lottery draw explainer; and 1 more change.

    1. Keep poker cards clear of reaction barrages

      Use smaller table reactions behind cards, with one visible crossing and at most one queued message; excess messages remain available in chat.

      • Keep hole cards, revealed opponent cards and community cards above the barrage
      • Bound queued reactions and cross the actual felt width
    2. Attribute Google login verification time

      Include remote token verification for Google login and account linking in existing phase timings to distinguish provider waits from database work.

      • Cover success and failure paths through the existing bounded timer
      • Preserve identity verification and alert thresholds
    3. Improve poker connection latency diagnosis

      Correlate the same message across browser, proxy and server; retain slow-request stages and collection coverage without mislabeling unresolved delays as user network issues.

      • Observe main-thread blocking, proxy forwarding and TCP acknowledgement progress
      • Make missing or limited evidence explicit while preserving alert thresholds
    4. Improve hole-card delivery on slow connections

      Keep waiting for hole cards on an established connection within the existing total deadline, avoiding premature reconnects; restore server delivery-stage evidence for actions in sealed-dealer games.

      • Keep the 6.75-second total deadline without closing an established connection after two seconds of reply wait
      • Use the existing bounded diagnostics for action queueing, encoding and send stages
    5. Clearer Dou Dizhu and Chinese Chess guides

      Add Dou Dizhu combinations and farmer teamwork examples, explain Xiangqi stalemate and piece moves, and redirect the former pot odds URL to the current calculator.

      • Improve bilingual guide titles, rule references and practice links for observed search queries.
      • Preserve language and query parameters when redirecting the former pot odds URL.
    6. New lottery draw explainer

      A bilingual TOTO article explains random draws, fixed payouts and the limits of independent verification.

      • Explain that the draw function does not use player identity or selections, and distinguish animation from result generation.
    7. Clearer browser game choices and AI search attribution

      Clarify free guest play, keep public and machine-readable answers aligned, and recognize Grok, Doubao and additional Claude sources.

      • Choose games by guest access, friend play and account requirements.
  6. Released
    H5BackendMarketing site

    5 updates in this release

    This release includes: Complete connection and upload diagnostics; Shared gold beans and daily rewards; Source review of cheats and unseen cards; Preserve script error context; Simplify daily email totals.

    1. Complete connection and upload diagnostics

      Retain lifecycle and connectivity context, per-attempt deal delivery timing, and proxy phase evidence with request correlation for profile updates.

      • Diagnostics retain bounded state and timing without request bodies or changes to gameplay retry policy.
    2. Shared gold beans and daily rewards

      Public Hold’em and lottery games share gold beans. My page shows the balance and a daily extra 10,000 claim; referring a new registered friend awards the inviter 50,000.

      • Remove chip-purchase controls in beans games; ordinary friend rooms and bot practice remain unchanged.
    3. Source review of cheats and unseen cards

      Add a bilingual article on default Hold’em card isolation, random seeds and post-hand reconstruction.

      • Include pinned source references and server trust limits.
    4. Preserve script error context

      Error reports retain bounded sign-in SDK load, timeout removal and late callback history plus page lifecycle observations. Accessible exception stacks are preserved and opaque errors are no longer filtered using script inventory. Browser-muted cross-origin stacks remain unavailable.

      • Context travels with existing error reports without polling or separate requests.
    5. Simplify daily email totals

      Daily email reports show the total and nonzero counts by kind, hiding zero-count items.

      • Keep daily quota and limit warnings.
  7. Released
    H5BackendMarketing site

    4 updates in this release

    This release includes: Improve Apple sign-in script error diagnostics; Lottery center: shared draws, system entries and a hall; Release staging cleanup and bounded logs; Admin performance trends: packed histograms, millisecond reads.

    1. Improve Apple sign-in script error diagnostics

      Load the Apple sign-in script with anonymous CORS so future script errors can retain their source and stack. The cause of previously opaque errors remains unconfirmed.

      • Preserve Apple SDK error details without suppressing unknown errors.
    2. Lottery center: shared draws, system entries and a hall

      The five lottery games now share one server-side lottery center. Scratch Cards drops shopkeeper/customer roles, computer play and room codes; everyone buys from the platform. Double Color Ball, TOTO, Happy 8 and Fucai 3D move from instant simulated draws to scheduled draws whose numbers every player shares, with sales closing 5 seconds before each draw and automatic payouts. Purchases support system entries, 1–10× multipliers, quick pick 1 / 5 / 10 and a basket, with the last 30 draws and hot / cold / overdue tables on hand. The hall shows who is present and the latest purchases and wins. All five games share one server-kept free lottery account (practice chips, never bought or redeemed); the old tab-local chips and scratch rooms are retired.

      • Scratch Cards becomes a lottery center: the platform sells every card and pays every prize; shopkeeper/customer roles, computer play and room codes are gone
      • Double Color Ball, TOTO, Happy 8 and Fucai 3D now run scheduled lottery-center draws (every 5 / 5 / 2 / 3 minutes) shared by every player, with sales closing 5 seconds before each draw
      • System entries (extra red/blue balls in Double Color Ball, TOTO System 7–9, multi-digit positions in Fucai 3D), 1–10× multipliers, quick pick 1 / 5 / 10 and a basket that buys several tickets at once
      • Draw history (last 30) with hot / cold / overdue tables, a longer ball-by-ball reveal and the period's winners board
      • A hall that shows who is present and the latest purchases and wins, so real players see each other
      • One server-kept free lottery account shared by the five lottery games, refillable below 1,000; tickets and payouts appear under My tickets and on the history page
    3. Release staging cleanup and bounded logs

      Clean each release staging directory on exit and report lease-release failures; disable extra 10ms database logs, retain 100ms slow-query logs, and bound proxy container logs.

      • Reduce release leftovers and log disk usage
    4. Admin performance trends: packed histograms, millisecond reads

      Admin (staff) performance-trend page only, no gameplay change. Latency histograms used to be one row per sample identity and millisecond value (2 M rows, 1.8 GB for 17 h on production); a 24 h view read 78 k rows in up to 1.8 s and kept tripping the production slow-query alert. Each bucket and series is now one row with the millisecond distribution in two parallel arrays, internal accounts (staff, test, QA) are flagged at write time instead of storing identities, the minute and hour history is converted in place at release (the last 48 h of per-second rows restart after the release), and percentiles are computed in server memory. Simulated on production data: 24 h and 7 d views about 5 ms, 6 h about 13 ms.

      • Admin latency trend histograms are stored packed per bucket and series; a read drops from up to 1.8 s to a few milliseconds and no longer trips the production slow-query alert
      • Trend ranges over six hours now show hourly points (12 for 12 h, 24 for 24 h)
  8. Released
    H5Backend

    5 updates in this release

    This release includes: Faster open: parallel session probe, one hop fewer on room links; Tablemate identity read once, review flag over WS, schema increments applied once; Admin pages: aligned, labelled back button; Fewer background table requests and batched quality uploads; Hold'em setup: blinds, duration and chips first.

    1. Faster open: parallel session probe, one hop fewer on room links

      Performance change, no gameplay change. The web app must read the session (GET /api/auth/me) before it can mount; that read used to start only after the bundle had downloaded and run, costing one extra cross-border round trip per open (production, 24 h: median 176 ms, p95 1.3 s). The page now starts the read as soon as its HTML arrives and the bundle adopts the answer (native shells and Telegram launches keep their original order). Opening a /join/<code> link used to preview the room before joining; it now joins directly, since the join reply already carries the seat count and every refusal, saving one more round trip.

      • On the web, the session probe now runs while the bundle downloads instead of after it
      • Joining through a room link skips the preview request and seats you directly
    2. Tablemate identity read once, review flag over WS, schema increments applied once

      Performance change, no gameplay change. Tablemates' identity used to refresh in the background every 5 minutes (earlier every 30 seconds); it is now read once on entering a table and when someone takes a seat, never polled. After each hand the client used to read the full persisted hand (about 2k/day) only to decide whether it enters review; the server now applies the same rule (result beyond 100 big blinds) and sends review_seats in the hand-end WS message, so the client makes no request (older servers keep the previous path). Schema increments are recorded in schema_upgrades and applied once: a new file runs, otherwise a start performs no check and no ALTER on business tables.

      • Tablemates' identity is read on entering a table and on a new seat, never polled
      • Whether a finished hand enters review arrives with the hand-end WS message instead of a per-hand history read
      • Schema increments apply once instead of re-running at every start
    3. Admin pages: aligned, labelled back button

      Admin (staff) pages only, no gameplay change. The '‹ Back' at the top of each admin page was a line of 13px muted text, and on desktop it was centred on a fixed 1100px column while each page's content column differs (the performance page is full width), so the back link and title floated above empty space. It is now a bordered pill button that names its destination (admin dashboard; the table detail page goes back to games in progress), and every admin header aligns with its own content column and gutter.

      • Admin pages' back control is a button that names its destination (admin dashboard / games in progress)
      • On desktop the admin header lines up with the page content instead of floating at an unrelated indent
    4. Fewer background table requests and batched quality uploads

      Performance change, no gameplay change. Over the past 24 hours the two busiest production endpoints were the table's 30-second refresh of tablemates' identity (about 13k requests) and the 60-second refresh of the viewer's own appearance (about 7.6k), nearly half of all API requests, each also producing a quality record; both now run every 5 minutes (entering a table and a new seat still read immediately; returning to the foreground re-reads at most once a minute) and appearance validity widens to 6.5 minutes accordingly (a failed read keeps a still-valid reply and retries once after 30 s). Client quality data used to upload every 2 seconds with one or two records per upload; it now uploads in 10-second batches, immediately when 32 records are queued, and still immediately on page hide or close. Per-second latency detail on the server barely merged (1.08 M rows in 16 hours, half of a 1.8 GB table); it is now kept 48 hours for alert review, while minute and hour series keep 8 days; minute-or-coarser reads are widened to whole minutes and report the range actually covered, and older ranges use minute buckets or coarser.

      • Background refresh of tablemates' identity and your own appearance moves from 30 s / 60 s to 5 minutes
      • Client quality records upload in 10-second batches
      • Per-second latency detail is kept 48 hours; minute and hour series still 8 days
    5. Hold'em setup: blinds, duration and chips first

      When creating a Hold'em table, whether a human room or bot practice, the first screen now shows only the blinds, the game duration and the starting chips. Seats, timed blinds, table rules, opponent picks, and room privacy, dealing and start mode now live in the collapsed Advanced settings panel with their previous defaults. The collapsed panel's subtitle shows the seat count and any enabled rules.

      • Hold'em table setup (humans and bots) now shows only blinds, game duration and starting chips up front
      • Seats, timed blinds, bomb pot / ante / straddle / squid, opponent picks, spectators / dealing / start mode all moved under Advanced settings
      • Defaults are unchanged: toggles such as timed blinds stay off, seats keep the previous default
  9. Released
    Backend

    Reduce message object allocation on table sends

    Server-side performance housekeeping, no gameplay change. Most per-seat table messages (bot think countdowns, chat, action receipts, errors) carry no delta-compressible state, yet the server used to build a full object for each recipient and throw it away; it now reads just the two discriminator fields first and sends stateless frames directly, cutting pointless allocation.

    • Stateless table messages no longer build a full object per recipient
  10. Released
    H5BackendMarketing site

    41 updates in this release

    This release includes: Website can read the lottery rule parameters again; H5 dependency lockfile encoding canonicalized; Client slow-request alerts: endpoint names, Safari timing and probe timeouts attributed; Game Center now has Popular, New games and All games tabs; Development: every worktree runs its own backend on its own ports; Tighter Niu Niu opponent hand-detail row; and 35 more changes.

    1. Website can read the lottery rule parameters again

      Build fix, no gameplay change. The TOTO, Shuangseqiu, Happy 8 and Fucai 3D rule modules import the draw-log helper by relative path so the marketing site rules pages build again.

      • Lottery rule modules use relative imports so the website builds again
    2. H5 dependency lockfile encoding canonicalized

      Build housekeeping, no gameplay change. One package checksum string in the H5 dependency lockfile now uses the repository's equivalent escaped encoding; dependency versions and checksums are unchanged.

      • One H5 lockfile checksum string uses an equivalent escaped encoding; dependencies unchanged
    3. Client slow-request alerts: endpoint names, Safari timing and probe timeouts attributed

      Operations alerting fix, no gameplay change. About 40 endpoints (player stats, club avatar/name, Sic Bo and Baccarat room bets, Guandan events, tournaments, beans, email preferences and more) used to appear in slow-request alerts as an unrecognised endpoint; they are now grouped by their real route. iPhone Safari behind a proxy withholds Resource Timing phases; such samples are now labelled as withheld instead of posing as measured. Probe timeouts whose reply the server flushed within 100 ms but the client never received within 5 s are now logged as warnings instead of paging per sample; requests whose time sits only in the browser's own queue and in long tasks observed inside the response-callback window (page transitions, table mounts) are warnings too, and many clients at once still page once.

      • Slow-request alerts group by the real endpoint instead of an unrecognised one
      • Requests slow only on the player's network or phone browser log as warnings instead of paging
    4. Game Center now has Popular, New games and All games tabs

      The home hub opens on the Popular tab: yesterday's Top 3 by visitors (Texas Hold'em, Zha Jin Hua and Niu Niu while the ranking is unavailable or empty). Games launched in the past month gather under a New games tab (hidden when there is none; a dot marks a launch from the past week). All games lists every game by yesterday's visits with the tools last and a Cards / Board / Casual filter. The former six-card Games & tools block and its expand button are gone. Guests now see the notifications bell too, so feedback replies reach them. H5, Android and iOS share this hub.

      • The hub shows yesterday's Top 3; switch to All games for the rest
      • New games stay findable under New games for a month
      • Guests get the notifications bell too
    5. Development: every worktree runs its own backend on its own ports

      Local development backends now share the runtime lock so several worktrees can each run a backend against the one local database; each live room is driven by exactly one backend, and worktree backends skip startup recovery and owner sweeps. The engineering blog posts are updated to match.

      • new-session.sh allocates backend/dealer/Vite ports and writes the matching E2E target config
      • Per-room OS file locks stop two local backends from driving the same room
    6. Tighter Niu Niu opponent hand-detail row

      The opponent seat's 'Bull N ⓘ' row no longer leaves empty space above and below it and lines up with plain rank labels; the 44px tap target is unchanged.

      • Opponent hand-detail row sits tight under the cards
    7. Lottery draws now play out ball by ball with draw numbers, live hit counts and recent-draw history

      SSQ, Toto, Happy8 and Fucai3D save the result on tap, then reveal it ball by ball from a drawing machine (three digit drums for Fucai3D): matched numbers light up with a gold ring and a live hit counter, followed by the prize tier and payout. Each draw has a period number, the last 10 draws are one tap away, and hot numbers are flagged on the grid; quick pick flickers before settling; tap to skip, instant under reduced motion. Scratch cards count the prize up and pulse winning spots at settlement with a bigger celebration for large wins. Odds, payouts and rules are unchanged.

      • Ball-by-ball draws with gold-ring hits and a live counter
      • Draw numbers, last-10 history and hot-number badges
      • Scratch settlement count-up and winning-spot pulse
    8. Sic Bo dice roll animation and betting feel upgrade

      The Sic Bo table now rolls real 3D dice: the cup drops, shakes and lifts, each die tumbles and lands in turn, and a Big/Small/Triple stamp lands on the felt. Chips in the rack look like real chips, stakes show as a chip stack, other players' wagers fly from their seats to the zone, the countdown wears a draining ring, the recent roll trail stays on the felt, and a one-tap Rebet repeats last round's wager.

      • 3D dice tumble and land; the cup drops, shakes and lifts
      • Big/Small/Triple result stamp and winning-zone burst
      • Real chip tokens and stacks; other players' wagers fly in
      • Countdown ring and on-felt roll trail
      • One-tap Rebet of last round's wager
    9. Niu Niu and Sangong opponents' cards match the hero's size

      Opponents' cards on the Niu Niu and Sangong tables are no longer thumbnails: they use the hero's card size, fanned so every corner index stays visible, on the phone three-column seats and the desktop layout alike.

      • Opponent cards share the hero card size
      • Fanned so each card's corner index shows
    10. Slow-request pages only when the server is at fault; QA regression stops re-downloading assets

      When the browser has no matched Resource Timing entry it only has fetch boundaries; samples whose server span is within budget and whose client processing phases are normal now log as warnings like other network-only samples. The QA regression relay keeps cacheable static responses on disk across runs, so a build's voice packs, sounds and chunks leave the production host once instead of competing with players for its 2 Mbps egress.

      • Slow requests dominated by fetch_headers / body_read with the server within budget log as warnings
      • The QA relay caches static responses across runs per upstream Cache-Control
    11. Verification-code requests reply immediately; sending runs in the background

      Requesting an email verification code now replies as soon as the local checks pass and the challenge is stored, instead of waiting ~0.5–1 s for the mail provider; the mail is sent once, with a time bound, in the background. A failed send retires that challenge at once and raises the existing alert, so the user's next request is not blocked by the cooldown; a code still only verifies after the mail actually left.

      • Code requests no longer include mail-provider time
      • A failed background send retires the challenge so a retry is not throttled
    12. Admin daily report registration-environment stat uses indexes

      The daily report's registration-environment breakdown now reads only the day's registered accounts and their own events instead of recomputing every account and every telemetry event; registration events sharing one timestamp take the first by time. Admin-only; no player-facing change.

      • Registration-environment stat drops from ~70 s to tens of milliseconds
    13. Stop stale Guandan room reconnects

      Check authoritative membership after disconnection, stop reconnecting after a confirmed lost seat, retain recovery on network failure, and ignore stale checks. The server no longer lets later moves in a room the player left clear their membership in a newer room.

      • Stop reconnecting after confirmed seat loss while preserving network recovery
      • A room the player left no longer overwrites their newer seat
    14. Faster bot turns in Zhajinhua

      Zhajinhua bots now think for about 0.35–0.75 s per action (half the previous delay) and pause less after looking; against five bots, waiting on bot turns drops from an estimated 6 s to 3 s per round (a little more when bots look). The action right after a compare keeps the old pace so the duel verdict stays readable; the 5 s between-hands gap and other games are unchanged.

      • About half the waiting on bot turns
    15. WebSocket latency alerts use server flush evidence for network-only slowness

      Slow table probes and action acks now log as a user-network warning when the server's own same-trace evidence shows the reply was flushed within 100 ms; missing, pending or failed evidence still pages as before.

      • User-network slowness no longer pages as a server fault
    16. Unchanged sign-in probe no longer re-downloaded

      GET /api/auth/me now carries a strong ETag; the client remembers the last reply in memory and revalidates with If-None-Match, so an unchanged profile answers 304 with no body (cookie refresh and no-store unchanged). Saves 4–30 KB (own avatar image included) on every re-probe while the app is still in memory (foreground, reconnect) on the shared 2 Mbps uplink; a cold start still downloads once. The opponent-avatar batch read already omits unchanged images via known avatar_tags; verified, no change needed.

      • /api/auth/me answers 304 when unchanged
      • Avatar batch read already reuses avatar_tags; verified
    17. First load downloads only the active language's copy

      Every first visit used to download the full bilingual UI copy (about 190 KB compressed). Copy is now bundled per language and a page fetches only the active one (a Chinese visit downloads about 109 KB compressed, roughly 44% less); switching loads the other language on demand. Strings, keys and switching behaviour are unchanged; first paint is faster on the capped server uplink.

      • About 44% (zh) / 46% (en) fewer compressed bytes of UI copy on first load
      • The other language's copy loads on demand when switching
    18. Two male voice packs are about 75% and 50% smaller, cutting first-load traffic

      The general male voice pack had been encoded at 128 kbps (1.5 MB) and the Niuniu male pack at 64 kbps, while every other pack is 32 kbps. At the server's 2 Mbps egress, one player's first load of the 1.5 MB pack takes an estimated 6 seconds, during which it competes with other players' downstream traffic. Both packs are now re-encoded with the same settings as the rest (mono, 24 kHz, 32 kbps), shrinking to 378 KB (about −75%) and 87 KB (about −50%); each file's decoded sample count matches the original, so the existing clip timetable is reused and callout content and timing are unchanged.

      • General male pack 1.5 MB → 378 KB, Niuniu male pack 174 KB → 87 KB
      • Decoded sample count matches the original; the existing clip timetable is reused
    19. Retransmission figures in the ops notes corrected

      Replaces the proxy namespace's 60-second total retransmission ratios (which included SYN-ACK retransmits for unfinished handshakes) with the established-connection lifetime ratio of retransmitted over sent TCP segments (6.3%, worst peers 10–16%). Documentation only; no runtime change.

      • Documentation wording only
    20. Thin connections no longer double their retransmission timer for the first 6 timeouts

      At evening peak, connections in ESTABLISHED state at the sampling moment showed cumulative retransmitted TCP segments over cumulative sent TCP segments (`ss -tin` retrans total / segs_out, the denominator including pure ACKs) of 6.3%, and 10–16% on the worst peers (a lifetime retransmission count, not a direct loss rate, and not comparable with the namespace-wide 60-second ratios of 20.6–22.6% that night, which also counted SYN-ACK retransmits for unfinished handshakes, a suspected low-rate SYN flood). On established connections the kernel classifies as thin at a retransmission timeout (fewer than 4 segments in flight and past initial slow start; a per-connection property, not message size: qualifying table WebSocket and HTTP/2 connections may benefit, the tail of a bulk transfer may qualify too, a small reply on a busy connection may not), the first 6 timeouts use the estimated RTO instead of doubling it, at the cost of somewhat more retries under congestion (bounded). The effect on player stall times is not yet measured. Already set live; the next release persists it.

      • No exponential backoff for the first retries of qualifying thin connections (effect to be measured)
    21. One three-minute end-to-end check replaces unit tests

      Every change is now verified by one end-to-end run that plays all 25 games against the real server, starting with the three most played, and must finish 100% green within three minutes. Unit and integration test code and its dead hooks were removed; game behaviour is unchanged.

      • All games verified end to end on every change
    22. Server egress now queued below the bandwidth cap

      The server's public link is a fixed 2 Mbps and the provider drops packets above it. The host now queues below the cap with per-flow fairness. Measured as total retransmissions in the Caddy network namespace (not attributed to specific connections or players): for the same 876 KB sound download, retransmissions fell from 223 in a 12-second window to 30 in a 14-second window; small flows such as table messages are scheduled ahead of bulk files, which is not a guarantee for any single player, and bulk downloads themselves get slightly slower.

      • Far fewer total server retransmissions during bulk downloads (namespace totals, not a per-player guarantee)
    23. Poker table sound file about 9× smaller

      The poker table's card and chip foley file changes from an 877 KB uncompressed WAV to a 95 KB MP3, keeping the original recordings and clip timing, which cuts the first table entry's download size and bandwidth use.

      • Smaller download on first table entry
    24. Feature usage and game popularity use daily rollups

      The admin feature-usage report and the lobby's game popularity ranking now read daily rollups instead of scanning every visit, so they stay fast as traffic grows.

      • Feature usage report completes at large scale
    25. Tables no longer back up saves when the database is busy

      When database writes slow down, Dou Dizhu, Zha Jin Hua, Niu Niu and similar tables merge consecutive ordinary state saves into one write; settlements and seat changes are still saved one by one, so moves and timed auto-plays are paused less often.

      • Fewer table stalls when the database is busy
    26. Hub popular games no longer stall

      The daily popular ranking now refreshes in the background; while it updates, the hub immediately shows the previous ranking instead of waiting seconds.

      • Faster games hub
    27. Feedback alerts recognise HarmonyOS phones

      Player-feedback alerts now label HarmonyOS phones as HarmonyOS instead of desktop/other.

      • More accurate feedback platform labels
    28. Admin report tests stay reliable at large data volumes

      Admin report tests now check only their own fixture data, so they run reliably against a million-user database; player features are unchanged.

      • Steadier tests
    29. Isolated request-body waits no longer page

      Isolated request-body waits on telemetry and avatar lookups, where measured server wake/poll time is not dominant, now log a warning; the fifth and later in one fixed 10-minute window page, and scheduling-dominated or unmeasured waits page immediately.

      • Fewer isolated request-body-wait alerts
    30. Scratch cards offer a refill when coins run short

      When practice coins cannot cover the selected tickets, the purchase area now shows the refill button directly instead of hiding it in the menu.

      • One-tap refill when short
    31. Membership campaign stats no longer scan every account

      Admin membership-campaign eligibility now reads an hourly account counter, so it stays instant with many accounts while returning the same numbers.

      • Faster campaign statistics
    32. Choose your club number when creating a club

      Club numbers are still random by default; tick “Choose the club number” to pick any unused six-digit number.

      • Pick your own club number
    33. Admin insights: ratings and notification stats use live counters

      Admin insights now keep play-rating and notification-campaign stats as they are written instead of rescanning all history; windows are whole days and campaigns show fixed labels without stored notification titles.

      • Faster admin insights
    34. Admin business metrics read summary tables

      Sign-ups, daily/weekly/monthly actives, retention and Pro members now come from write-time summary tables or primary-key lookups, so the admin business report no longer scans every user and event at large scale.

      • Admin business report stays fast at scale
    35. Admin growth insights count actions and errors by day

      The admin growth insights sections for actions, failures, WeChat entry points and client errors are now counted by day as data is written, so they stay fast as data grows; windows align to whole days.

      • Admin insights stay fast at large data volumes
    36. Admin monetization report reads write-time counters

      The monetization report no longer rescans raw telemetry and game records every minute; it reads counters the statistics writer keeps as data is written, so it stays at milliseconds as data grows.

      • Admin monetization report stays fast at scale
    37. Admin growth and retention reports read daily totals

      The admin sign-up cohort, games and retention reports now read running daily totals, so they stay fast as the player base grows; windows count whole days.

      • Admin reports stay fast at large scale
    38. Admin reports identify test accounts faster

      When admin reports exclude internal and test accounts, they now read a dedicated index of test traffic instead of checking every guest account; the counting rules are unchanged.

      • Faster admin reports
    39. Creating a room right after leaving no longer says you are in another room

      In room games such as Niuniu, Sangong and Dou Dizhu, creating or joining right after leaving now waits for the previous room to finish saving instead of wrongly saying you are in another room.

      • Smoother create right after leaving
    40. Admin activity counts accumulate as events arrive

      The admin hourly, daily and 7-day active counts now accumulate as events are written, so the report reads a few summary rows and stays in milliseconds as users grow.

      • Admin activity stays fast at large user counts
    41. Admin reports compute only while someone is looking

      Admin reports no longer recompute every minute in the background; they are computed only while staff have the page open, leaving the database to the games. The first open briefly waits while the report is computed.

      • Games no longer compete with admin reports for the database
  11. Released
    H5BackendMarketing site

    10 updates in this release

    This release includes: New article: Coolers at Loose Tables; Player connection transport settings adjusted; Website game screenshots now show the current app; Admin quality report builds faster; Fixed Top 3 on Home, new games at slot six with a NEW tag; Slow player networks no longer raise urgent alerts; and 4 more changes.

    1. New article: Coolers at Loose Tables

      We re-audited the open-source dealing code and simulated it with the same shuffle and hand ranking: we found no dealing bug that would increase coolers, and in the simulation wider entry ranges made them more common.

      • Blog: how cooler frequency rises with VPIP
    2. Player connection transport settings adjusted

      The public proxy now uses BBR congestion control and keeps the send window after idle periods, as a mitigation for stalls on lossy routes; the effect is still being observed.

      • Transport mitigation for lossy routes
    3. Website game screenshots now show the current app

      Homepage carousel and game-page screenshots were retaken from the current app, adding Short Deck Hold'em, UNO, the four lottery games and 2048; the replay, stats and solver shots were refreshed too.

      • Screenshots of 23 games match today's interface
    4. Admin quality report builds faster

      The admin quality report now assembles its result straight from rows, cutting build time for the 30-day window by about a quarter with identical content.

      • Faster admin report
    5. Fixed Top 3 on Home, new games at slot six with a NEW tag

      Home now always leads with Texas Hold'em, Zha Jin Hua and Niu Niu; the other games follow yesterday's unique signed-in visitors. Games launched in the past week carry a NEW tag, and the newest one sits in sixth place; with no new game that week, the order follows visitor counts as usual.

      • New games are easier to find during their first week
    6. Slow player networks no longer raise urgent alerts

      Slow requests whose time was spent entirely on the player's network are now logged as warnings instead of paging; slowness in the server or client, timeouts and failed connections still alert.

      • Operator alerts now cover only problems we can fix
    7. Admin growth insights read statistics tables

      The admin growth insights' signup funnel and per-game player counts are now kept in statistics tables by one background writer after settlements and telemetry are written; the report reads those small tables each minute instead of recomputing all history. Settlement and telemetry writes no longer do any statistics work. Counting starts with this release.

      • When statistics are busy or fail they undercount; games and telemetry are unaffected
    8. Admin quality report reads live statistics

      The admin quality page's document, operation, timing, error and coverage figures are now accumulated as telemetry is written; the report reads one small table each minute instead of recomputing every event in the window. Windows start on the hour and latency percentiles are estimated within about 20% buckets. Counting starts with this release.

      • When telemetry is busy or fails, only the statistic is skipped, never the telemetry itself
    9. Hold'em's Buy chips button now matches the other games

      The Buy chips button in the Hold'em top bar now uses the same gold chip with a green plus as every other game.

      • Buy chips looks the same in every game
    10. Database raises its shared-memory ceiling for large queries

      The database container's shared-memory ceiling rises from 64MB to 1GB, so large parallel queries are far less likely to fail for lack of space as data grows.

      • Steadier queries at larger data volumes
  12. Released
    H5BackendMarketing site

    4 updates in this release

    This release includes: Development servers no longer send Telegram operations alerts; Short Deck Hold'em follows GGPoker: a straight beats three of a kind; Baccarat, Sic Bo, Kawuxing, Zhuoji, Chengdu Mahjong, Guandan, Gomoku, UNO, Checkers and Xiangqi rooms can be watched; Short Deck Hold'em: the your-turn line no longer covers the board.

    1. Development servers no longer send Telegram operations alerts

      Servers running with APP_ENV=development no longer send error alerts, staff notices or daily reports to the operations chat. Production alerting is unchanged.

      • Production alerts are unchanged
    2. Short Deck Hold'em follows GGPoker: a straight beats three of a kind

      From high to low: straight flush, four of a kind, flush, full house, straight, three of a kind, two pair, one pair, high card. A flush still beats a full house and A-6-7-8-9 is still the lowest straight.

      • A straight beats three of a kind, as on GGPoker
    3. Baccarat, Sic Bo, Kawuxing, Zhuoji, Chengdu Mahjong, Guandan, Gomoku, UNO, Checkers and Xiangqi rooms can be watched

      These games also offer Allow friends to spectate when creating a room, on by default. Spectators see only public cards, tiles and bets, cannot act, and never see unshown hands or concealed tiles.

      • Spectators see thrown-item animations but cannot throw
      • People you block cannot watch your table
    4. Short Deck Hold'em: the your-turn line no longer covers the board

      After the flop, when quick-raise chips are shown, the your-turn text no longer sits on the community cards; the fold button keeps its countdown and screen-reader alerts remain.

      • Community cards stay uncovered on your turn
  13. Released
    H5BackendMarketing site

    17 updates in this release

    This release includes: New game: Short Deck Hold’em; Niuniu, Sangong, Zha Jin Hua, Dou Dizhu and Blackjack rooms can be watched; Slow-request alerts show network path time; Waits for analytics uploads no longer page one by one; Table chat is saved to design new quick reactions; Admin retention report reads live statistics; and 11 more changes.

    1. New game: Short Deck Hold’em

      Short Deck Hold’em is now its own game in the Game Center: 36 cards (6 through A), two hole cards, five community cards and no-limit betting. Everyone antes each hand and the button adds a button blind of one more ante. Play 2–6-player friend rooms with optional computer seats, using separate practice chips.

      • A flush beats a full house; three of a kind beats a straight (Triton rule)
      • A-6-7-8-9 is the lowest straight
      • Hand records and room standings
    2. Niuniu, Sangong, Zha Jin Hua, Dou Dizhu and Blackjack rooms can be watched

      When creating a room, Allow friends to spectate is on by default. Friends enter the room code and tap Spectate only to watch public play, with no actions and no unshown cards.

      • Watching takes no seat and does not affect play
      • Players see how many people are watching
    3. Slow-request alerts show network path time

      Operations alerts now label the device-to-server path time for slow requests where the server itself took only milliseconds, so they are not mistaken for server problems.

      • Slow-request alerts separate server time from network path time
    4. Waits for analytics uploads no longer page one by one

      When a background analytics upload's body arrived a few hundred milliseconds late, the server paged for each one as slow processing, although its own work took under 1 ms and, in the cases checked, the proxy received the data just as late. Isolated waits now only log a warning; five within 10 minutes still page.

      • Other routes and server scheduling delays still page
    5. Table chat is saved to design new quick reactions

      Accepted table chat messages in every game are now stored with the user ID, game and time, so the most common lines can become new quick reactions; they are deleted with the account. The Privacy Policy is updated to match.

      • Written in the background in batches, without slowing play or chat
    6. Admin retention report reads live statistics

      The admin quality page's registration retention figures are now updated when registrations, game records and telemetry are written; the report reads that small table each minute instead of recomputing every account's history. Counting starts with registrations after this release.

      • When telemetry is busy or fails, only the statistic is skipped, never the telemetry itself
    7. Faster email verification codes

      Requesting an email code now returns as soon as the mail service accepts it, without a fixed extra wait of about a second. Asking again for the same address too soon shows a clear try-again-later message with the remaining seconds.

      • No fixed one-second wait on code requests
      • Repeat requests show the exact countdown
    8. Claw machine opens on older Android and iPhone browsers

      Some older Android WebViews and Safari before iOS 16.4 hit a syntax error and could not load the claw machine. The build now converts the 3D engine's newer syntax into a form those browsers understand.

      • Gameplay and visuals are unchanged
    9. Layout fixes prioritized by real screen sizes

      The existing page-load performance record now includes the screen size (CSS pixel width and height, pixel ratio and orientation), and the admin analytics page counts how many people use each size so table layout fixes can target the screens people actually use.

      • No extra requests and no device model
    10. Admin live tables can be filtered by table type

      In the admin view of games in progress, selecting Games in progress, Human-only tables or Bot tables lists just those tables; select it again to show all.

      • Staff admin only; player screens are unchanged
    11. Top-row blind badges stay clear of the next seat

      At the top of the poker table, SB, BB and STR badges now sit on the outer side of each player's balance, so on phones they no longer cover the neighbouring player's stack.

      • Balances and avatars keep their positions
    12. Accurate buy-ins after leaving and re-sitting

      The poker table leaderboard now tracks buy-ins per seating: leaving with a squid payout and re-sitting with the same stack counts the new buy-in, and the cash-out no longer double-counts the payout. Net results are unchanged.

      • A fresh seat is recognised from the seating record, not guessed from equal stacks
    13. Lighter background performance-trend processing

      The background job that summarizes connection-speed data now works in small batches, so each database statement does less work and slow queries are reduced.

      • No change for players; the trend numbers are the same
    14. App version info matches the current store releases

      The in-app version info now reflects the current public store builds: Android 1.1.36 and iOS 1.1.35.

      • Version info only; the apps themselves are unchanged
    15. Website shows Google Play public version 1.1.36

      Google Play now serves Android 1.1.36 (563), and the website's version details follow it; 1.1.37 (565) has been submitted for review and will be recorded once public.

      • Website Android public version updated to 1.1.36 (563)
    16. Your own reaction panel no longer covers the actions

      The reaction panel opened from your own avatar at the Hold'em table now uses the same compact size as the panel for other players, so it no longer covers the betting buttons.

      • Four columns of small icons, matching the panel for other players
    17. Price-view stats count visitors without a time zone

      In the admin monetization report, visitors without a recorded time zone who viewed prices now count under unknown region instead of being dropped.

      • Admin reporting only; players are unaffected
  14. Released
    H5BackendMarketing site

    32 updates in this release

    This release includes: Deletion confirmations sent with the reset; Public source sync; Tests use the single local database; Public source sync; Bots appear in the leaderboard from the first hand; Email confirmation when an account is permanently deleted; and 26 more changes.

    1. Deletion confirmations sent with the reset

      Accounts still inside their deletion window when the data reset runs receive their account-deleted confirmation after the reset.

      • Sent only after a successful reset, once per account
    2. Public source sync

      Public source re-synced after a dependency change.

      • AGPL source tag solver-src-2026-10-21-2
    3. Tests use the single local database

      Server database tests now run against the single local database instead of a throwaway database per test; tests that could not run reliably on a shared database were removed.

      • Internal test change; no user-visible change
    4. Public source sync

      The public source for fair dealing is synced to the current version.

      • AGPL source tag solver-src-2026-10-21
    5. Bots appear in the leaderboard from the first hand

      In Hold'em rooms with bots, the table leaderboard listed only the human player during the first hand. Bots now appear under their table names with their starting stacks as soon as they are dealt in.

      • The leaderboard lists every bot from the first hand
      • Bot names match the table
    6. Email confirmation when an account is permanently deleted

      When an account you asked to delete is permanently removed after the 30-day recovery window, you now get a confirmation email in Chinese or English. A failed send never blocks the deletion; guest and test accounts get nothing.

      • Deletion-complete confirmation email
    7. Zha Jin Hua: all-in compare when you are short

      In Zha Jin Hua, when only two players remain and you cannot afford the call, you are no longer forced to fold: in any round, including the first, go all in to put in what you have left and compare at once. Win and you take the whole pot; lose and you are out, and an exact tie loses for the challenger. With three or more players left, folding is still the only option.

      • Heads-up all-in compare when short of chips
      • Puts in your remaining chips and compares, after a confirmation
    8. Spectator browser check

      The spectator flow gains a real-browser check: enter from the join page and verify chat identity and the report entry.

      • Internal test only; no user-visible change
    9. Website product screenshots refreshed

      The website's review, stats and solver screenshots were recaptured from the current app UI.

      • Screenshots match the current app
    10. Faster password hashing in development builds

      Internal improvement: enable compiler optimization for password-hashing dependencies in development and test builds, reducing hashing overhead and related slow-request alerts. Production builds, the password hashing algorithm and security parameters are unchanged.

      • The password hashing algorithm and security parameters are unchanged
    11. Next release starts fresh; accounts kept

      The next release clears old data: game history and stats, wallet balances and ledgers, membership benefits, friends, clubs and feedback are reset; only account login data and email unsubscribe choices are kept. Every kept account receives one year of Max, and the free-Max offers for new sign-ups continue.

      • Email, password, third-party sign-in and unexpired sessions are kept, so no one needs to register again
      • If you unsubscribed from emails, you stay unsubscribed
      • Accounts already scheduled for deletion receive the deletion confirmation email
      • Guest and test accounts are not kept
      • The full database is backed up before anything is cleared
    12. Spectators see player identities; in-hand chat is filtered too

      Poker spectators now see every player's identity and avatar just like players do, while hole cards and other private card information stay hidden; chat sent during a hand is now screened for inappropriate content just like chat between hands.

      • Seated players show their real avatars and identities to spectators
      • Hole cards, equity and other private information stay fully hidden from spectators
      • Inappropriate messages sent during a hand are blocked and only the sender is told
    13. Internal squid history storage cleanup

      Internal maintenance with no user-facing change: squid round history keeps only logical links, and room release and account deletion now clean up or anonymize it explicitly.

      • No user-facing change
    14. Spectator chat shows real identity

      Poker spectators now chat under their real account identity and avatar just like players, so their messages can be blocked and reported; spectators can also block or report players' messages. Spectators still never see hole cards.

      • Spectator messages show the sender's real name and avatar and disappear once blocked
      • Chat history replayed on rejoin treats spectator and player lines alike
      • A spectator's own messages are labelled "You"
    15. Desktop table and game service stability fixes

      Fixes the poker table failing to open on wide desktop screens with the right rail expanded; the game service uses less stack on deep dealing paths, and host transfer only goes to an account that still exists.

      • The poker table opens again on wide desktop screens with the chat rail expanded
      • Deep paths such as hand start and sealed dealing need less stack
      • Host handover only goes to a live account that is not being deleted; with no eligible successor the leave still completes and the host stays vacant until a retry finds one
    16. Squid and timed-blind fixes

      Blood squid keeps every participant seated until the round settles (stand-ups and expired holds leave right after, host removal waits) and never pays an empty seat; waiting newcomers are dealt while a squid round is paused; timed levels scale the ante and Mental Poker verifies the dealt hand's blinds; squid history shows the big blind again.

      • Stand-up, hold expiry, timeout and host removal wait for blood-round settlement
      • SB/BB-tier antes keep their tier as blinds rise
      • Timed blind levels now take effect 30 seconds after each boundary so every client can verify them
    17. Account cleanup, settlement and release safety fixes

      The nightly account cleanup continues past a failing account and fully erases identities from shared history; settlement locks accounts in one order; renewals can no longer write to an account being deleted.

      • Baccarat and sic bo rooms recover correctly during release handoff
      • Clearing notifications no longer counts as reading them
      • Every production release requires the source to be pushed first
    18. Faster history, stats and club pages

      Player cards, session lists, human/AI filters and club pages now read maintained summaries, so they no longer slow down as hand history grows; results are unchanged.

      • Avatar card lifetime totals load instantly
      • Session pages and human/AI filters read one page at a time
      • Club lists no longer re-download avatar images
    19. Admin analytics and feedback alert fixes

      Thumbs-down alerts again include the player's reason and text; feature usage stays available with many pages; quality trends stop rereading once caught up; sign-in no longer reports device associations.

      • One alert per thumbs-down, carrying its reason and text
      • 30-day usage aggregates incrementally and offers the busiest pages as filters
      • Remove the retired device-association endpoint and sign-in report
    20. Analytics and avatar uploads no longer slow games

      Optional analytics no longer contends with settlement for account locks and is bounded in the database; avatar decoding moved off game threads; a brief session-verifier outage re-checks sessions instead of disconnecting everyone.

      • Notification receipts and telemetry batches no longer fail on one optional observation
      • Admin usage reports run bounded hourly queries and the newer latency stages now chart
    21. Releases no longer drop table connections

      Updating the website or web app now keeps live table connections open, so players are no longer marked disconnected or auto-folded by a release; links to several retired articles now redirect.

      • Publishing the website or web app keeps live tables connected, including encrypted-dealing tables, instead of marking players disconnected
      • Links to retired articles now redirect to their replacement article or the article archive
    22. Stricter gold-bean settlement

      On all-human public gold-bean tables, a re-buy after busting now needs a full buy-in of beans and waits for the previous hand to settle. Beans still owed for an unsettled hand cannot be used to join another gold-bean table until that hand settles.

      • Re-buys after busting check the bean balance
      • Joining a gold-bean table waits until a hand you left has settled
    23. Public name filter covers tables and boards

      Poker seats, room standings, the squid ledger, the gold-bean leaderboard, tournament standings and friend table alerts now filter objectionable names to the anonymous player label.

      • Objectionable names saved on older accounts no longer appear on public lists
    24. Poker table reliability fixes

      Practice tables no longer exhaust room codes, spectators joining no longer delay actions, chat floods cannot displace rebuy or squid choices, all-human tables add the full 60-second time bank, and reopened rooms keep their chosen length.

      • Creating a practice table replaces a never-dealt one and keeps its room code; each account keeps at most 3 practice tables open
      • Spectator presence updates no longer wait on a congested connection
      • Pre-deal chat, reactions and throws have their own cap and can no longer displace rebuy, sit-out or squid-join commands
      • All-human (sealed dealing) tables extend the clock by +60 seconds like every other table
      • Reopened rooms run for the host's chosen length, excluding the wait before the first deal
    25. More accurate rules and fairness pages

      Website and in-game rules now match the current code: every Hold’em hand without advanced encrypted dealing uses sealed dealing, Zha Jin Hua defaults to 3 rounds with a 1–10 host setting, Gomoku forfeits after 12 seconds disconnected on your turn, and Happy 8 shows its own payout and fairness notes.

      • Sealed dealing copy now covers bot and solo Hold’em hands
      • Zha Jin Hua rules state the default round limit and the host range
      • Corrected outdated Gomoku, Blackjack, Niuniu and engineering-post details
    26. Raise button always shows the amount you send

      Typed poker raises now show the exact amount that will be sent (All-in above your stack) before confirming; mid-hand spectators see the room countdown; English players see English sticker names; club member avatars refresh.

      • Over-stack entries show All-in at once; below-minimum entries become the minimum raise before confirming
      • Mid-hand spectators see time remaining instead of the total duration
      • Preparing Apple Pay no longer creates duplicate pending payment records
    27. Repair stale review-found tests and leftovers

      Repair guard tests that went stale or vacuous after refactors and remove leftovers of the retired bot-table prompt.

      • Repoint guard tests stranded by module moves
      • Make the public-reveal overwrite test assert real conflicts
      • Remove leftovers of the retired bot-table prompt
    28. More disciplined poker bots

      Improved preflop reraise and all-in discipline, river bluff selection using blockers and actual wager sizes, and Shark adjustments grounded in sufficient opponent observations.

      • Avoid turning light reraises into expensive all-in calls
      • Match river value and bluff budgets to stacks and wager sizes
      • Limit over-aggression from small samples and unsupported cross-street reads
      • Preserve persona ranges and bet sizes while tying every river bluff budget to actual value bets
    29. Improve auto-join, room recovery and analytics availability

      Retry one confirmed full-table auto-match, stop reconnecting to closed ZJH rooms, and compact repeated analytics events while preserving exact counts and resource limits.

      • Preserve explicit table choices and authoritative recovery checks
      • Combine identical daily events with exact visitor deduplication
    30. Keep replay playback uninterrupted

      Defer automatic build updates and non-route module recovery reloads during hand review to preserve playback progress.

      • Automatic build checks resume after leaving the replay
    31. Fix blood squid bot reveal persistence

      Rule-authorized bot reveals are saved for hand history without requiring a human account.

      • Preserve human ownership checks and private-card secrecy
    32. More readable table reactions

      Larger picker artwork with text labels, plus bigger desktop barrage stickers with gentler motion for readable captions.

      • Larger artwork with all choices reachable in the scrollable picker
  15. Released
    H5Backend

    3 updates in this release

    This release includes: Accurate slow-request alert counts; Larger, livelier table reactions; A cheekier Animal poker sticker.

    1. Accurate slow-request alert counts

      Count slow requests separately by route, operation, game, result, platform and client build, so the latest sample cannot mislabel other requests. Alerts also show the client build to distinguish older pages from the current service.

      • Correct alert counts for mixed routes and timeout outcomes
      • Show the client build while preserving existing alert thresholds
    2. Larger, livelier table reactions

      Table reactions use 80px artwork on phones and 112px on tablets, with larger tablet text and continuous playful motion during their crossing. A bounded upper rail keeps the display compact and lets taps pass through.

      • Larger animated reactions with bounded on-table display
    3. A cheekier Animal poker sticker

      Replace the Animal sticker with a goofy donkey for playful banter among friends, shared by chat and table throws.

      • Refresh the Animal sticker artwork
  16. Released
    H5BackendMarketing site

    27 updates in this release

    This release includes: Improve feedback database wait diagnostics; Lean batched client telemetry; Expose upload receiver sampling coverage; Start poker room timers at the first deal; Restore private poker cards after reconnect; Improve upload diagnostic parsing; and 21 more changes.

    1. Improve feedback database wait diagnostics

      Add pool acquisition and same-request database wait evidence with detached sampling that preserves feedback completion and records direct blockers and remaining evidence gaps.

      • Record connection reuse, creation and validation timing
      • Match valid slow samples using the backend identity returned by the same query, rejecting samples after operation completion
    2. Lean batched client telemetry

      Batch and compress client telemetry, defer encoding, bound backlogs, and prevent delayed uploads across account changes.

      • Page, action, performance and error events share bounded batches while preserving diagnostics and validation.
    3. Expose upload receiver sampling coverage

      Check actual receiver probe windows per request so collector health or zero events cannot be mistaken for ruling out receiver issues.

      • Distinguish uncovered requests, degraded probes, and missing timing
    4. Start poker room timers at the first deal

      Waiting for players no longer consumes the selected duration; reconnects and recovery retain the first-deal deadline.

      • Waiting for players no longer consumes the selected duration; reconnects and recovery retain the first-deal deadline.
    5. Restore private poker cards after reconnect

      Recover private cards when reconnect tickets precede snapshots and retry missing cards on foreground resume.

      • Preserve hand and seat ownership checks with bounded automatic recovery.
    6. Improve upload diagnostic parsing

      Fix valid IPv6 TCP option truncation and flagless packet parsing while retaining bounded failure categories and incomplete-attribution guards.

      • Improve capture coverage of valid TCP headers
      • Distinguish parse failures without treating evidence gaps as root causes
    7. Fix rules pages and alert correlation

      Restore Chinese and English Zha Jin Hua rules pages with the default round count and retain the process identity in WebSocket alerts so events remain distinguishable after restarts.

      • Keep the website rules aligned with the in-game default round count
      • Preserve the observation and process identity pair in WebSocket alerts
    8. Smaller telemetry and concise alerts

      Remove redundant quality metadata, broaden compression coverage, shorten alerts, and repair receiver diagnostic startup.

      • Keep relevant timings and one correlation identifier
      • Correct kernel diagnostic control writes
    9. Complete live diagnostics and bound report aggregation

      Fix receiver probe control writes, record feedback processing phases, and limit online-user telemetry aggregation to the required time range.

      • Preserve metric definitions and alert thresholds; keep unconfirmed causes unknown
      • Add no business SQL for diagnostics while retaining fail-open behavior and resource limits
      • Reuse one total browser acceptance deadline and cover the normal chat entry
    10. Six new poker chat stickers

      Six new panda poker stickers are available in chat history and avatar interactions.

      • Uses the approved panda meme artwork
      • Consistent choices across chat and avatar interactions
    11. Fix activation of production receiver diagnostics

      Use filtering supported by the running kernel and retain probe health even without slow request samples.

      • Record bounded failure steps and error codes while preserving capture duration and resource limits
    12. More playful poker stickers

      Redesigned Barking and Animal and added a Stop stealing sticker.

      • Use Stop stealing in chat, self reactions and seat interactions.
    13. Street-by-street betting lines in hand history

      Hand history shows each player’s actions and bet amounts by street, preserving repeated actions in order.

      • Distinguish raise-to totals from call and all-in contributions
      • Keep action records bound to their hand and unrevealed cards hidden
    14. Handle poker side commands promptly and complete slow-request evidence

      Fix delays to stay-seated and related commands during bot thinking, record exact command and deferral evidence, and distinguish email security deadlines from provider latency.

      • Preserve alert thresholds and explicitly identify missing evidence
      • Add bounded upload receiver rejection evidence that disables itself on an unverified kernel
      • Read registration and retention through account and time indexes to avoid unnecessary historical telemetry aggregation competing for database CPU
    15. Improve card viewing and private-room start guidance

      Allow valid Zha Jin Hua card views across other players’ actions, clarify Niuniu host-start requirements, and remove voice playback code from initial page loading.

      • Preserve betting, cross-hand, replay, and card privacy checks
      • Explain that the Niuniu host can start with two eligible players
      • Keep voice preferences shared while loading playback code when needed
    16. Align admin human-only table counts

      Use authoritative release occupancy for the human-only card so solo rooms are no longer counted.

      • Exclude solo rooms and include started tables with two humans and no bots
    17. Fix poker sit-out delays and preserve alert evidence

      Handle sit-out requests during bot thinking, retain route and operation diagnoses through alert cooldowns and retries, and expose upload encoding evidence.

      • Group slow operations by route and operation with bounded request correlation
      • Distinguish compressed, plain, and unknown upload encoding in diagnostics
      • Preserve alert thresholds, cooldowns, and dealing authorization constraints
    18. Release stale poker crypto messages promptly

      Discard out-of-phase crypto messages during bot thinking and recover historical poker and slow avatar upload evidence.

      • Preserve authentication and valid action order while ending stale message timers during bot thinking
      • Look up historical poker diagnostics by event time and include slow avatar uploads in bounded packet metadata capture
    19. Configurable ZJH round limit

      Choose when ZJH automatically shows down: 3 rounds by default, up to 10.

      • Room rules and table round counts follow the saved choice across reconnects
    20. Restore missing latency diagnostic evidence

      Preserve shared game socket and replayed poker delivery timings, and recover historical HTTP diagnostics by request time.

      • Shared game sockets retain decode and event dispatch timings
      • Replayed poker tickets retain their current connection wait
      • Historical HTTP lookups preserve candidate and database timeout caps
    21. Player positions in hand history

      Hand results show each player’s position in the completed hand.

      • Historical seat positions also appear for players with hidden cards
    22. New bad luck poker reaction

      Added the bad luck, well played sticker to poker chat and table reactions.

      • New artwork shared across chat, self reactions and seat-to-seat animations
    23. Add squatting dog sticker

      Use the squatting dog sticker in chat, self reactions and seat-to-seat throws.

      • Share the squatting dog artwork and effects across all three reaction entry points
    24. New show-off sticker and throw animation

      Add a show-off meme to the shared 13-choice chat and throw menus, with a golden sparkle flourish on impact.

      • Available in chat, barrage and directed throws, including reduced motion
    25. Move settlement text left of centre

      Place the winner banner in open felt above the community cards to keep cards visible.

      • Preserve the winning-hand details action
    26. Twelve shared chat and throwable reactions

      Share nine throwable emoji and three custom stickers across chat and opponent menus; custom art flies and lands on the target avatar.

      • Keep familiar art, targeted effects and per-hand quotas
    27. Unify reaction style and animation with twelve choices

      Restore familiar emoji, retain three image stickers, and share art and animation between chat and barrage.

      • Avatar and chat menus share twelve choices
  17. Released
    H5Backend

    12 updates in this release

    This release includes: New panda reaction sticker; New wild barking sticker; Keep blood squid reveals in hand history; Animal sticker and expressive comic reactions; Clear action labels when hole cards are revealed; Reduce telemetry upload size; and 6 more changes.

    1. New panda reaction sticker

      Send the new panda sticker from poker chat or the avatar menu, with matching images in chat history and table barrage.

      • Uses existing reaction animations and reduced motion settings
    2. New wild barking sticker

      Send the wild barking sticker from your avatar or chat picker, with the same image in chat history and table barrage.

      • Uses brief shake animations and respects reduced motion preferences
    3. Keep blood squid reveals in hand history

      Persist rule-authorized public cards so hand results and replays retain the reveal.

      • Unrevealed hole cards stay private
    4. Animal sticker and expressive comic reactions

      Add a funny Animal donkey sticker and exaggerate existing reactions with comic art across the picker, chat history and table barrage.

      • Preserve existing reaction values and keep animations bounded
    5. Clear action labels when hole cards are revealed

      Hide the previous action label when one or both hole cards are revealed so it cannot cover the cards.

      • Keep committed bet amounts and stack balances visible
    6. Reduce telemetry upload size

      Asynchronously compress larger telemetry JSON after server negotiation to reduce upload segments; preserve immediate lifecycle delivery and bound decompression size and concurrency.

      • Older servers and unsupported browsers keep receiving plain JSON
      • Reject corrupt or oversized compressed requests before ingestion
    7. Report upload capture readiness accurately

      Report collection only after packet capture starts; allow enough initialization threads while retaining CPU and memory limits.

      • Keep initialization and shutdown gaps visible
    8. Complete slow-upload packet timelines

      Receive packets immediately and associate access logs after a bounded drain interval so delayed upload tails are retained.

      • Declare gaps when correlation queues or capture limits are reached
    9. Retain slow-upload diagnostic evidence automatically

      Slow telemetry requests retain bounded connection timelines; diagnosis joins request evidence and capture gaps without changing game handling or alert thresholds.

      • Bound collection resources and retention without storing payloads or network identities
    10. Fix avatar requests while spectating poker

      Skip avatar lookups and retries for hidden spectator identities while preserving player privacy.

      • Keep avatar loading for seated players unchanged
    11. Correct solo-room human-table counting

      Only started rooms with at least two humans and no bots count as human-only tables; solo rooms no longer block releases.

      • Align admin and release checks on the human-count threshold
    12. 60 seconds per time-bank token

      Each time-bank token now adds 60 seconds, with five tokens per player per table.

      • Preserve the three-token decision limit and reconnect-safe budgets
  18. Released
    H5Backend

    5 updates in this release

    This release includes: Add upload latency evidence; Avatar reactions and animated chat; Single all-in indicator; Improve poker connection diagnosis; Administrator-managed club profiles.

    1. Add upload latency evidence

      Correlate sampled browser upload events with bounded TCP packet metadata for upload latency investigation.

      • Correlate upload observations by request trace without logging bodies
      • Bound sampling, duration and capacity without replaying requests
    2. Avatar reactions and animated chat

      Send chat reactions from your own avatar, with 30 choices and more expressive animations.

      • Send reactions from your own avatar
      • 30 chat reactions with expressive animations
    3. Single all-in indicator

      Poker shows one prominent all-in indicator per player and keeps the remaining stack visible.

      • Poker shows one prominent all-in indicator per player and keeps the remaining stack visible.
    4. Improve poker connection diagnosis

      Correlate poker handshake records across client, proxy and server using random diagnostic identifiers.

      • Preserve reconnect behavior and security checks
    5. Administrator-managed club profiles

      Owners and administrators can edit club names and photos; regular members cannot.

      • Only owners and administrators can rename clubs and change photos
      • Server rejects edits by members and demoted administrators
  19. Released
    H5

    Player avatars in club member lists

    Show player avatars alongside names, user IDs, roles and management actions in member and application lists, with name initials when images are unavailable.

    • Show player preset avatars and uploaded photos
    • Keep avatar loading independent of member management
  20. Released
    H5Backend

    Deploy game runtime fixes

    Deploy the merged Xiangqi active-table correction, closed Bull room reconnect fix and club photo support to the game runtime.

    • Exclude settled Xiangqi games from ongoing human tables.
    • Stop reconnecting after a Bull room is confirmed closed.
    • Support club photo uploads.