Documentation
0 / 24 items checked — checkboxes persist in your browser.
To add or edit rows: open apps/web/app/docs/data.json in GitHub and edit directly (works on mobile).
| Done | Date | Type | Page | Priority | Description | Developer comments |
|---|---|---|---|---|---|---|
| 2026-03-08 | Bug Fix | Game | High | Bar entry off-by-one error for white pieces | Was using 24 - diceValue - 1; fixed to 24 - diceValue | |
| 2026-03-08 | Bug Fix | Game | High | canBearOff was not checking bar state | Fixed: bearing-off validation now also checks state.bar[colorIdx] === 0 | |
| 2026-03-10 | Feature | Game | Medium | Game-over overlay with win/lose message and play-again button | Shown when winner is set in state; routes back to /play on dismiss | |
| 2026-03-12 | Bug Fix | Game | Medium | Opening roll: board dice visible before roll + player's die always on wrong side | suppressDice flag hides board dice during animation; player's opening die now always on the right | |
| 2026-03-12 | Bug Fix | Game | High | Bot plays during opening roll animation — moves invisible to user | executeBotTurn now waits for the animation to complete before playing | |
| 2026-03-12 | Bug Fix | Server | High | gnubg not found in PATH on Railway (spawn ENOENT) | gnubg installs to /usr/games/ on Debian; fixed with a symlink to /usr/local/bin/gnubg in Dockerfile | |
| 2026-03-12 | Feature | Server | Low | Log gnubg move with rank, equity, and notation | Server now prints the selected bot move alongside its equity score | |
| 2026-03-12 | Feature | General | Low | Vercel Analytics | Added @vercel/analytics to the Next.js app | |
| 2026-03-12 | Bug Fix | Auth | High | Auth cookie not sent on cross-origin requests (Vercel → Railway) | Changed sameSite to 'none' + secure: true in production so the cookie is sent cross-site | |
| 2026-03-12 | Feature | Auth | Medium | Sign in with Google (OAuth) | Full Google OAuth2 flow: /auth/google redirect + /auth/google/callback; find-or-create user by googleId/email | |
| 2026-03-13 | Bug Fix | Game | Medium | Grey out used dice after each move (singles and doubles) | Used dice are now visually greyed out after each move | |
| 2026-03-13 | Bug Fix | Game | Low | Black dice styling — dark bg with white pips when it's black's turn | Dice now visually reflect the current player's colour | |
| 2026-03-13 | Bug Fix | Game | High | Compound moves from bar: enter + continue with remaining dice | Both intermediate and final positions are now correctly highlighted | |
| 2026-03-13 | Feature | Game | High | Drag and drop checkers on the board | Full drag-and-drop on the SVG board; 8px threshold distinguishes drag from click | |
| 2026-03-13 | Bug Fix | Game | High | Drag and drop broke click-to-move (pointer capture ate onClick events) | Capture now deferred until drag threshold crossed; click-to-move and drag-and-drop both work | |
| 2026-03-13 | Feature | Game | Medium | Auto-move checker when only 1 die and 1 valid target remain | Automatically completes the move so the player doesn't have to click twice | |
| 2026-03-13 | Feature | Game | Medium | One-click bearing off: clicking a checker auto-bears it off when that is the only valid move | handleSelectPoint now auto-triggers handleMove when targets === ['off'], no second click needed | |
| 2026-03-13 | Bug Fix | Game | High | Engine overshoot bearing off (PENDING) | resolveMove uses strict equality — should allow larger die when no exact match exists | |
| 2026-03-13 | Bug Fix | Game / Server | High | Bot game stuck in blitz mode — turn timer fired before bot could move | startTurnTimer now skips bot turns entirely; registerBotTurnCallback triggers executeBotTurn when a human turn times out and transitions to the bot | |
| 2026-03-13 | Bug Fix | Game / Server | Medium | turnDeadlineAt missing from emitted state after roll | getGameStateForClient now called after startTurnTimer so deadline is included in the emitted state | |
| 2026-03-13 | Feature | Game | High | Subsequent rounds: winner of previous round goes first (no new opening roll) | resetForNextRound sets openingRollDone=true and advances engine turn if black goes first; client skips opening roll animation when matchScore total > 0 | |
| 2026-03-13 | Bug Fix | Server / Bot | High | Bot sub-move fails when compound move intermediate is blocked by opponent | expandHop now receives board state and tries both die orders, skipping any order where the intermediate landing point is occupied by 2+ opponent pieces | |
| 2026-03-13 | Feature | General | Low | Documentation page in sidebar | This page — tracks all implemented features, fixes, and feedback items | |
| 2026-03-13 | Feature | Game / Play | High | Match settings: speed (Casual/Standard/Blitz) and match type (Simple/First to 5/7/11) | Settings selection on play page; turn timer with auto-forfeit + total game clock; multi-round match scoring; round-over overlay |