2026-04-13

- dealers-choice 0.0.12:
  + Text input fields: scrolling with cursor navigation (left/right/home/end),
    mid-text insertion, Ctrl+V paste; cursor blink resets on each keypress;
    yellow cursor color for visibility against white text
  + Add dealers-choice-bot: a headless rules-based CLI bot that connects to a
    running server like a regular client. Reads DC_PASSWORD from the
    environment (bot is rejected if the server has no password set).
  + Handle audio device disconnection: when the audio backend has no default
    device to reroute to, the device is stopped; register a miniaudio
    notification callback to detect this and restart the engine when possible
    (#243).
  + Stud games: implement bring-in forced partial bet (bringin_amount in
    server.conf, default 50); subsequent streets open with the player
    holding the best visible hand
  + Deuces wild: server now evaluates wild hands automatically using
    POKEVAL_compare_hands_wild / POKEVAL_evaluate_hand_wild; removed the
    end-of-hand UI selection for wild card replacement and the associated
    exchange button, timeout setting (wild_exchange_timeout_ms), network
    message (MSG_WILD_REPLACEMENT), and server-side exchange logic
  * bugfix: Three busy-waits, high-cpu server usage
  * Require libsodium unconditionally; fix authentication bypass where
    clients could authenticate on password-protected servers without
    libsodium present
  * bugfix: Show clear error on protocol version mismatch
  * Update docker-compose.yml to use DC_PASSWORD and extra arguments when running
    the server
  * Fix coin animation: animate from the player who paid, not the next player
    to act
  * Bump GAME_PROTOCOL_VERSION from 7 to 8
  * Fix MSVC build
  + Add Debian release packages

2026-04-01

- dealers-choice 0.0.11:
  * bugfix: uninitialize miniaudio engine on sound load failure
    Previously called exit() without ma_engine_uninit(), locking the audio
    device and blocking other applications until it was replugged or the
    system was restarted (#198)
  * Change dealer rotation timeout from 60 seconds to 30

2026-03-30

- dealers-choice 0.0.10:
  + Add Texas Hold'em
  * bugfix: Client freezes (infinite loop in layout_cards) when slot-0
  + Connection screen: cancel button, per-attempt timeout, configurable
    retry count (connect.attempts in player config), return to menu on
    failure (#204)
  * bugfix: Windows path handling — shell32 now linked for
    SHGetFolderPathA; check_pathname_state verifies FILE_ATTRIBUTE_DIRECTORY
  * bugfix: .desktop and XDG icon installs skipped on Windows
  + Add animated card backs
    player disconnects during a game (#195)
  + Server and client password set via server.conf/player.conf or DC_PASSWORD env var (#187)
  + Add dealer indicator column to lobby player list (black square, red circle if dealer)
  + Play turn notification sound when local player becomes the dealer
  + Play game over sound when winner is determined
  * Fix "waiting" messages sometimes rendering when they shouldn't
  * Fix wrong 5-card hand selected from 6- or 7-card hands when
    multiple subsets share the same rank (kickers and best straight not
    considered); also fix straight selection incorrectly favouring a wheel
    over a higher straight when both are present
  + Implemented Admin kick/ban in the lobby and during the game
  * bugfix: Out-of-bounds read when the last bet-amount button was
    disabled while selected (CID 644890)
  ! BREAKING: server.conf bet_minimum/bet_median/bet_maximum replaced by
    a single variable-length list: bet_amounts = list, 100, 250, 500
    (up to 8 values, hotkeys 1-8).

2026-03-12

- dealers-choice 0.0.9:
  + Implement California lowball
  + Implement Six-card stud (partially complete)
  + Automatically sort hands
  + Remove cards of player when folded
  + Add a "Dealing" message for dealer when waiting for server to start
  + Disallow raise that is less than previous bet/raise
  + Add server config option: wild_exchange_timeout_ms
  + Add server config option: action_timeout_max (disconnect players
    after n timeouts)
  + Add feedback when some buttons are clicked
  * Increase coin size
  + Add card back patterns
  + Add F11 key for full-screen toggling
  * Bump game protocol to v6
  * bugfix: Infinite checking when first person in a >=3 person game folds
  * bugfix: Using AppImage, objects don't appear correctly after fullscreen
    switch

2025-08-11

- dealers-choice 0.0.8:
  * Fix: Server does not send turn ids if player 0 disconnects during game
  + Display ping times in lobby
  + After winner declared, replace action timer with "end of game" timer
  + Allow specifying the client/server port via config or cli
  + Allow setting min, med, and max bets via server.conf

2025-08-05

- dealers-choice 0.0.7:
  + Set default maximum raises per round to 3 (config option)
  * Fix discard button being clickable when disabled
  * Increase player action timeout from 20 to 30 seconds
  + The client will now retry server connection for 60 seconds
    before timing out if server is unavailable
  * Fix incorrect hand wins in some cases when there are 3 or more players
  + Add amount won to status message
  - Remove the simulated delay when cards are initially dealt
  - Explicitly link to dl and thread (Fix Slackware build)

2025-07-13

- dealers-choice 0.0.6:
  + Implement Deuces Wild option
  * Fix tie handling
  * Reduce client console output messages
  + Partially implement 7-card stud
  + Add optional 'language' setting (https://dealer-s-choice.github.io/docs/CONFIG.html)
  * Network Protocol bumped to 3
  + Add coin animation

2025-07-03

- dealers-choice 0.0.5:
  * Fix dealer rotation when timeout reached

2025-07-02

- dealers-choice 0.0.4:
  + Add sound effects and notifications
  + Add ante and starting_coins amount to server.conf
  * Fix game choice buttons not being enabled until mouse is moved
  + Deal rotates to next player if dealer doesn't start a game within 60 seconds
  * Network Protocol bumped to 2
  + Allow clients to connect while game is running
  + Add desktop icons and svg

2025-06-23

- dealers-choice 0.0.3:
  + Add command line option to specify alternate server config file
  * Fix player incorrectly gets message that the max is selected (double draw)
  * Fix multiple amount button selection
  * Fix build on Arch Linux (config.h not found when building tests)
  + Add partial German translation (See #74 for more info)
  * Begin implementing auto-scaling for screens with different resolutions

2025-06-18

- dealers-choice 0.0.2:
  + Game name now displayed in lower left with other messages
  + Add hotkeys for amount buttons (1,2,3)
  + Add --version command line argument
  * Fix Alpine Linux build
