← Back to latest updates
RELEASE ARCHIVE

Earlier public releases.

160 earlier updates, newest first. Showing 41–60 on page 3 of 8.

  1. Released
    Backend

    Reduce repeated work when hands start

    Preflop hands with the same ranks and suitedness share equity estimates. Deal broadcasts reuse serialized content to reduce work when many tables start hands.

    • Equity estimates retain 600 samples per calculation; postflop cache keys still distinguish exact suits.
    • Broadcasts preserve message content, order and hole-card visibility.
  2. Released
    Backend

    Move table equity estimates off realtime workers

    Run snapshot equity estimates on bounded background workers, freeing realtime request workers while preserving sample counts and message order.

    • Disable disk swap for the table service within its existing memory limit.
    • Disable small-packet buffering on HTTP and WebSocket connections to send responses promptly.
  3. Released
    Backend

    Reduce waits in table operations and history queries

    Host transfers, departures and room closure use ordered background writes, while the live directory reads from memory. History cache version checks use bounded parallel batches and preserve invalidation after updates, deletions and ownership changes.

    • Successful balance and membership changes still require database commit confirmation.
    • A delayed history version query no longer holds the only batch worker; later requests check a fresh version.
  4. Released
    Backend

    Keep live table state in memory with background persistence

    Use memory for live standings, lobby and room reads, batch each hand’s records, and recover committed stacks and seats during release handoff.

    • Actions and live lists use memory state; active games show current stacks, turn state, and a count of logical hands.
    • A background queue saves hands and recovery snapshots atomically; completed results are sent after commit.
    • Overlapping processes on the same host take turns owning tables, waiting for the previous process and its database connections to exit.
    • Bulk history reads use a plan suited to the actual data size, reducing large-query overhead.
  5. Released
    Backend

    Reduce table and history processing overhead

    Reuse table equity calculations, batch background session checks, and improve history indexes and caching. Hand records commit before regenerable analysis runs.

    • History caches follow committed data versions while preserving authorization and session expiry checks.
    • Bound background computation to reduce competition with live tables and history reads.
    • Remove a duplicate write after leaving a table so it cannot close a concurrent rejoin.
    • Required hand writes use a bounded queue and wait for the database transaction to commit before acknowledging completion and allowing the next hand.
  6. Released
    BackendMarketing site

    Sync public mobile store versions

    Website version information and the app update catalog now identify the publicly available iOS 1.1.9 (build 401) and Android 1.1.10 (build 406).

    • Based on official release states and public storefront verification.
  7. Released
    Android

    Android 1.1.10 is now available

    Fixed profile navigation for guests and signed-out users: tapping your profile opens sign-in. Registered accounts can still edit their name and avatar. Games continue to use practice chips only.

    • Google Play public listings in the US and Singapore show 1.1.10.
  8. Released
    iOS

    iOS 1.1.9 is now available

    Notifications open complete localized details, and embedded table and support pages align signed-in sessions with the server’s 90-day inactivity window. Public availability is verified in the Singapore and US App Store.

    • Complete notification details and verified official feedback links.
    • Consistent signed-in sessions in embedded pages.
  9. Released
    Backend

    Faster release builds, no functional change

    This release only repairs the build pipeline; nothing players see has changed. The production image has a layer whose whole job is to compile and cache the third-party dependency graph, and it had been failing silently: several workspace members declare bench / example / lib targets that the cache layer never created placeholder files for, so cargo aborted while parsing the manifests — and a trailing `|| true` on that command swallowed the error. The layer therefore cached an empty build directory, and every release recompiled roughly 300 third-party crates from scratch. On the previous production image that step measured 514 seconds out of a 645-second image build. This release adds the missing placeholders, removes the error-swallowing, and explicitly discards the placeholder artefacts before the real compile, so dependencies are recompiled only when the dependency manifests actually change. The same batch also fixes the pre-release check step, which recompiled the entire dependency graph cold every time — 227 seconds on the last measured run; that dependency compile is now cached and reused, keyed on the dependency manifest and the compiler version. Poker rules, accounts, membership, payments and the interface are all identical to the previous release.

    • The production image's dependency-cache layer works again; until now every release recompiled about 300 third-party crates.
    • Measured on an equivalent local build (same Dockerfile, same machine, server source change only): the Rust build layer went from 134s to 79s.
    • The cache layer no longer swallows failures with `|| true` — if it breaks it now fails loudly instead of quietly getting slower.
    • Placeholder artefacts are explicitly discarded before the real compile, and the output has a size floor, so a placeholder binary cannot ship.
    • New CI check: every bench / example / lib target a manifest declares must have a placeholder in the cache layer, caught in CI rather than during the production build.
    • The pre-release dependency check no longer recompiles from cold every time; it is cached against Cargo.lock and the compiler version. That step measured 227 seconds on the last run.
    • No behaviour change: rules, accounts, membership, payments and the interface all match the previous release.
  10. Released
    Backend

    Server code cleanup, no functional change

    A static-analysis cleanup on the server and nothing else. Seven clippy warnings had accumulated in the server crate since the Rust toolchain moved, and this release clears all of them. One was a genuinely redundant pattern binding on the reconnect/sit-out path (identical compiled behaviour); the other six are the established shape where the error value IS the HTTP response to return — moving it to the heap would only make every call site worse, so each is annotated in place with its reason, matching the existing convention in the codebase. Nothing behaves differently: poker rules, accounts, membership, payments and the interface are all unchanged from the previous release. The point of shipping it is to put the server's static analysis back at zero so later changes are not buried in historical noise.

    • The server crate is back to zero clippy warnings, verified on the Rust version the project's CI uses.
    • Removed one redundant pattern binding in the reconnect/sit-out branch that `..` already covered; compiled behaviour is identical.
    • Annotated the six "the error value is the HTTP response" sites in place with their rationale rather than boxing them.
    • No behaviour change: rules, accounts, membership, payments and the interface all match the previous release.
  11. Released
    H5BackendMarketing site

    A release no longer signs you out, plus refreshed website screenshots

    Every backend release used to make the server briefly unreachable: the reverse proxy that owns the public ports was destroyed and recreated on each deploy. Clients read "I cannot reach the server" as "you are signed out" — a phone app cold-started inside those seconds came up logged out and stayed that way until the app was restarted, and a browser reload landed on the sign-in page. The session was never invalidated and the stored credential was never deleted, but anyone who believed the screen and signed in again rotated their account's single session, which really did sign them out everywhere else. This release fixes the whole chain. The server now answers 401 only when a credential is genuinely invalid; when it cannot read the session store it answers 503 and asks the client to retry, and the WebSocket no longer treats a database fault as a revoked session. The app and the website tell "temporarily unreachable" apart from "signed out", retry on their own, and recover the session in the background instead of showing a sign-in screen. Guest play gets an extra guard: no new guest account is created while a session cookie is present, because a guest account has no password and a replaced one can never be recovered. The deploy itself changed too — the proxy configuration is now applied by a graceful reload instead of a container rebuild, so a release no longer interrupts connections at all. Poker rules, accounts, membership and payment behaviour are unchanged.

    • The server answers 503 with Retry-After when it cannot read the session store; 401 is reserved for a credential that is genuinely invalid.
    • A database fault no longer closes the WebSocket as 4401 "session revoked" — it uses a reconnectable close code instead.
    • App and website tell "unreachable" apart from "signed out": they retry, re-check identity when the app returns to the foreground, and stop showing a sign-in screen for a network blip.
    • No new guest account is minted while a session cookie is present, guarded on both the server and the client; a guest account has no password, so a replaced one is gone for good.
    • A release no longer rebuilds the reverse-proxy container: its configuration is directory-mounted and applied by a graceful reload, so the public ports never drop.
    • The 8 product screenshots and 2 Open Graph images were re-captured against the current interface.
  12. Released
    H5BackendMarketing site

    Refreshed product screenshots, corrected blog posts, and internal browser-error reporting

    The website's product screenshots were re-captured against the current table: monogram avatar discs, the elliptical felt, the gold pot chip, opponent card backs, and the new bet chip stacks. Sentences in three blog posts that described retired development tooling were corrected — those scripts and processes were removed with the development harness on 2026-09-05, so the posts now carry a dated editor's note and past-tense wording. Two further sentences that described cross-vendor review and a publish gate as standing mechanisms were corrected as well. The source line numbers cited by the read-cache article had drifted after a refactor and are now realigned with the current code. On the server side this release changes only the reporting path and source formatting: browser error reports now reach the self-hosted collector over an internal unix socket instead of the public internet, and the engine, dealing, and server code had a rustfmt/clippy cleanup that changes no behaviour. The open-source solver subset was republished for AGPL §13 as solver-src-2026-09-06-2. Gameplay, accounts, membership, and payments are unchanged.

    • Re-capture the 8 product screenshots and 2 Open Graph images so they match the current H5 interface.
    • Add a dated editor's note to two posts recording that the tooling removed on 2026-09-05 is gone and nothing replaced it.
    • Correct two sentences that described cross-vendor review and the website test as standing mechanisms.
    • Realign all 17 source line citations in the read-cache article with the current code, in both languages.
    • Route browser error reports to the self-hosted collector over an internal unix socket instead of the public internet.
    • Apply a uniform rustfmt/clippy cleanup across the engine, dealing, server, and wasm code with no behaviour change.
    • Republish the open-source solver subset for AGPL §13 as solver-src-2026-09-06-2.
  13. Released
    H5BackendMarketing site

    Clearer table display, a From-the-same-studio page, and site discoverability

    At the table, each street's bets now gather into the pot, chip changes animate with a cue, showdown shows every winner's five-card hand, and opponents still in the hand show face-down cards. Overlay layering is consistent, session end reasons are distinguished, action contrast, touch targets, and screen-reader announcements for timed turns all improve, and compact-viewport seat and bet-lane collisions and crossed preset-avatar identities are fixed. The website adds a /studio/ page listing the products built by the same team and stating how each one sits outside the BluffKing service and its terms, plus an /llms.txt summary, FAQ structured data, entity links to the app stores and social channels, and explicit allow rules for AI crawlers. The native apps add a usage-triggered review prompt. This release updates H5, the backend, and the website; it does not imply a native store update.

    • Collect each street's bets into the pot, animate chip changes with a cue, and show every winner's five-card hand at showdown.
    • Show face-down cards for opponents still in the hand; unify overlay layering and distinguish how a session ended.
    • Improve action contrast and touch targets, announce timed turns to screen readers, and fix compact-viewport seat and bet-lane collisions and crossed preset-avatar identities.
    • Add /zh/studio/ and /en/studio/: the products built by the same team, each run separately, with their boundary to BluffKing stated and only live products listed.
    • Add /llms.txt and FAQ structured data, extend entity links to the app stores, GitHub, Telegram, and X, and explicitly allow major AI crawlers in robots.txt.
    • Add a usage-triggered review prompt in the native apps, with the table back and session-end paths adjusted to match.
  14. Released
    H5Backend

    Persistent squid settlements and more precise table controls

    Squid mode gains a persistent settlement ledger, leaderboard, and round details. Ledger loading and saving are more reliable, raise adjustments near all-in are precise, and language and notification entry points are consolidated. This release updates H5 and the backend; it does not imply a native store update.

    • Persist squid settlements with a room leaderboard and per-round gains and losses.
    • Retain settled rounds, prevent stale requests from replacing the current ledger, and bound detail reads and save waits.
    • Step down precisely from all-in while preserving the exact all-in endpoint for stacks that are not whole big blinds.
    • Manage language in Me and notifications on Home; empty room lists omit duplicate navigation, and tool titles have more space.
  15. Released
    H5BackendMarketing site

    Clearer table controls, flexible room duration, and studio links

    H5 and backend updates add half-hour room-duration steps, a 20-second default action timer, clearer all-in controls, improved hand history and chip feedback, and smoother guest signup. The website adds an independent same-studio product link. Seed-player Max gifts and invitations roll out according to campaign settings; this web release does not imply a native store update.

    • Set room duration from 1 to 8 hours in 30-minute steps; the default action timer increases from 15 to 20 seconds.
    • A dedicated all-in snap zone, explicit confirmation, and clearer action feedback; desktop hand history aligns with the table edge.
    • Improved chip stacks, pot presentation, sound, and haptics. Guest signup keeps the existing account and hands; profile and feedback forms no longer expose synthetic guest addresses.
    • The website footer adds a same-studio product link with its independent service and testnet scope clearly stated.
    • When the campaign is open, eligible registered players can receive a one-time 30-day Max gift after their first real hand. Invitation emails also require verified addresses and sending configuration; guests and synthetic identities are not emailed.
  16. Released
    H5Marketing site

    More reliable recovery after a deploy, and a lighter marketing site

    A browser still showing the previous version after a release is now reliably reloaded onto the new one, where that recovery could previously fail silently on some launch URLs. Switching language during a release no longer loses the choice, and a hand in progress is never interrupted by an automatic refresh. The marketing site drops about 11 MB of unreachable historical images. Gameplay, accounts, memberships, and payments are unchanged.

    • A browser left on the previous version after a release is reliably reloaded onto the new one, including sessions launched from a URL carrying a fragment.
    • A language switch that coincides with a release keeps the choice, and a hand in progress is never interrupted by an automatic refresh.
    • On the rare occasions a table asset fails to load, the table no longer degrades silently and the failure is recorded so it can be fixed.
    • Two retired non-product articles keep their old addresses and redirect permanently to the localized blog archive, and the marketing site drops about 11 MB of unreachable historical images.
  17. Released
    BackendMarketing site

    Blog review corrections, and misplaced project content retired from the marketing site

    The website re-verified the nine most recent bilingual engineering articles sentence by sentence against the code and corrected wording that had drifted from the source or from the other language. It also retires two articles that were not about the product, the event-contract study and the FDE career guide, whose URLs now redirect permanently to the localized blog archive. Historical release records remain intact, and gameplay, accounts, memberships, and payments are unchanged.

    • The nine newest articles passed a bilingual fact re-check; sentences and titles that disagreed with the source, the tests, or the other language were corrected.
    • The public article index and static routes no longer include the event-contract study or FDE career guide.
    • Their article and evidence URLs redirect permanently to the localized blog archive instead of returning 404, and prior entries remain in place as BluffKing's public release history.
  18. Released
    Marketing site

    The event-contract blog now carries the complete six-chapter report

    The website event-contract article is corrected from a condensed version to the complete bilingual report. It preserves all six chapters, nine tables, product flows, executable costs, break-even hurdles, scoring evidence, risk limits, and sources from the desktop research report, with local evidence links replaced by web-accessible resources. Gameplay, accounts, memberships, and payments are unchanged.

    • All six chapters and nine comparison tables are retained instead of publishing only the ranking summary.
    • Product flows, profit paths, costs, break-even win rates, and scoring breakdowns are all online.
    • The aggregate evidence, three raw-response snapshots, and Binance Event evidence are directly accessible from the website.
  19. Released
    Marketing site

    Separate rankings for event-contract quality, trading cost, and break-even hurdle

    The website adds a bilingual event-contract research article based on three synchronized public books. It separates the five short-horizon products' overall score, executable 100-share round-trip loss, and standardized break-even hurdle. The article limits every conclusion to the sample window, makes clear that Polymarket's overall lead is not a participation recommendation, and discloses that the publisher-operated UpDown is only a no-real-money testnet experience. Gameplay, accounts, memberships, and payments are unchanged.

    • Polymarket leads overall at 96.8 while Kalshi has the lowest sampled immediate exit loss.
    • The standardized P=0.50 base hurdle is kept separate from per-trade executable book hurdles.
    • The bilingual article states sampling limits, participation risk, and the testnet relationship disclosure.
  20. Released
    H5BackendMarketing site

    App version sync and H5 lazy-load recovery

    BluffKing's app version API, website store links, and public update record now reflect iOS 1.1.6 on the App Store and Android 1.1.9 on Google Play. If an H5 language or feature module is interrupted on its first load, the app now performs one guarded page refresh instead of remaining on a loading error; failures after that refresh remain reportable. Gameplay, accounts, membership pricing, and payment behavior are unchanged.

    • The app version API reports iOS 1.1.6 and Android 1.1.9.
    • The website's iOS link shows the current public App Store version, 1.1.6.
    • The website's Android link shows the current public Google Play version, 1.1.9.
    • H5 performs one guarded refresh when a language or feature module's first load is interrupted.