soroban-abacus-flashcards/CHANGELOG.md

544 KiB
Raw Blame History

4.59.1 (2025-10-21)

Bug Fixes

  • homepage: adjust hero abacus scale for optimal sizing across devices (86dee31)
  • homepage: reduce mobile abacus scale to prevent scroll hint overlap (b8235be)

4.59.0 (2025-10-21)

Features

  • homepage: increase hero abacus size for better visibility (7666b0a)

4.58.2 (2025-10-21)

Code Refactoring

  • navbar: prevent subtitle wrap and remove abacus emoji (a58f7b7)

4.58.1 (2025-10-21)

Bug Fixes

  • navbar: apply glassmorphism to transparent mode, not scrolled mode (8893675)

4.58.0 (2025-10-21)

Features

  • navbar: add glassmorphism effect to nav links when scrolled (89b9072)

4.57.10 (2025-10-21)

Bug Fixes

  • navbar: remove border artifact and add 10px bottom fade (d5f60ce)

Styles

  • navbar: improve theming to match homepage dark aesthetic (284fc90)

4.57.9 (2025-10-21)

Bug Fixes

  • homepage: add overflow hidden to Your Journey section (415a1fb)

4.57.8 (2025-10-21)

Bug Fixes

  • homepage: adjust responsive breakpoints to prevent skill card clipping (62ff067)

4.57.7 (2025-10-21)

Bug Fixes

  • homepage: restructure layout to center 1400px wide demo section (61403f2)
  • homepage: set min-width 1400px on container and remove max-width (aa297d4)

4.57.6 (2025-10-21)

Bug Fixes

  • homepage: increase skill cards container width to prevent title wrapping (cd3eb61)

4.57.5 (2025-10-21)

Bug Fixes

  • homepage: prevent text overflow in skill cards (a6ac55b)

4.57.4 (2025-10-21)

Bug Fixes

  • homepage: align container width breakpoint with grid columns (422bf3d)
  • homepage: make MiniAbacus fill container properly (3b5d147)
  • homepage: widen skill cards container to 650px (bc1ad3a)

4.57.3 (2025-10-21)

Bug Fixes

  • homepage: increase abacus container width to 120px/150px (57c212f)

4.57.2 (2025-10-21)

Bug Fixes

  • homepage: increase skill card abacus container width (e65e969)

4.57.1 (2025-10-21)

Bug Fixes

  • homepage: add overflow hidden to skill cards (5070d8d)

4.57.0 (2025-10-21)

Features

  • homepage: make skills section responsive with emojis (9ec0a71)

Bug Fixes

  • homepage: prevent skill card overflow (fa26acf)

4.56.0 (2025-10-20)

Features

  • homepage: emphasize single-player and observer modes (a537bc1)

4.55.0 (2025-10-20)

Features

  • homepage: update section title to "The Arcade" (f47b172)

4.54.0 (2025-10-20)

Features

  • homepage: add interactive levels slider to replace static progression (8a2d5ae)

Code Refactoring

  • levels: extract levels slider into shared component (015e30b)

4.53.0 (2025-10-20)

Features

  • homepage: add interactive draggable flashcards with physics (0744883)

Code Refactoring

  • homepage: merge flashcard display with create button section (3cf4f92)

4.52.2 (2025-10-20)

Bug Fixes

  • homepage: use actual container dimensions for flashcard positioning (4082a24)

4.52.1 (2025-10-20)

Bug Fixes

  • homepage: correct flashcard transform rendering (5dc636a)

4.52.0 (2025-10-20)

Features

  • homepage: add interactive draggable flashcards with physics (e711c52)

4.51.0 (2025-10-20)

Features

  • homepage: create fancy flashcard display with spread-out cards (cd30944)

4.50.1 (2025-10-20)

Bug Fixes

  • homepage: set fixed width for learning panel to prevent layout shift (dc19622)
  • homepage: set fixed width for tutorial panel to prevent layout shift (aba9f8a)

4.50.0 (2025-10-20)

Features

  • homepage: add interactive learning panels with animated mini-tutorials (76d6f19)

4.49.1 (2025-10-20)

Code Refactoring

  • homepage: streamline homepage sections (d362a77)

4.49.0 (2025-10-20)

Features

Code Refactoring

  • make homepage game cards dynamic from game registry (7f51652)

4.48.5 (2025-10-20)

Bug Fixes

  • homepage: add dark gradient overlay for better text contrast on game cards (6410b21)

4.48.4 (2025-10-20)

Bug Fixes

  • homepage: improve text contrast on game cards with text shadows (b6410c7)

4.48.3 (2025-10-20)

Bug Fixes

  • homepage: display gradient backgrounds on all game cards (c6dc210)

Documentation

  • z-index: add comprehensive z-index and stacking context documentation (c89aea7)

4.48.2 (2025-10-20)

Bug Fixes

  • nav: ensure nav bar appears above tutorial tooltips (cc31564)

Styles

  • hero: unify background with rest of homepage (035d831)

4.48.1 (2025-10-20)

Bug Fixes

  • hero: prevent SSR hydration mismatch for subtitle (1bfde8f)

4.48.0 (2025-10-20)

Features

  • hero: persist random subtitle per-session (318f946)

4.47.2 (2025-10-20)

Bug Fixes

  • nav: prevent thrashing by using fixed position always (eff44b3)
  • nav: remove unnecessary borders from transparent nav (8c2ddca)

4.47.1 (2025-10-20)

Bug Fixes

  • hero: prevent nav thrashing with hysteresis (71b1b93)

4.47.0 (2025-10-20)

Features

  • nav: add transparent nav bar with borders when hero visible (463841e)

Bug Fixes

  • hero: use Number.isNaN instead of global isNaN (c229faf)

Styles

  • hero-abacus: add purple bead colors for dark theme (721dfe4)
  • hero: adjust spacing between title, subtitle, and abacus (3a3706c)

4.46.2 (2025-10-20)

Bug Fixes

  • types: properly type HomeHeroContext in AppNavBar (f9a7cb7)

4.46.1 (2025-10-20)

Bug Fixes

  • hero-abacus: restructure layout to prevent visual overlap (02b6c70)

4.46.0 (2025-10-20)

Features

  • homepage: add full-page hero abacus with scroll-based nav transition (d8ec642)

Bug Fixes

  • homepage: improve hero abacus sizing and layout (230f1dc)

Styles

  • hero-abacus: apply dark theme to match homepage styling (e0b6a2e)

4.45.0 (2025-10-20)

Features

  • branding: rebrand navigation from 'Soroban Generator' to 'Abaci One' (cce8980)

4.44.3 (2025-10-20)

Bug Fixes

  • levels: reduce operator box sizes and remove divider line (29d20a6)
  • levels: use uniform padding on operator box grid (2818fd1)

4.44.2 (2025-10-20)

Bug Fixes

  • levels: match top/bottom margins to left padding on kyu detail boxes (aa0bdcf)

4.44.1 (2025-10-20)

Bug Fixes

  • levels: add fixed dimensions and margins to kyu detail boxes (05dd0b3)

4.44.0 (2025-10-20)

Features

  • levels: redesign kyu details with larger operators and prominent digits (6739d59)

4.43.2 (2025-10-20)

Code Refactoring

  • levels: remove Time and Pass sections from kyu details (d90b5d5)

4.43.1 (2025-10-20)

Bug Fixes

  • levels: use two-column grid for kyu details to prevent clipping (fa3b73c)

4.43.0 (2025-10-20)

Features

  • levels: add structured kyu exam details with card UI (6501b07)

4.42.1 (2025-10-20)

Code Refactoring

  • levels: store kyu data verbatim, add formatting layer (53d23f1)

4.42.0 (2025-10-20)

Features

  • levels: add kyu level details display with English translations (c650ffa)

4.41.0 (2025-10-20)

Features

  • levels: right-align abacus display (8681b17)

4.40.1 (2025-10-20)

Bug Fixes

  • levels: increase animation speed to 10ms for 10th Dan (6f89d9e)

4.40.0 (2025-10-20)

Features

  • levels: progressive animation speed for Dan levels (9dff3e7)

4.39.1 (2025-10-20)

Bug Fixes

  • levels: improve slider tick spacing to use full width (1e90d6c)

4.39.0 (2025-10-20)

Features

  • levels: add auto-advance slider with hover pause (41eaed2)

4.38.1 (2025-10-20)

Bug Fixes

  • levels: adjust slider text positioning to prevent emoji overlap (e5ffe39)

4.38.0 (2025-10-20)

Features

  • levels: add animated calculation effect to abacus display (4f4c735)

4.37.0 (2025-10-20)

Features

  • levels: add hover tracking to slider for real-time level preview (477a0b3)

4.36.0 (2025-10-20)

Features

  • levels: make emoji tick marks clickable and remove redundant UI (07c783a)

Bug Fixes

  • levels: add smooth CSS transitions for slider thumb movement (ca8cef1)

4.35.1 (2025-10-20)

Features

  • abacus-react: export StandaloneBead component wired to AbacusDisplayContext (0146ce1)

Performance Improvements

  • levels: speed up slider animations for more responsive feel (1e5467f)

4.35.0 (2025-10-20)

Features

  • levels: replace slider thumb with diamond-shaped abacus beads (0fbde53)

4.34.0 (2025-10-20)

Features

  • levels: redesign slider with abacus-themed beads (f3dce84)

Code Refactoring

  • levels: convert to Radix UI Slider with abacus theme (a03e73c)

4.33.8 (2025-10-20)

Bug Fixes

  • levels: reduce Dan scale and container height to prevent clipping (563136f)
  • levels: reduce max scale factor to allow more compact container (ead9ee9)

4.33.7 (2025-10-20)

Bug Fixes

  • levels: reduce scale factor variation to minimize margin differences (abb647c)

4.33.6 (2025-10-20)

Bug Fixes

  • levels: increase container height to prevent abacus clipping (cd5c15a)

4.33.5 (2025-10-20)

Bug Fixes

  • levels: revert delayed column change, keep overflow hidden (22f00f5)

4.33.4 (2025-10-20)

Bug Fixes

  • levels: stabilize slider position and prevent abacus clipping (09004dc)

4.33.3 (2025-10-20)

Code Refactoring

  • levels: move slider into level display pane above abacus (2d8bb4a)

4.33.2 (2025-10-20)

Bug Fixes

  • levels: add fixed height to entire level display pane (200b26c)

4.33.1 (2025-10-20)

Bug Fixes

  • levels: only animate abacus, not container with background/border (c80477d)

4.33.0 (2025-10-20)

Features

  • abacus-react: add BigInt support for 30-digit Dan level abacuses (0ab4cc2)
  • levels: add hover interaction and smooth React Spring transitions (fd2b633)

4.32.1 (2025-10-20)

Bug Fixes

  • levels: use correct dark mode styling from homepage + docs update (c38767f)

4.32.0 (2025-10-20)

Features

  • levels: add dark mode styling and responsive scaling to abacus (92e1e62)

4.31.1 (2025-10-20)

Bug Fixes

  • levels: use correct AbacusReact API with direct props (892b377)

4.31.0 (2025-10-20)

Features

  • levels: implement interactive slider for exploring kyu & dan ranks (eb3b100)

4.30.0 (2025-10-20)

Features

  • levels: create true horizontal slider with abacus visualizations (6d734f1)

4.29.0 (2025-10-20)

Features

  • levels: replace kyu grid with interactive slider and abacus visualizations (10978e8)

4.28.0 (2025-10-20)

Features

  • levels: add informational footer section (0b1bff7)

4.27.0 (2025-10-20)

Features

  • levels: add Dan levels ladder visualization (c18012c)

4.26.0 (2025-10-20)

Features

  • levels: add kyu level data and cards (6463a3b)

4.25.1 (2025-10-20)

Code Refactoring

  • homepage: make entire "Your Journey" card clickable (3f30810)

4.25.0 (2025-10-20)

Features

  • levels: add Kyu & Dan levels page with homepage link (39b1e7d)

Styles

  • homepage: adjust journey emoji sizing and spacing (2a0e469)

4.24.3 (2025-10-20)

Code Refactoring

  • homepage: align all skill icon panes horizontally (4b04e86)

4.24.2 (2025-10-20)

Code Refactoring

  • homepage: tighten mini abacus vertical padding (514d07e)

4.24.1 (2025-10-20)

Bug Fixes

  • homepage: adjust mini abacus container height (c4066d6)
  • homepage: fix MiniAbacus runtime error and improve sizing (1fa0df8)
  • homepage: use correct AbacusReact API and fix clipping/styling issues (1432afd)
  • homepage: use direct conditionals for mini abacus padding (38ef16a)

Styles

  • homepage: add more padding around mini abacus (c5103d0)
  • homepage: balance mini abacus padding horizontally and vertically (2f0304e)
  • homepage: increase mini abacus padding to '5' (1da9ed1)

4.24.0 (2025-10-20)

Features

  • homepage: add animated mini abacus to "Read and set numbers" card (e028e34)

4.23.0 (2025-10-20)

Features

  • homepage: add more visual embellishments to learning cards (4ec1b95)

4.22.0 (2025-10-20)

Features

  • homepage: enhance "What You'll Learn" with visual cards (d142342)

Bug Fixes

  • tutorial: reduce tooltip z-index to scroll under nav bar (47640f3)

4.21.1 (2025-10-20)

Code Refactoring

  • homepage: rearrange tutorial demo layout side by side (8b4ecee)

4.21.0 (2025-10-20)

Features

  • tutorial: add silentErrors prop to suppress error messages (8835e1c)

4.20.7 (2025-10-20)

Bug Fixes

  • home: use Panda CSS token() for dynamic colors and center arrows properly (d52ba63)

4.20.6 (2025-10-20)

Bug Fixes

4.20.5 (2025-10-20)

Bug Fixes

  • docker: include Panda CSS styled-system in production image (57fabff)

4.20.4 (2025-10-19)

Bug Fixes

4.20.3 (2025-10-19)

Bug Fixes

  • homepage: use explicit RGBA colors for Your Journey text (9c51cc9)

4.20.2 (2025-10-19)

Bug Fixes

  • homepage: improve text contrast in Your Journey section (24d1200)
  • tutorial: resolve TypeScript errors in TutorialPlayer (88f57ce)

4.20.1 (2025-10-19)

Bug Fixes

  • homepage: correct positioning of progression arrows in Your Journey section (3fff9ef)

Code Refactoring

  • homepage: move What You'll Learn above tutorial (ca1c6d8)

4.20.0 (2025-10-19)

Features

  • tutorial: add hideTooltip prop and improve dark mode coaching bar (1ee25b3)

4.19.0 (2025-10-19)

Features

  • tutorial: add fill color support for dark mode column posts and reckoning bar (2eb3ff3)

4.18.1 (2025-10-19)

Bug Fixes

  • tutorial: use correct customStyles API for dark mode frame styling (fdc882c)

4.18.0 (2025-10-19)

Features

  • tutorial: add dark mode styling for coaching bar and abacus frame (7e2f580)

4.17.2 (2025-10-19)

Bug Fixes

  • tutorial: correct column index calculation for variable column counts (bf1ced4)

4.17.1 (2025-10-19)

Bug Fixes

  • tutorial: filter bead highlights when using fewer columns (4d906ec)

4.17.0 (2025-10-19)

Features

  • tutorial: add dark theme and column control props (d42f9b2)

Styles

  • homepage: soften tutorial styling for dark theme cohesion (faaefba), closes #f9

4.16.0 (2025-10-19)

Features

  • tutorial: add hideNavigation prop to TutorialPlayer (79ea52a)

Styles

  • homepage: update tutorial container to match dark theme (6b017b0)

4.15.1 (2025-10-19)

Bug Fixes

  • tutorial: resolve React hydration error in TutorialPlayer (c883d9e)

Code Refactoring

  • replace demo component with real TutorialPlayer system (19b03bc)

4.15.0 (2025-10-19)

Features

  • redesign homepage with educational vision and interactive demo (2f09cb5)

4.14.6 (2025-10-19)

Bug Fixes

  • replace native alerts with inline confirmations in ModerationPanel (ebe123e)

Documentation

  • add UI style guide documenting no native alerts rule (9afd3a7)

4.14.5 (2025-10-19)

Bug Fixes

  • rooms: add real-time ownership transfer updates via WebSocket (c00cfa3)

4.14.4 (2025-10-19)

Bug Fixes

  • arcade: add host-only game selection with clear messaging (22df1b0)
  • arcade: add host-only game selection with clear messaging (c0680ca)

4.14.3 (2025-10-19)

Bug Fixes

  • docker: add qpdf for PDF linearization and validation (c92ff39)

4.14.2 (2025-10-19)

Bug Fixes

  • docker: add packages/templates for Typst flashcard generation (1417722)

4.14.1 (2025-10-19)

Bug Fixes

  • deployment: pass git info to Docker build for deployment info modal (4b04e43)

4.14.0 (2025-10-19)

Features

  • card-sorting: add spectator mode UX enhancements (4ab093a)

Documentation

  • arcade: add comprehensive spectator mode documentation (1eb6cec)
  • arcade: spec spectator mode UX enhancements for card sorting (aafba77)

4.13.15 (2025-10-19)

Bug Fixes

  • docker: bypass PEP 668 externally-managed-environment error (bb59c61)

4.13.14 (2025-10-19)

Bug Fixes

  • docker: install py3-pip for Python dependency installation (0f55909)

Documentation

  • add Panda CSS styling framework documentation (c92d7d9)
  • arcade: fix incorrect Tailwind references - use Panda CSS (34a377d)

4.13.13 (2025-10-19)

Bug Fixes

  • docker: install Python dependencies for flashcard generation (c9b7e92)

Code Refactoring

4.13.12 (2025-10-18)

Bug Fixes

  • card-sorting: use blue gradient matching other game cards (bdb84f5)

4.13.11 (2025-10-18)

Bug Fixes

  • card-sorting: match game selector background to other games (db62519), closes #ccfbf1 #99f6e4
  • docker: copy core package with Python scripts to production image (33e9ad2)

4.13.10 (2025-10-18)

Bug Fixes

  • add Typst to Docker image for flashcard generation (d9a7694)

Code Refactoring

  • remove 'Complete Soroban Learning Platform' section (42dcbff)

4.13.9 (2025-10-18)

Bug Fixes

  • set color on abacus container div for numeral visibility (cd47960), closes #1f2937

4.13.8 (2025-10-18)

Bug Fixes

  • use color instead of fill for numeral styling (ea10c16)

4.13.7 (2025-10-18)

Bug Fixes

  • add dark color for abacus numerals (73ff32c), closes #1f2937
  • use app-wide abacus config and remove instruction text (0a50c73)

4.13.6 (2025-10-18)

Bug Fixes

  • simplify abacus pane with light background (30f48ab)

4.13.5 (2025-10-18)

Bug Fixes

4.13.4 (2025-10-18)

Bug Fixes

  • card-sorting: increase card tile sizes to contain abacuses (d2a3b7a)

4.13.3 (2025-10-18)

Bug Fixes

  • card-sorting: increase SVG size to fill card containers (cf9d893)

4.13.2 (2025-10-18)

Bug Fixes

  • show initial value and improve numeral contrast (1b57f6d), closes #fbbf24

4.13.1 (2025-10-18)

Bug Fixes

  • use defaultValue for interactive abacus control (06aca98)

4.13.0 (2025-10-18)

Features

  • make home page abacus interactive with audio (9a53d7e)

4.12.0 (2025-10-18)

Features

  • redesign home page with component showcase (29af265)

4.11.1 (2025-10-18)

Bug Fixes

  • card-sorting: center AbacusReact SVGs in card tiles (26edec1)

4.11.0 (2025-10-18)

Features

  • home: redesign home page to showcase complete platform (ee6c4f2)

4.10.6 (2025-10-18)

Bug Fixes

  • card-sorting: position slots flow horizontally with wrap (e14ffe4)

4.10.5 (2025-10-18)

Code Refactoring

  • arcade: merge /arcade/room into /arcade route (0790074)

4.10.4 (2025-10-18)

Bug Fixes

  • card-sorting: match Python card layout with flex wrap (9679d68)

4.10.3 (2025-10-18)

Bug Fixes

  • arcade: remove broken query param from game URLs (87631af)

4.10.2 (2025-10-18)

Bug Fixes

4.10.1 (2025-10-18)

Bug Fixes

  • arcade: remove legacy master-organizer placeholder (76d207e)

Code Refactoring

  • remove old single-player complement-race version (0eae43a)

4.10.0 (2025-10-18)

Features

  • card-sorting: add UI components and fix AbacusReact props (d249ec0)

Code Refactoring

  • remove old single-player memory-quiz version (0dab5da)

4.9.0 (2025-10-18)

Features

  • card-sorting: implement Provider with arcade session integration (7f6fea9)

4.8.0 (2025-10-18)

Features

  • arcade: add Card Sorting Challenge game scaffolding (df37260)

4.7.1 (2025-10-18)

Code Refactoring

  • arcade: remove number-guesser and math-sprint games (9fb9786)

4.7.0 (2025-10-18)

Features

  • complement-race: enable adaptive AI difficulty in arcade (55010d2)

4.6.10 (2025-10-18)

Bug Fixes

  • complement-race: improve AI speech bubble positioning (6e436db)
  • docker: remove reference to deleted @soroban/client package (2953ef8)

4.6.9 (2025-10-18)

Bug Fixes

  • complement-race: add missing AI commentary cooldown updates (357aa30)

Code Refactoring

  • remove dead Python bridge and unused packages (22426f6)

4.6.8 (2025-10-18)

Bug Fixes

  • complement-race: counter-flip AI speech bubbles to make text readable (07d5607)

4.6.7 (2025-10-18)

Bug Fixes

  • complement-race: use active local players pattern from navbar (71cdc34)

4.6.6 (2025-10-18)

Bug Fixes

  • complement-race: use local player emoji instead of first active player (76eb051)

4.6.5 (2025-10-18)

Bug Fixes

  • complement-race: flip player avatar to face right in practice mode (fa6b3b6)

4.6.4 (2025-10-18)

Bug Fixes

  • complement-race: flip AI racers to face right in practice mode (ebfff1a)

4.6.3 (2025-10-18)

Bug Fixes

  • complement-race: balance AI speeds to match original implementation (054f0c0)

4.6.2 (2025-10-18)

Bug Fixes

  • build: resolve Docker build failures preventing deployment (7801dbb)

4.6.1 (2025-10-18)

Code Refactoring

  • complement-race: move AI opponents from server-side to client-side (09e21fa)

4.6.0 (2025-10-18)

Features

  • complement-race: restore AI opponents in practice and survival modes (325e07d)

4.5.0 (2025-10-18)

Features

  • complement-race: add infinite win condition for Steam Sprint mode (d8fdfee)

4.4.15 (2025-10-18)

Bug Fixes

  • complement-race: track previous position to detect route threshold crossing (a6c20aa)

4.4.14 (2025-10-18)

Bug Fixes

  • complement-race: remove dual game loop conflict preventing route progression (84d42e2)

4.4.13 (2025-10-17)

Bug Fixes

  • complement-race: show new passengers when route changes (ec1c8ed)

4.4.12 (2025-10-17)

Bug Fixes

  • complement-race: track physical car indices to prevent boarding issues (53bbae8)
  • complement-race: update passenger display when state changes (5116364)

4.4.11 (2025-10-17)

Code Refactoring

  • logging: replace per-frame debug logging with event-based logging (fedb324)

4.4.10 (2025-10-17)

Bug Fixes

  • complement-race: correct passenger boarding to use multiplayer fields (7ed1b94)

4.4.9 (2025-10-17)

Bug Fixes

  • complement-race: reduce initial momentum from 50 to 10 to prevent train sailing past first station (5f146b0)

4.4.8 (2025-10-17)

Bug Fixes

  • complement-race: implement client-side momentum with continuous decay for smooth train movement (ea19ff9)

4.4.7 (2025-10-17)

Bug Fixes

  • complement-race: add missing useRef import (d43829a)

4.4.6 (2025-10-17)

Bug Fixes

  • complement-race: restore smooth train movement with client-side game loop (46a80cb)

4.4.5 (2025-10-17)

Bug Fixes

  • complement-race: add missing useEffect import (3054130)

4.4.4 (2025-10-17)

Bug Fixes

  • complement-race: add pressure decay system and improve logging (66992e8)

4.4.3 (2025-10-17)

Bug Fixes

  • complement-race: train now moves in sprint mode (54b46e7)

Code Refactoring

  • simplify train debug logs to strings only (334a49c)

4.4.2 (2025-10-17)

Code Refactoring

  • complement-race: remove verbose logging, keep only train debug logs (86af2fe)

4.4.1 (2025-10-17)

Bug Fixes

  • complement-race: clear input state on question transitions (5872030)

Documentation

  • complement-race: add Phase 9 for multiplayer visual features (131c54b)

4.4.0 (2025-10-16)

Features

  • complement-race: add mini app navigation bar (ed0ef2d)

4.3.1 (2025-10-16)

Bug Fixes

  • complement-race: resolve TypeScript errors in state adapter (59abcca)

4.3.0 (2025-10-16)

Features

  • complement-race: implement state adapter for multiplayer support (13882bd)

4.2.2 (2025-10-16)

Code Refactoring

  • types: consolidate type system - eliminate fragmentation (0726176)

4.2.1 (2025-10-16)

Bug Fixes

  • socket-io: update import path for socket-server module (1a64dec)

Code Refactoring

  • matching: complete validator migration to modular location (f2958cd)

4.2.0 (2025-10-16)

Features

  • arcade: migrate matching pairs - phases 1-4 and 7 complete (2a3af97)

Bug Fixes

  • resolve TypeScript errors in MemoryGrid and StandardGameLayout (cabbc82)

Code Refactoring

  • matching: migrate to modular game system (e5c4a4b)
  • matching: remove legacy battle-arena references (c46a098)

4.1.0 (2025-10-16)

Features

  • arcade: migrate memory-quiz to modular game system (f48c37a)

Code Refactoring

  • arcade: remove memory-quiz from legacy GAMES_CONFIG (9952e11)

Documentation

  • add matching pairs battle migration plan (3948582)
  • add memory-quiz migration plan documentation (7e2df10)
  • arcade: document Phase 3 completion in ARCHITECTURAL_IMPROVEMENTS.md (704f34f)
  • update playbook with memory-quiz completion (99eee69)

4.0.3 (2025-10-16)

Bug Fixes

  • math-sprint: remove unused import and autoFocus attribute (51593eb)

Code Refactoring

  • arcade: implement Phase 3 - infer config types from game definitions (eed468c)

Documentation

  • arcade: update README with Phase 3 type inference architecture (b47b1cc)

Styles

  • math-sprint: apply Biome formatting (d7d8d8b)

4.0.2 (2025-10-16)

Bug Fixes

  • arcade: prevent server-side loading of React components (784793b)

4.0.1 (2025-10-16)

Code Refactoring

  • arcade: move config validation to game definitions (b19437b), closes #3

4.0.0 (2025-10-16)

⚠ BREAKING CHANGES

  • db: Database schemas now accept any string for game names

Code Refactoring

  • db: remove database schema coupling for game names (e135d92), closes #1

3.24.0 (2025-10-16)

Features

  • math-sprint: add game manifest (1eefcc8)

3.23.0 (2025-10-16)

Features

  • arcade: add Math Sprint game implementation (e5be09e)
  • arcade: register Math Sprint in game system (0c05a7c), closes #2 #3

Bug Fixes

  • api: add 'math-sprint' to settings endpoint validation (d790e5e), closes #1
  • db: add 'math-sprint' to database schema enums (7b112a9), closes #1

Documentation

  • add architecture quality audit #2 (5b91b71)

3.22.3 (2025-10-16)

Bug Fixes

  • number-guesser: add turn indicators, error feedback, and fix player ordering (9f62623)

Documentation

  • arcade: update docs for unified validator registry (6f6cb14)

3.22.2 (2025-10-16)

Code Refactoring

  • arcade: create unified validator registry to fix dual registration (f775fc5), closes #1

3.22.1 (2025-10-16)

Bug Fixes

  • arcade: add Number Guesser to game config helpers (7d1a351)
  • nav: update types for registry games with nullable gameName (a51e539)

3.22.0 (2025-10-16)

Features

  • arcade: add Number Guesser demo game with plugin architecture (0e3c058)

3.21.0 (2025-10-15)

Features

  • arcade: add modular game SDK and registry system (de30bec)

3.20.0 (2025-10-15)

Features

  • adjust tier probabilities for more abacus flavor (49219e3)

Code Refactoring

  • use per-word-type tier selection for name generation (499ee52)

3.19.0 (2025-10-15)

Features

  • implement avatar-themed name generation with probabilistic mixing (76a8472)

3.18.1 (2025-10-15)

Bug Fixes

  • arcade: prevent empty update in settings API when only gameConfig changes (ffb626f)

3.18.0 (2025-10-15)

Features

  • add drizzle migration for room_game_configs table (3bae00b)

Documentation

  • document manual migration of room_game_configs table (ff79140)

3.17.14 (2025-10-15)

Bug Fixes

  • arcade: resolve TypeScript errors in game config helpers (04c9944)

Documentation

  • arcade: update GAME_SETTINGS_PERSISTENCE.md for new schema (260bdc2)

3.17.13 (2025-10-15)

Code Refactoring

  • arcade: migrate game settings to normalized database schema (1bd7354)

3.17.12 (2025-10-15)

Code Refactoring

  • arcade: remove non-productive debug logging from memory-quiz (38e554e)

Documentation

  • arcade: document game settings persistence architecture (8f8f112)

3.17.11 (2025-10-15)

Bug Fixes

  • memory-quiz: fix playMode persistence by updating validator (de0efd5)

3.17.10 (2025-10-15)

Bug Fixes

  • memory-quiz: persist playMode setting across game switches (487ca7f)

3.17.9 (2025-10-15)

Bug Fixes

  • arcade: read nested gameConfig correctly when creating sessions (94ef392)

3.17.8 (2025-10-15)

Bug Fixes

  • arcade: preserve game settings when returning to game selection (0ee7739)

3.17.7 (2025-10-15)

Bug Fixes

  • arcade: prevent gameConfig from being overwritten when switching games (a89d3a9)

3.17.6 (2025-10-15)

Code Refactoring

  • logging: use JSON.stringify for all object logging (c33698c)

3.17.5 (2025-10-15)

Bug Fixes

  • arcade: implement settings persistence for matching game (08fe432)

3.17.4 (2025-10-15)

Bug Fixes

  • matching: add settings persistence to matching game (00dcb87)

3.17.3 (2025-10-15)

Bug Fixes

  • arcade: preserve gameConfig when switching games (2273c71)

Code Refactoring

  • remove verbose console logging for cleaner debugging (9cb5fdd)

3.17.2 (2025-10-15)

Bug Fixes

  • room-data: update query cache when gameConfig changes (7cea297)

3.17.1 (2025-10-15)

Bug Fixes

  • arcade-rooms: navigate to invite link after room creation (1922b21)
  • memory-quiz: scope game settings by game name for proper persistence (3dfe54f)

3.17.0 (2025-10-15)

Features

  • memory-quiz: persist game settings per-game across sessions (05a8e0a)

3.16.0 (2025-10-15)

Features

  • arcade: broadcast game selection changes to all room members (b99e754)

3.15.2 (2025-10-15)

Bug Fixes

  • memory-quiz: prevent duplicate card processing from optimistic updates (51676fc)

3.15.1 (2025-10-15)

Bug Fixes

  • memory-quiz: synchronize card display across all players in multiplayer (472f201)

3.15.0 (2025-10-15)

Features

  • memory-quiz: add multiplayer support with redesigned scoreboards (1cf4469)
  • memory-quiz: show player emojis on cards to indicate who found them (05bd11a)

Bug Fixes

  • arcade: add defensive checks and update test fixtures (a93d981)

3.14.4 (2025-10-15)

Bug Fixes

  • memory-quiz: prevent input lag during rapid typing in room mode (b45139b)

3.14.3 (2025-10-15)

Bug Fixes

  • arcade: delete old session when room game changes (98a3a25)

3.14.2 (2025-10-15)

Bug Fixes

  • room: update GAME_TYPE_TO_NAME mapping for memory-quiz (4afa171)

3.14.1 (2025-10-14)

Bug Fixes

  • resolve Memory Quiz room-based multiplayer validation issues (2ffeade)

3.14.0 (2025-10-14)

Features

  • arcade: add Change Game functionality for room hosts (ee39241)
  • arcade: add game selection screen with navigation to room page (4124f1c)

Bug Fixes

  • player-config: correct label positioning in player settings dialog (554cc40)

Code Refactoring

  • implement in-room game selection UI (f07b96d)
  • make game_name nullable to support in-room game selection (a9a6cef)
  • nav: rename emphasizeGameContext to emphasizePlayerSelection (6bb7016)

3.13.7 (2025-10-14)

Bug Fixes

  • toast: scope animations to prevent affecting other UI elements (245ed8a)

3.13.6 (2025-10-14)

Bug Fixes

  • nav: navigate to /arcade/room (not /arcade/rooms/{id}) (1c55f36)

3.13.5 (2025-10-14)

Bug Fixes

  • nav: navigate to room after creation from (+) menu (21e6e33)

Documentation

  • add production deployment guide (6d16436)

3.13.4 (2025-10-14)

Bug Fixes

  • api: include members and memberPlayers in room creation response (8320d9e)

3.13.3 (2025-10-14)

Bug Fixes

  • migrations: add migration 0009 for display_password column (040d749)

Code Refactoring

  • replace browser alert() calls with toast notifications (87ef356)

3.13.2 (2025-10-14)

Bug Fixes

  • arcade: only notify room creator of join requests (bc571e3)

3.13.1 (2025-10-14)

Bug Fixes

  • arcade: allow room creator to rejoin restricted/approval rooms (654ba19)

3.13.0 (2025-10-14)

Features

  • moderation: add inline feedback and persistent password display (86e3d41)

3.12.0 (2025-10-14)

Features

  • moderation: improve password input with copy button (2580e47)

3.11.1 (2025-10-14)

Bug Fixes

  • moderation: improve access mode settings UX (dd9e657)

3.11.0 (2025-10-14)

Features

  • add name generator button and abacus emoji (07212e4)

Code Refactoring

  • make player names abacus and arithmetic themed (97daad9)

3.10.0 (2025-10-14)

Features

  • add fun automatic player naming system (249257c)

3.9.2 (2025-10-14)

Bug Fixes

  • remove duplicate ModerationNotifications causing double toasts (c6886a0)

3.9.1 (2025-10-14)

Bug Fixes

  • reset join request toast state when moderation event cleared (6beb58a)

3.9.0 (2025-10-14)

Features

  • prevent invitations to retired rooms (a7c3c1f)

3.8.1 (2025-10-14)

Bug Fixes

  • improve kicked modal message for retired room ejections (f865ce1)

3.8.0 (2025-10-14)

Features

  • implement proper retired room behavior with member expulsion (a2d5368)

3.7.1 (2025-10-14)

Bug Fixes

  • improve join request approval error handling with actionable messages (57bf846)

3.7.0 (2025-10-14)

Features

  • add prominent join request approval notifications for room moderators (036da6d)

3.6.3 (2025-10-14)

Bug Fixes

  • update locked room terminology and allow existing members (1ddf985)

3.6.2 (2025-10-14)

Bug Fixes

  • allow join with pending invitation for restricted rooms (85b2cf9)

3.6.1 (2025-10-14)

Bug Fixes

  • join user socket channel to receive approval notifications (7d08fdd)

Code Refactoring

  • remove redundant polling from approval notifications (0d4f400)

3.6.0 (2025-10-14)

Features

  • add socket listener and polling for approval notifications (35b4a72)

3.5.0 (2025-10-14)

Features

  • replace access mode dropdown with visual button grid (e5d0672)

3.4.0 (2025-10-14)

Features

  • add waiting state for approval requests in JoinRoomModal (f9b0429)

3.3.1 (2025-10-14)

Bug Fixes

  • add POST handler for join requests API endpoint (d3e5cdf)

3.3.0 (2025-10-14)

Features

  • implement approval request flow for share links (4a6b3ca)

3.2.1 (2025-10-14)

Bug Fixes

  • allow password retry when joining via share link (e469363)

3.2.0 (2025-10-14)

Features

  • improve room creation UX and add password support for share links (dcbb507)

3.1.2 (2025-10-14)

Bug Fixes

  • replace last remaining isLoading with isPending in CreateRoomModal (85d13cc)

3.1.1 (2025-10-14)

Bug Fixes

  • use useCreateRoom hook instead of nonexistent createRoom from useRoomData (f7d63b3)

3.1.0 (2025-10-14)

Features

  • add room access modes and ownership transfer (6ff21c4)

Bug Fixes

  • replace isLocked with accessMode and add bcryptjs (a74b96b)

3.0.0 (2025-10-13)

⚠ BREAKING CHANGES

  • Added DELETE /api/arcade/rooms/:roomId/invite endpoint for declining invitations

Authorization Error Handling:

  • ModerationPanel: Parse and display API error messages (kick, ban, unban, invite, data loading)
  • PendingInvitations: Parse and display API error messages (decline, fetch)
  • All moderation actions now show specific auth errors like "Only the host can kick users"

New Endpoint:

  • DELETE /api/arcade/rooms/:roomId/invite: Allow users to decline their pending invitations
    • Validates invitation exists and is pending
    • Only invited user can decline their own invitation
    • Returns proper error messages for auth failures

Bug Fix:

  • Fixed invitations/pending/route.ts ban check query (removed reference to non-existent unbannedAt field)
  • Ban records are deleted when unbanned, so any existing ban is active

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

Features

  • add API routes for moderation and invitations (79a8518)
  • add backend library functions for room moderation (84f3c4b)
  • add centralized player ownership utilities (1019a48)
  • add common UI components (cd3115a)
  • add database schema for room moderation and invitations (97d1604)
  • add invitation system UI components (fd3a2d1)
  • add moderation panel with unban & invite feature (a2d0169)
  • add player count to stacked room info (540f6b7)
  • add real-time socket updates for moderation events (86ceba3)
  • add room creation and join flow UI (7f95032)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • integrate moderation system into arcade pages (087652f)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • improve authorization error handling and add missing decline invitation endpoint (97669ad)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • moderation: don't show pending invitation for users already in room (fae5920)
  • move invitations into nav and filter out current/banned rooms (cfaf82b)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent hamburger menu from closing when toggling Style dropdown (a898fbc)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • remove old arcade guard system (2e6469b)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • update core UI components (55ccf09)
  • update game pages for room-based multiplayer (54846bd)
  • update nav components for room-based system (31ac958)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)
  • add tests for room and moderation features (063a8e5)

2.18.0 (2025-10-13)

Features

  • add API routes for moderation and invitations (79a8518)
  • add backend library functions for room moderation (84f3c4b)
  • add centralized player ownership utilities (1019a48)
  • add common UI components (cd3115a)
  • add database schema for room moderation and invitations (97d1604)
  • add invitation system UI components (fd3a2d1)
  • add moderation panel with unban & invite feature (a2d0169)
  • add player count to stacked room info (540f6b7)
  • add real-time socket updates for moderation events (86ceba3)
  • add room creation and join flow UI (7f95032)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • integrate moderation system into arcade pages (087652f)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • moderation: don't show pending invitation for users already in room (fae5920)
  • move invitations into nav and filter out current/banned rooms (cfaf82b)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent hamburger menu from closing when toggling Style dropdown (a898fbc)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • remove old arcade guard system (2e6469b)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • update core UI components (55ccf09)
  • update game pages for room-based multiplayer (54846bd)
  • update nav components for room-based system (31ac958)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)
  • add tests for room and moderation features (063a8e5)

2.18.0 (2025-10-13)

Features

  • add API routes for moderation and invitations (79a8518)
  • add backend library functions for room moderation (84f3c4b)
  • add centralized player ownership utilities (1019a48)
  • add common UI components (cd3115a)
  • add database schema for room moderation and invitations (97d1604)
  • add invitation system UI components (fd3a2d1)
  • add moderation panel with unban & invite feature (a2d0169)
  • add player count to stacked room info (540f6b7)
  • add real-time socket updates for moderation events (86ceba3)
  • add room creation and join flow UI (7f95032)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • integrate moderation system into arcade pages (087652f)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • moderation: don't show pending invitation for users already in room (fae5920)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent hamburger menu from closing when toggling Style dropdown (a898fbc)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • remove old arcade guard system (2e6469b)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • update core UI components (55ccf09)
  • update game pages for room-based multiplayer (54846bd)
  • update nav components for room-based system (31ac958)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)
  • add tests for room and moderation features (063a8e5)

2.18.0 (2025-10-13)

Features

  • add API routes for moderation and invitations (79a8518)
  • add backend library functions for room moderation (84f3c4b)
  • add centralized player ownership utilities (1019a48)
  • add common UI components (cd3115a)
  • add database schema for room moderation and invitations (97d1604)
  • add invitation system UI components (fd3a2d1)
  • add moderation panel with unban & invite feature (a2d0169)
  • add player count to stacked room info (540f6b7)
  • add real-time socket updates for moderation events (86ceba3)
  • add room creation and join flow UI (7f95032)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • integrate moderation system into arcade pages (087652f)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent hamburger menu from closing when toggling Style dropdown (a898fbc)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • remove old arcade guard system (2e6469b)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • update core UI components (55ccf09)
  • update game pages for room-based multiplayer (54846bd)
  • update nav components for room-based system (31ac958)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)
  • add tests for room and moderation features (063a8e5)

2.18.0 (2025-10-12)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent hamburger menu from closing when toggling Style dropdown (a898fbc)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-12)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: close hamburger menu when nested dropdown closes and mouse not hovering (7d65212)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent style dropdown from closing hamburger menu (560a052)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: properly prevent nested style dropdown from closing hamburger menu (c5b6a82)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)
  • zIndex: create centralized z-index layering system (a204c83)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-12)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: make MemoryGrid generic to support different card types (dcda826)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: replace mismatch banner with card shake animation (804096f)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • matching: unify duplicate MemoryGrid components into shared implementation (5f7067a)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add delay to hamburger menu hover to prevent premature closing (95cd72e)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: center game context with hamburger menu for utilities (a35a7d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: enable tooltips for local players during gameplay (5499700)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • nav: remove play arrow badge from turn indicators (80cfc10)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • matching: integrate game type into nav, remove redundant header (389df29)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove blue gradient background from network players (2881aff)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: improve readability of turn label text (bbd1da0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: add z-index to turn labels to prevent avatar overlap (7c294da)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: prevent turn label text from being obscured (c4b00dd)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: add turn label text under current player avatars (52a66d5)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove animation/enlargement from network player turn indicator (53079ed)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: add turn indicators to network players (623314b)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add prominent turn indicator arrow badge (f574558)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: apply turn indicators to arcade version too (e6f96a8)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: only apply turn indicator when game is active (cb4c061)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • matching: use nav avatars as turn indicators (7263828)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • matching: use UUID instead of numeric index for scores (5036cb0)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: add pulsing indicator for offline network players (64fb30e)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: combine room info and network players in single pane (d5473ab)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • nav: improve text contrast in room info pane (3e691cb)
  • nav: remove opacity reduction from local players (5215af8)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • nav: improve text contrast in room info pane (3e691cb)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • nav: unify room dropdown with join code and game menu (f7b83f8)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • stack game title dropdown ABOVE room pane, not inside it (7bc815f)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • move game name into room pane, remove player count (eeb8d52)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • add player count to stacked room info (540f6b7)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • combine mode and room into single unified pane (7a6f2ac)
  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • pixel-perfect alignment across all nav elements (fa78a2c)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • implement Option A - balanced alignment and visual hierarchy (6ad7170)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • stack mode indicator above room info (d1aa567)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • move game controls into title dropdown menu (e39a031)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • restructure nav so player avatars truly span both rows (e0fd793)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • comprehensive navigation polish - prominence, contrast, cohesion (1ba58b9)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • re-export ownership utilities from player-manager (e85f800)
  • redesign GameControlButtons with translucent aesthetic (5720c7d)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)
  • redesign room info as compact inline badge with click-to-copy (6b3a440)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • compact room info display with join code in tooltip (a6b1610)
  • re-export ownership utilities from player-manager (e85f800)
  • restructure GameContextNav to 2x2 grid layout (9c9270f)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-11)

Features

  • add centralized player ownership utilities (1019a48)
  • improve arcade nav player grouping and add room join code display (8e9980d)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • populate session activePlayers from room members on join (2d00939)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • prevent database imports from being bundled into client code (bda5bc6)
  • prevent duplicate arcade sessions per room (4cc3de5)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • create arcade sessions on room join to enable config changes (c29501f)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • prevent database imports from being bundled into client code (bda5bc6)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • clear hover state in CLEAR_MISMATCH for clean turn transitions (43f7c92)
  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • prevent database imports from being bundled into client code (bda5bc6)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • clear hover state on turn changes and game transitions (6fd425c)
  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • prevent database imports from being bundled into client code (bda5bc6)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • hide hover avatar for current user's own player (dba42b5)
  • prevent database imports from being bundled into client code (bda5bc6)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • exclude dist from TypeScript compilation and add missing type import (b7f1d5a)
  • prevent database imports from being bundled into client code (bda5bc6)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.18.0 (2025-10-10)

Features

  • add centralized player ownership utilities (1019a48)

Bug Fixes

  • correct TypeScript build configuration to prevent .js pollution in src/ (2b7ff23)
  • remove build artifacts from source control (29f5adc)
  • remove rootDir from tsconfig.server.json (431e4a6)
  • update Dockerfile to copy dist/ instead of socket-server.js and src/ (e56517b)

Code Refactoring

  • re-export ownership utilities from player-manager (e85f800)
  • use centralized ownership in RoomMemoryPairsProvider (6c66bb2)
  • use centralized player ownership in session-manager (a362e5e)

Documentation

  • add plan for centralizing player ownership logic (d3ff89a)

Tests

  • add comprehensive integration tests for player ownership (76a6390)

2.17.2 (2025-10-10)

Bug Fixes

  • correct playerMetadata userId assignment for room-based multiplayer (53797db)

2.17.1 (2025-10-10)

Bug Fixes

  • correct hover avatar and turn indicator to show only current player (0596ef6)

2.17.0 (2025-10-10)

Features

  • hide hover avatar when card is flipped to reveal value (a2aada2)

2.16.7 (2025-10-10)

Bug Fixes

  • compile TypeScript server files to JavaScript for production (83b9a4d)
  • remove standalone output mode incompatible with custom server (c8da5a8)
  • update Dockerfile for non-standalone production builds (14746c5)

2.16.6 (2025-10-10)

Bug Fixes

  • correct static files and public path in Docker image (c287b19)

2.16.5 (2025-10-09)

Bug Fixes

  • correct node_modules path for pnpm symlinks in Docker (c12351f)

2.16.4 (2025-10-09)

Bug Fixes

  • correct Docker CMD to use root-level server.js (48b47e9)

2.16.3 (2025-10-09)

Bug Fixes

  • use game state playerMetadata instead of GameModeContext in UI components (388c254)

2.16.2 (2025-10-09)

Bug Fixes

  • use only local user's players in LocalMemoryPairsProvider (c26138f)

2.16.1 (2025-10-09)

Bug Fixes

  • convert LocalMemoryPairsProvider to pure client-side with useReducer (b128db1)

2.16.0 (2025-10-09)

Features

  • fade out hover avatar when player stops hovering (820eeb4)

2.15.0 (2025-10-09)

Features

  • implement smooth hover avatar animations with react-spring (442c6b4)

2.14.3 (2025-10-09)

Bug Fixes

  • enable smooth spring animations between card hovers (8d53b58)

2.14.2 (2025-10-09)

Bug Fixes

  • correct avatar positioning to prevent fly-in animation (573d0df)

2.14.1 (2025-10-09)

Bug Fixes

  • prevent avatar fly-in and hide local player's own hover (7f65a67)

2.14.0 (2025-10-09)

Features

  • improve hover avatars with smooth animation and 3D elevation (71b11f4)

2.13.0 (2025-10-09)

Features

  • implement networked hover presence for multiplayer gameplay (62f3730)

Code Refactoring

  • move canModifyPlayers logic into provider layer (db9f909)
  • properly separate LocalMemoryPairsProvider and RoomMemoryPairsProvider (98822ec)

2.12.3 (2025-10-09)

Bug Fixes

  • always show game control buttons in room-based sessions (14ba422)

2.12.2 (2025-10-09)

Bug Fixes

  • use RoomMemoryPairsProvider in room page (c279731)

2.12.1 (2025-10-09)

Bug Fixes

  • export MemoryPairsContext to fix provider hook error (80ad33e)

2.12.0 (2025-10-09)

Features

  • add networked hover state infrastructure for multiplayer presence (d149799)

2.11.0 (2025-10-09)

Features

  • add pause/resume game state architecture (05eacac)
  • add Resume button and config change warning to setup UI (b5ee04f)
  • implement pause/resume in game providers with optimistic updates (ce30fca)

Bug Fixes

  • convert guestId to internal userId for player ownership check (3a01f46)
  • implement shared session architecture for room-based multiplayer (2856f4b)

2.10.2 (2025-10-09)

Bug Fixes

  • convert guestId to internal userId for player ownership check (3a01f46)
  • implement shared session architecture for room-based multiplayer (2856f4b)

2.10.1 (2025-10-09)

Bug Fixes

  • enforce player ownership authorization for multiplayer games (71b0aac)

2.10.0 (2025-10-09)

Features

  • implement rich Radix UI tooltips for player avatars (d03c789)

2.9.0 (2025-10-09)

Features

  • implement auto-save for player settings modal (a83dc09)

2.8.7 (2025-10-09)

Bug Fixes

  • enable real-time player name updates across room members (5171be3)

2.8.6 (2025-10-09)

Bug Fixes

  • prevent duplicate display of network avatars in nav (d474ef0)

2.8.5 (2025-10-09)

Bug Fixes

  • remove redirect loop by not redirecting from room page (10cf715)

2.8.4 (2025-10-09)

Bug Fixes

  • prevent redirect loops by checking if already at target URL (c5268b7)

2.8.3 (2025-10-08)

Bug Fixes

  • remove ArcadeGuardedPage from room page to prevent redirect loop (4686f59)

2.8.2 (2025-10-08)

Bug Fixes

  • revert to showing only active players in room games (87cc0b6)

2.8.1 (2025-10-08)

Bug Fixes

  • include all players from room members in room games (28a2e7d)

2.8.0 (2025-10-08)

Features

  • implement room-wide multi-user game state synchronization (8175c43)

Tests

  • add comprehensive tests for arcade guard and room navigation (b49630f)

2.7.4 (2025-10-08)

Bug Fixes

  • respect enabled flag in useArcadeGuard WebSocket redirects (01ff114)

Code Refactoring

  • move room management pages to /arcade-rooms (4316687)

2.7.3 (2025-10-08)

Bug Fixes

  • set room sessions to use /arcade/room URL (9dac431)

2.7.2 (2025-10-08)

Bug Fixes

  • add hasAttemptedFetch flag to prevent premature redirect (c30f585)

2.7.1 (2025-10-08)

Bug Fixes

  • resolve race condition in /arcade/room redirect (5ed2ab2)

2.7.0 (2025-10-08)

Features

  • extend GameModeContext to support room-based multiplayer (ee6094d)

2.6.0 (2025-10-08)

Features

  • refactor room addressing to /arcade/room (e7d2a73)

2.5.0 (2025-10-08)

Features

  • display room info and network players in mini app nav (5e3261f)

2.4.6 (2025-10-08)

Bug Fixes

  • real-time room member updates via globalThis socket.io sharing (94a1d9b)

2.4.5 (2025-10-08)

Bug Fixes

  • send all members (not just online) in socket broadcasts (3fa6cce)

2.4.4 (2025-10-08)

Bug Fixes

  • correctly access getSocketIO from dynamic import (30abf33)

2.4.3 (2025-10-08)

Bug Fixes

  • resolve socket-server import path for Next.js build (12c3c37)

2.4.2 (2025-10-08)

Bug Fixes

  • broadcast member join/leave events immediately via API (ebfc88c)

2.4.1 (2025-10-08)

Bug Fixes

  • make leave room button actually remove user from room (49f12f8)

2.4.0 (2025-10-08)

Features

  • add arcade room/session info and network players to nav (6800747)
  • add real-time WebSocket updates for room membership (7ebb2be)
  • implement modal room enforcement (one room per user) (f005fbb)
  • improve room navigation and membership UI (bc219c2)

Bug Fixes

  • auto-cleanup orphaned arcade sessions without valid rooms (3c002ab)
  • show correct join/leave button based on room membership (5751dfe)

2.3.1 (2025-10-07)

Bug Fixes

  • add missing DOMPoint properties to getPointAtLength mock (1e17278)
  • add missing name property to Passenger test mocks (f8ca248)
  • add non-null assertions to skillConfiguration utilities (9c71092)
  • add optional chaining to stepBeadHighlights access (a5fac5c)
  • add showAsAbacus property to ComplementQuestion type (4adcc09)
  • add userId to optimistic player in useCreatePlayer (5310463)
  • change TypeScript moduleResolution from bundler to node (327aee0)
  • convert Jest mocks to Vitest in useSteamJourney tests (e067271)
  • convert player IDs from number to string in arcade tests (72db1f4)
  • rewrite layout.nav.test to match actual RootLayout props (a085de8)
  • update useArcadeGuard tests with proper useViewerId mock (4eb49d1)
  • use Object.defineProperty for NODE_ENV in middleware tests (e73191a)
  • wrap Buffer in Uint8Array for Next.js Response API (98384d2)

Documentation

  • add explicit package.json script references to regime docs (3353bca)
  • establish mandatory code quality regime for Claude Code (dd11043)
  • expand quality regime to define "done" for all work (f92f7b5)

2.3.0 (2025-10-07)

Features

  • add Biome + ESLint linting setup (fc1838f)

Styles

  • apply Biome formatting to entire codebase (60d70cd)

2.2.1 (2025-10-07)

Bug Fixes

  • remove remaining typst-dependent files (d1b9b72)

2.2.0 (2025-10-07)

Features

  • remove typst-related code and routes (be6fb1a)

2.1.3 (2025-10-07)

Bug Fixes

  • remove .npmrc from Dockerfile COPY (e71c2b4)

2.1.2 (2025-10-07)

Bug Fixes

  • revert to default pnpm mode for Docker compatibility (bd0092e)

2.1.1 (2025-10-07)

Bug Fixes

  • ignore all node_modules in Docker (4792dde)

2.1.0 (2025-10-07)

Features

  • remove typst dependencies (eedce28)

2.0.7 (2025-10-07)

Bug Fixes

  • preserve workspace node_modules in Docker for hoisted mode (4f8aaf0)

2.0.6 (2025-10-07)

Bug Fixes

  • ignore nested node_modules in Docker (f554592)

2.0.5 (2025-10-07)

Bug Fixes

  • use .npmrc in Docker for hoisted mode consistency (2df8cdc)

2.0.4 (2025-10-07)

Bug Fixes

  • remove .npmrc in Docker to avoid hoisted mode issues (2a77d75)

2.0.3 (2025-10-07)

Bug Fixes

  • remove duplicate PlayerStatusBar story file from arcade (4e721f7)

2.0.2 (2025-10-07)

Bug Fixes

  • update Dockerfile pnpm version and fix TypeScript config (43077a8)

2.0.1 (2025-10-07)

Bug Fixes

  • add @types/minimatch to abacus-react devDependencies (fa45475)

2.0.0 (2025-10-07)

⚠ BREAKING CHANGES

  • abacus-react package now has independent versioning from monorepo

Features

  • abacus-react: add dual publishing to npm and GitHub Packages (242ee52)
  • abacus-react: comprehensive README overhaul with current capabilities (0ce351e)
  • abacus-react: configure GitHub Packages-only publishing workflow (5eeedd9)
  • abacus-react: enable dual publishing to npm and GitHub Packages (176a196)
  • abacus-react: enhance package description with semantic versioning details (af037b5)
  • abacus-react: implement GitHub Packages-only publishing workflow (b194599)
  • abacus-react: implement GitHub-only semantic release with manual package publishing (33b0567)
  • abacus-react: simplify to GitHub Packages-only publishing (acc126b)
  • abacus-react: update description to mention GitHub Packages support (af77256)
  • abacus-react: use environment variables to override npm registry (ad444e1)
  • add API routes for players and user stats (6f940e2)
  • add arcade matching game components and utilities (ff16303)
  • add arcade room system database schema and managers (Phase 1) (a9175a0)
  • add build info API endpoint (571664e)
  • add build info generation script (416dc89)
  • add category browsing and scrolling to emoji picker (616a50e)
  • add complement display options and unify equation display (2ed7b2c)
  • add Complement Race game with three unique game modes (582bce4)
  • add comprehensive E2E testing with Playwright (d58053f)
  • add comprehensive Storybook stories for PlayerStatusBar (8973241)
  • add configuration access to active player emojis in prominent nav (6049a7f)
  • add configuration access to fullscreen player selection (b85968b)
  • add consecutive match tracking system for escalating celebrations (111c0ce)
  • add CSS animations and visual feedback system (80e33e2)
  • add deployment info modal with keyboard shortcut (43be7ac)
  • add direct URL routes for each game mode (a08f053)
  • add exitSession to MemoryPairsContextValue interface (abc2ea5)
  • add GameControlButtons component with unit tests (1f45c17)
  • add guest session system with JWT tokens (10d8aaf)
  • add initialStyle prop to ComplementRaceProvider (f3bc2f6)
  • add intelligent on-screen number pad for devices without keyboards (d4740ff)
  • add interactive remove buttons for players in mini nav (fa1cf96)
  • add magnifying glass preview on emoji hover (2c88b6b)
  • add middleware for pathname header support in @nav fallback (b7e7c4b)
  • add mini app nav to arcade page (a854fe3)
  • add optimistic updates and remove dead code (b62cf26)
  • add passenger boarding system with station-based pickup (23a9016)
  • add player types and migration utilities (79f44b2)
  • add PlayerStatusBar with escalating celebration animations (7f8c90a)
  • add prominent game context display to mini nav with smooth transitions (8792393)
  • add React Query setup with api helper (a3878a8)
  • add realistic mountains with peaks and ground terrain (99cdfa8)
  • add security tests and userId injection protection (aa1ad31)
  • add server-side validation for player modifications during active arcade sessions (3b3cad4)
  • add Setup button to exit arcade sessions (ae1318e)
  • add smooth spring animations to pressure gauge (863a2e1)
  • add sound settings support to AbacusReact component (90b9ffa)
  • add train car system with smooth boarding/disembarking animations (1613912)
  • add Web Audio API sound effects system with 16 sound types (90ba866)
  • complement-race: add abacus displays to pressure gauge (c5ebc63)
  • complete themed navigation system with game-specific chrome (0a4bf17)
  • create mode selection landing page for Complement Race (1ff9695)
  • create PlayerConfigDialog component for player customization (4f2a661)
  • create StandardGameLayout for perfect viewport sizing (728a920)
  • display passengers visually on train and at stations (1599904)
  • dynamic player card rendering on games page (81d17f2)
  • dynamically calculate train cars based on max concurrent passengers (9ea1553)
  • emit session-state after creating arcade session (70d6f43)
  • enable prominent nav and fix layout on arcade page (5c8c18c)
  • enhance emoji picker with super powered magnifying glass and hide empty categories (d8b4e42)
  • enhance passenger card UI with boarding status indicators (4bbdabc)
  • extend ground terrain to cover entire track area (ee48417)
  • extend player customization to support all 4 players (72f8dee)
  • extend railroad track to viewport edges (eadd7da)
  • extend track and tunnels to absolute viewport edges (f7419bc)
  • implement @nav parallel routes for game name display in mini navigation (885fc72)
  • implement cozy sound effects for abacus with variable intensity (c95be1d)
  • implement cozy sound effects for abacus with variable intensity (cea5fad)
  • implement game control callbacks in MemoryPairsGame (4758ad2)
  • implement game theming system with context-based navigation chrome (3fa11c4)
  • implement innovative dynamic two-panel layout for on-screen keyboard (4bb8f6d)
  • implement mobile-first responsive design for speed memory quiz (13efc4d)
  • implement simple fixed bottom keyboard bar (9ef72d7)
  • implement smooth train exit with fade-out through right tunnel (0176694)
  • implement toggleable on-screen keyboard to prevent UI overlap (701d23c)
  • improve game availability logic and messaging (9a3fa93)
  • increase landmark emoji size for better visibility (0bcd7a3)
  • integrate GameControlButtons into navigation (fbd8cd4)
  • integrate remaining game sound effects (600bc35)
  • integrate sound effects into game flow (countdown, answers, performance) (8c3a855)
  • integrate user profiles with PlayerStatusBar and game results (beff646)
  • make Steam Sprint infinite mode (32c3a35)
  • make SVG span full viewport width for sprint mode (7488bb3)
  • migrate abacus display settings to database (92ef136)
  • migrate contexts to React Query (remove localStorage) (fe01a1f)
  • migrate contexts to UUID-based player system (2b94cad)
  • preserve track and passengers during route transitions (f2e7165)
  • redesign passenger cards with vintage train station aesthetic (651bc21)
  • set up automated npm publishing for @soroban/abacus-react package (dd80d29)
  • set up Drizzle ORM with SQLite database (5d5afd4)
  • skip countdown for train mode (sprint) (65dafc9)
  • skip intro screen and start directly at game setup (4b6888a)
  • sync URL with selected game mode (3920bba)
  • UI polish for Sprint mode (viewport, backgrounds, data attributes) (90ad789)
  • update nav components for UUID players (e85d041)
  • use CSS transitions for smooth fullscreen player selection collapse (3189832)
  • wire player configuration through nav component hierarchy (edfdd81)

Bug Fixes

  • abacus-react: add debugging and explicit authentication for npm publish (b82e9bb)
  • abacus-react: add packages: write permission for GitHub Packages publishing (8e16487)
  • abacus-react: apply global columnPosts styling and fix reckoning bar width (bb9959f)
  • abacus-react: force npm to use GitHub Packages registry (5e6c901)
  • abacus-react: improve publishing workflow with better version sync (7a4ecd2)
  • abacus-react: improve workspace dependency cleanup and add validation (11fd6f9)
  • abacus-react: resolve workspace dependencies before npm publish (834b062)
  • abacus-react: simplify semantic-release config to resolve dependency issues (88cab38)
  • abacus-react: temporarily allow test failures during setup phase (e3db7f4)
  • add CLEAR_MISMATCH move to allow mismatch feedback to auto-dismiss (158f527)
  • add missing GameThemeContext file for themed navigation (d4fbdd1)
  • add npmrc for hoisting and fix template paths (5c65ac5)
  • add Python setuptools and build tools for better-sqlite3 compilation (a216a3d)
  • add testing mode for on-screen keyboard and fix toggle functionality (904074c)
  • align all bottom UI elements to same 20px baseline (076c97a)
  • align bottom-positioned UI elements (227cfab)
  • allow navigation to game setup pages without active session (c7ad3c0)
  • change pressure gauge to fixed positioning to stay above terrain (1b11031)
  • change question display to fixed positioning with higher z-index (4ac8758)
  • complement-race: improve abacus display in equations (491b299)
  • complement-race: prevent passengers being left behind at delivery stations (e6ebecb)
  • correct emoji category group IDs to match Unicode CLDR (b2a21b7)
  • defer URL update until game starts (12c54b2)
  • delay passenger display update until train resets (e06a750)
  • disable turn validation in arcade mode matching game (7c0e6b1)
  • eliminate rail jaggies on sharp curves by increasing sampling density (46d4af2)
  • enable shamefully-hoist for semantic-release dependencies (6168c29)
  • enforce playerId must be explicitly provided in arcade moves (d5a8a2a)
  • ensure consistent r×c grid layout for memory matching game (f1a0633)
  • ensure game names persist in navigation on page reload (9191b12)
  • ensure passengers only travel forward on train route (8ad3144)
  • export missing hooks and types from @soroban/abacus-react package (423ba55)
  • implement route-based theme detection for page reload persistence (3dcff2f)
  • improve navigation chrome background color extraction from gradients (00bfcbc)
  • increase question display zIndex to stay above terrain (8c8b8e0)
  • lazy-load database connection to prevent build-time access (af8d993)
  • make results screen compact to fit viewport without scrolling (9d4cba0)
  • migrate viewport from metadata to separate viewport export (1fe12c4)
  • move auth.ts to src/ to match @/ path alias (7829d8a)
  • move fontWeight to style object for station names (05a3ddb)
  • only show configuration gear icon for players 1 and 2 (d0a3bc7)
  • pass player IDs (not user IDs) in all arcade game moves (d00abd2)
  • passengers now board/disembark based on their car position, not locomotive (96782b0)
  • position tunnels at absolute viewBox edges (1a5fa28)
  • prevent layout shift when selecting Steam Sprint mode (73a5974)
  • prevent multiple passengers from boarding same car in single frame (63b0b55)
  • prevent premature passenger display during route transitions (fe9ea67)
  • prevent random passenger repopulation during route transitions (db56ce8)
  • prevent route celebration from immediately reappearing (1a80934)
  • redesign matching game setup page for StandardGameLayout (cc1f27f)
  • reduce landmark size from 4.0x to 2.0x multiplier (c928e90)
  • regenerate lockfile with correct dependency order (51bf448)
  • regenerate lockfile with node-linker=hoisted from scratch (480960c)
  • regenerate pnpm lockfile for pnpm 9 compatibility (4ab1aef)
  • remove double PageWithNav wrapper on matching page (b58bcd9)
  • remove duplicate CAR_SPACING and MAX_CARS declarations (e704a28)
  • remove duplicate previousPassengersRef declaration (fad8636)
  • remove frozen lockfile flag from publishing workflow to resolve dependency installation issues (18af973)
  • remove hard-coded car count from game loop (6c90a68)
  • remove unnecessary zIndex from question display (db52e14)
  • reposition on-screen keyboard to avoid covering abacus tiles (6e5b4ec)
  • require activePlayers in START_GAME, never fallback to userId (ea1b1a2)
  • reset momentum and pressure when starting new route (3ea88d7)
  • resolve circular dependency errors in memory quiz on-screen keyboard (d25e2c4)
  • resolve JSX parsing error with emoji in guide page (bf046c9)
  • resolve mini navigation game name persistence across all routes (3fa314a)
  • resolve runtime error - calculateOptimalGrid not defined (fbc84fe)
  • resolve SSR/client hydration mismatch for themed navigation (301e65d)
  • resolve TypeScript errors in PlayerStatusBar component (a935e5a)
  • restore navigation to all pages using PageWithNav (183706d)
  • show "Return to Arcade" button only during active game (4153929)
  • smooth rail curves and deterministic track generation (4f79c08)
  • stabilize route completion threshold to prevent stuck trains (b7233f9)
  • update lockfile and fix Makefile paths (7ba746b)
  • update matching game for UUID player system (2e041dd)
  • update memory pairs game to use StandardGameLayout (8df76c0)
  • update memory quiz to use StandardGameLayout (3f86163)
  • update pnpm version to 8.15.6 to resolve ERR_INVALID_THIS error in workflow (0b9bfed)
  • update race track components for new player system (ae4e8fc)
  • update tutorial tests to use consolidated AbacusDisplayProvider (899fc69)
  • update workflow to support Personal Access Token for GitHub Packages publishing auth (ae4b71b)
  • upgrade CI dependencies and fix deprecated actions (6a51c1e)
  • use displayPassengers for station rendering in RailroadTrackPath (a9e0d19)
  • use node-linker=hoisted for full dependency hoisting (d3b2e0b)
  • use player IDs instead of array indices in matching game (ccd0d6d)
  • use style fontSize instead of attribute for landmarks (ebc6894)
  • use UUID player IDs in session creation fallback (22541df)
  • wrap animated pressure value in animated.span to prevent React error (5c5954b)

Performance Improvements

  • optimize React rendering with memoization and consolidated effects (93cb070)

Code Refactoring

  • completely remove @nav parallel routes and simplify navigation (54ff20c)
  • consolidate abacus display context management (a387b03)
  • extract ActivePlayersList component from PageWithNav (2849576)
  • extract AddPlayerButton component from PageWithNav (57a72e3)
  • extract FullscreenPlayerSelection component from PageWithNav (66f5223)
  • extract GameContextNav orchestration component (e3f552d)
  • extract GameHUD component from SteamTrainJourney (78d5234)
  • extract GameModeIndicator component from PageWithNav (d67315f)
  • extract guide components to fix syntax error in large file (c77e880)
  • extract RailroadTrackPath component from SteamTrainJourney (d9acc0e)
  • extract TrainAndCars component from SteamTrainJourney (5ae22e4)
  • extract TrainTerrainBackground component from SteamTrainJourney (05bb035)
  • extract usePassengerAnimations hook from SteamTrainJourney (32abde1)
  • extract useTrackManagement hook from SteamTrainJourney (a1f2b97)
  • extract useTrainTransforms hook from SteamTrainJourney (a2512d5)
  • make game mode a computed property from active player count (386c88a)
  • remove drag-and-drop UI from EnhancedChampionArena (982fa45)
  • remove duplicate game control buttons from game phases (9165014)
  • remove redundant game titles from game screens (402724c)
  • replace bulky MemoryGrid stats with compact progress display (c4d6691)
  • simplify navigation flow and enhance GameControls UI (920aaa6)
  • simplify PageWithNav by extracting nav components (98cfa56)
  • split deployment info into server/client components (5e7b273)
  • streamline GamePhase header and integrate PlayerStatusBar (dcefa74)
  • streamline UI and remove duplicate information displays (7a3e34b)

Documentation

  • add comprehensive workflow documentation for automated npm publishing (f923b53)
  • add server persistence migration plan (dd0df8c)

Tests

  • add comprehensive unit tests for refactored hooks and components (5d20839)
  • add E2E tests for arcade modal session behavior (619be98)

1.2.1 (2025-09-28)

Bug Fixes

  • update GitHub Pages actions to v4 for better deployment reliability (be76c23)

1.2.0 (2025-09-28)

Features

  • trigger storybook deployment after enabling GitHub Pages (64dc94e)

1.1.3 (2025-09-28)

Bug Fixes

  • add cssgen step to generate styles.css for Storybook (26077de)

1.1.2 (2025-09-28)

Bug Fixes

  • upgrade Node.js to version 20 for Storybook compatibility (4c33872)

1.1.1 (2025-09-28)

Bug Fixes

  • update GitHub Actions to use latest action versions for Storybook deployment (f0bb411)

1.1.0 (2025-09-28)

Features

  • add GitHub Pages Storybook deployment with dual documentation sites (439707b)

1.0.0 (2025-09-28)

Bug Fixes

  • add explicit type annotation for examples array in LivePreview (6c49e03)
  • add missing color-palette parameter to generate-flashcards function (18583d0)
  • add navigation to games from character selection modal (b64fb1c)
  • add onConfigurePlayer prop to ChampionArena (6e1050c)
  • add optional chaining to prevent TypeScript error (d42dca2)
  • add robust fallback system for term highlighting in guidance (decd8a3)
  • add tooltip targeting logic to only show on beads with arrows (4425627)
  • add xmlns attributes to SVG examples for GitHub compatibility (c2f33ce)
  • adjust tutorial editor page height to account for app navigation (9777bef)
  • allow semantic release to proceed despite build failures (73a6904)
  • apply CSS scaling to abacus components in memory quiz (599fbfb)
  • clean up component interfaces and settings (ce6c2a1)
  • convert foreignObject to native SVG text elements (3ccc753)
  • correct column indexing and add boundary checks for interactive abacus (bbfb361)
  • correct diamond bead column alignment to match Typst positioning (97690d6)
  • correct heaven bead positioning to match earth bead gap consistency (0c4eea5)
  • correct highlightBeads format in AbacusTest.stories.tsx (7122ad7)
  • correct mathematical inconsistency in cascading complement test (56cb69c)
  • correct pedagogical algorithm specification and tests (9e87d3a)
  • correct segment expression formatting and rule detection (e60f438)
  • correct static file paths in Docker for Next.js standalone mode (91223b6)
  • correct styled-system import paths in games page (82aa73e)
  • correct styled-system import paths in memory quiz page (a967838)
  • correct SVG text positioning to match React component alignment (8024d0a)
  • correct Tab navigation direction in numeral input system (d4658c6)
  • correct TanStack Form state selectors in create page (178f0ff)
  • correct term position calculation for complement segments (7189090)
  • correct tutorial bead highlighting to use rightmost column (ones place) (b6b1111)
  • correct tutorial highlighting placeValue to columnIndex conversion (35257b8)
  • correct tutorial step "7 + 4" to highlight all required beads (9c05bee)
  • correct workspace configuration and remove non-existent packages (39526eb)
  • crop interactive abacus SVG whitespace with simple CSS scaling (bb3d463)
  • disable pointer events on direction indicator arrows (944d922)
  • disable pointer events on overlay content div (b5db935)
  • display actual numbers in SVG examples (3308e22)
  • downgrade Docker action versions to available ones (57d1460)
  • enable individual term hover events within complement groups (0655968)
  • enable multi-bead highlighting in tutorial system (ab99053)
  • enhance collision detection to include all active beads (3d9d69c)
  • ensure abacus visibility in memory quiz display phase (fea7826)
  • ensure celebration tooltip shows when steps complete (5082378)
  • exclude test files from TypeScript build (0e097da)
  • expand heaven-earth-gap to 30pt to accommodate equal 19pt gaps for both heaven and earth inactive beads (a048e11)
  • extract clean SVG content from component output (f57b071)
  • gallery now loads actual Typst-generated SVGs instead of fake placeholders (87eb51d)
  • generate Panda CSS styled-system before building in Docker (c7a45e9)
  • handle both direct and module execution for web format (a1fd4c8)
  • hide celebration tooltip when user moves away from target value (f9e42f6)
  • implement bead highlighting by modifying getBeadColor function (7ac5c29), closes #FFD700
  • implement consistent single-card preview generation (83da1eb)
  • implement focus handling for numeral input in place-value system (415759c)
  • implement gap-filling logic for sorting challenge boundary issues (df41f2e)
  • implement mathematical SVG bounds calculation for precise viewBox positioning (1b0a642)
  • implement prefix-conflict detection for speed memory quiz (01b00b5)
  • implement proper bi-directional drag and drop with useDroppable (53fc41c)
  • implement proper React controlled input pattern for AbacusReact (c18919e)
  • implement proper SVG cropping and fix abacus positioning (793ffd3)
  • implement ref-based fullscreen element tracking for proper persistence (7b947f2)
  • implement smooth cross-zone drag animations without scaling issues (7219a41)
  • improve abacus sizing across all components with CSS transforms (cd6165e)
  • improve error handling in ServerSorobanSVG component (ec51105)
  • improve game mode selection UX by removing redundancy (9fe7068)
  • improve pedagogical correctness and cascade carry handling (85ed254)
  • improve pedagogical segment detection and instruction quality (0ac51ae)
  • improve race mechanics and fix display issues (511eb2e)
  • improve sorting game UI with larger abacus and better slot design (d5e2fda)
  • improve visual balance of inactive heaven bead positioning (a789087)
  • keep tooltip visible when step completed to show celebration (b5d7512)
  • make inactive heaven bead gaps truly equal to earth bead gaps (209ea0f)
  • make lightbulb emoji inline with help text (43e046a)
  • make sorting game action buttons visible during gameplay (0c1f44b)
  • match React component font sizing for SVG numbers (dedc0e7)
  • maximize inactive heaven bead gap from reckoning bar (8f88eeb)
  • move inactive heaven beads HIGHER for larger gap from reckoning bar (2a82902)
  • move inactive heaven beads to 2pt from top for 18pt gap from reckoning bar (708cc91)
  • perfect crop mark detection and SVG dimension consistency (79f38c1)
  • position inactive heaven beads above reckoning bar, not below (2d7d4ef)
  • position inactive heaven beads relative to reckoning bar with same 19pt gap as earth beads (3424ca1)
  • position inactive heaven beads with maximum gap using available space (421ec11)
  • position success toast near abacus instead of app nav (ec40a8d)
  • preserve fullscreen mode when navigating from arcade to memory matching game (2505335)
  • prevent premature step completion for multi-step problems (41dde87)
  • prevent race end modal from breaking endless route progression (e06be9d)
  • regenerate example SVGs with actual soroban renderings (d94baa1)
  • remove broken display switching and add train emoji flip (3227cd5)
  • remove controlled tooltip state to enable proper HoverCard timing (e6e3aa9)
  • remove explicit conventionalcommits preset config to fix semantic-release (15a9986)
  • remove failing tests from GitHub Actions workflow to enable deployment (2eaeac6)
  • remove ordering mismatch warning and implement correct expected state calculation (9de48c6)
  • remove Panda CSS generated files from source control (18b685b)
  • remove redundant mode selection and revert game naming (03f5056)
  • remove TypeScript type check from GitHub Actions workflow (18e2aa9)
  • replace all window.location.href with Next.js router for proper navigation (2a84687)
  • replace invalid CSS 'space' property with 'gap' in guide page (5841f3a)
  • resolve abacus sizing and prefix matching issues in memory quiz (b1db028)
  • resolve arrow disappearing and incorrect bead targeting in 3+14=17 story (b253a21)
  • resolve async/await issues in download API routes (9afaf6e)
  • resolve auto-incrementing counter in InteractiveWithNumbers story (1838d7e)
  • resolve critical bugs in automatic instruction generator found by stress testing (e783776)
  • resolve critical ordering mismatch between multiStepInstructions and stepBeadHighlights (2c395f3)
  • resolve display switching bug causing game content to disappear (4736768)
  • resolve dnd-kit ref extension error in enhanced arena (fac3202)
  • resolve final TypeScript errors in place-value migration (9a24dc8)
  • resolve infinite render loop when clicking Next in tutorial player (4ef6ac5)
  • resolve nested border radius visual artifacts on match cards (c69f6a4)
  • resolve Python FileNotFoundError and improve error handling (69bda9f)
  • resolve ReferenceError by moving ref declarations before usage (fa153c6)
  • resolve SorobanGeneratorBridge path issues for SVG generation (845a4ff)
  • resolve stepIndex mismatch preventing arrows in multi-step sequences (96fda6b)
  • resolve style dropdown click-outside and infinite re-render issues (6394218)
  • resolve temporal dead zone error with goToNextStep (3d503dd)
  • resolve test failures and improve test robustness (3c0affc)
  • resolve TypeScript compilation errors (db3784e)
  • resolve TypeScript compilation errors blocking GitHub Actions build (83ba792)
  • resolve TypeScript errors across the codebase (5946183)
  • resolve zero-state interaction bug in AbacusReact component (f18018d)
  • restore click functionality alongside directional gestures (3c28c69)
  • restore interactive abacus display with TypstSoroban fallback (b794187)
  • restore missing typst dependencies for WASM loading (96aa790)
  • restore single-click player card functionality for arena toggle (1ba2a11)
  • restore workspace dependencies and fix TypeScript errors (31df87d)
  • show numbers in educational abacus examples (2b5f143)
  • simplify collision detection to resolve iterable error (0b3e8fd)
  • simplify inactive heaven bead positioning for better gap matching (22c4bd3)
  • simplify semantic-release config to use default conventional commits (e207659)
  • single digit values now correctly position in rightmost column (689bfd5)
  • stabilize smart help detection with timer-based state (9cc3a0e)
  • update bridge generator interface to support SVG format (a022852)
  • update GitHub Actions to use latest action versions (b674946)
  • update gitignore to follow Panda CSS best practices (ccd0aa7)
  • update pnpm lockfile to sync with semantic-release dependencies (9d23e82)
  • update relative import in generate.py for module compatibility (b633578)
  • update unified gallery to use correct crop examples (826e86d)
  • use actual AbacusReact component for README examples via SSR (a630aa4)
  • use aggressive NumberFlow mock for SVG text rendering (1364b11)
  • use correct test command in GitHub Actions workflow (6483e28)

Features

  • add 292 comprehensive snapshot tests for pedagogical algorithm (3b8f803)
  • add AbacusContext for global display configuration (6460089)
  • add ArithmeticOperationsGuide component to learning guide (902fa56)
  • add automated semantic release system with conventional commits (46c8839)
  • add backgroundGlow support for column highlighting (b1866ce)
  • add bead annotation support to SVG generation (ab244ea)
  • add browser fullscreen API context (8e1a948)
  • add browser-free example generation using react-dom/server (a100a6e)
  • add browser-side bead annotation processing (914e145)
  • add CI-friendly example generation and verification (1adbd1a)
  • add click-to-dismiss functionality for success popup (3066826)
  • add colored numerals feature to match bead colors (e4aaaea)
  • add complete NAS deployment system for apps/web (eb8ed8b)
  • add comprehensive .gitignore for monorepo (9eccd34)
  • add comprehensive soroban learning guide with server-generated SVGs (38d8959)
  • add comprehensive Storybook demos for problem generation system (c01f968)
  • add comprehensive Storybook examples for documentation (8289241)
  • add comprehensive test suite and documentation (bb869a0)
  • add comprehensive test suite with visual regression testing (7a2eb30)
  • add comprehensive tests for celebration tooltip behavior (a23ddf5)
  • add comprehensive tutorial system with editor and player (579caf1)
  • add comprehensive unit test suite for memory quiz functionality (a557362)
  • add comprehensive welcome page as default landing experience (556a830)
  • add concurrent Panda CSS watch to dev script (e8aed80)
  • add config presets for colored numerals and skip counting (a8a01a8)
  • add cosmic fullscreen mode to abacus style dropdown (afec22a)
  • add deprecation markers to legacy column-based API (22f1869)
  • add development tooling and comprehensive setup (7ca65bf)
  • add extracted TutorialDebugPanel and TutorialNavigation components (bc5446a)
  • add fox tunnel digging system for Lightning Sprint mode (b7fac3a)
  • add full-viewport abacus test page (861f0e0)
  • add fullscreen arcade page with Champion Arena (3edf35f)
  • add fullscreen game layout wrapper component (a25e611)
  • add fullscreen parameter handling to GameCard (337aa56)
  • add fullscreen support to Memory Quiz game (763fc95)
  • add Games navigation to main app header (b87ed01)
  • add guided addition tutorial with five complements (8ca9dd7)
  • add input-based flashcard template with parameter parsing (b375a10)
  • add interactive abacus display to guide reading section (6d68cc2)
  • add interactive bead clicking to soroban abacus (697552e)
  • add interactive test story for column highlighting with bead interaction (ee20473)
  • add interactive tutorial system with step validation (c5c2542)
  • add invisible crop marks for consistent SVG viewBox boundaries (7731f70)
  • add Node.js/TypeScript integration with clean function interface (fb1b047)
  • add PDF print integration with modal interface (09b0fad)
  • add pedagogical segments for contextual learning (0053510)
  • add practice page system to guided addition tutorial (9adc3db)
  • add precise term position tracking to unified step generator (52323ae)
  • add production-ready defensive programming for pedagogical segments (704a8a8)
  • add proper step initialization and multi-step navigation to TutorialContext (153649c)
  • add Python bridge and optional FastAPI server (98263a7)
  • add Radix tooltip dependency for better tooltip accessibility (6c02ea0)
  • add real-time bead movement feedback to tutorial UI (4807bc2)
  • add reusable GameSelector and GameCard components (c5a654a)
  • add self-contained Storybook-like gallery for template visualization (efc5cc4)
  • add setGameModeWithPlayers method to GameModeContext (c3a4d76)
  • add single card template for PNG/SVG output (3315310)
  • add smooth cross-zone reordering animations and tone down scaling (b7335f0)
  • add soroban games section with Speed Memory Quiz (331a789)
  • add static site generator for gallery with embedded SVGs (505ff66)
  • add step parameter for skip counting (c94fa5c)
  • add Storybook stories for debugging zero-state interaction bug (f293e5e)
  • add stunning hero section with colorful soroban showcase (d65ac54)
  • add SVG post-processing to convert bead annotations to data attributes (8de3259)
  • add SVG post-processor to package exports (59f4022)
  • add testing framework dependencies (11306df)
  • add TouchSensor for mobile drag and drop compatibility (4fbf4d8)
  • add TypeScript client libraries for browser integration (f21b5e5)
  • add TypeScript configuration for core package (43b3296)
  • add typography improvements and subtle dev warning styling (12a8837)
  • add unified step generator for consistent pedagogical decomposition (93d2d07)
  • add UserProfileProvider to app layout for character support (21c430b)
  • add WASM preloading strategy with template deduplication (91e65c8)
  • add web development test files and public assets (0809858)
  • add web output format with interactive hover flashcards (0a4e849)
  • attempted floating math display following train (2d50eb8)
  • automatic abacus instruction generator for user-created tutorial steps (5c46470)
  • BREAKTHROUGH - eliminate effectiveColumns threading nightmare! (8fd9e57)
  • complete deployment documentation and infrastructure (26f9285)
  • COMPLETE place-value migration - eliminate all backward compatibility (67be974)
  • complete steam train sound system and smooth time-of-day transitions (6c60f94)
  • completely rewrite SorobanQuiz memory game with advanced features (c3fdbfc)
  • connect TutorialPlayer to universal AbacusDisplayContext (ff12bab)
  • convert SorobanQuiz memory game styling to Panda CSS (bed97e6)
  • create @soroban/templates package with dual Node.js/Python interface (7da0123)
  • create comprehensive interactive soroban tutorial with stunning UI (d78f19e)
  • create interactive gallery replicating original Typst design (1bcfd22)
  • create Next.js web application with beautiful UI (1b7e71c)
  • create sequential practice problem player with step-by-step guidance (8811106)
  • create shared EditorComponents library for tutorial UI consistency (4991a91)
  • create unified skill configuration interface with intuitive modes (fc79540)
  • disable NumberFlow animations for keyboard input to prevent jarring transitions (fe38bfc)
  • display pedagogical terms inline with current tutorial step (408eb58)
  • enable automatic live preview updates and improve abacus sizing (f680987)
  • enhance ChampionArena with integrated GameSelector and improved UX (aba3f68)
  • enhance column mapping for two-level highlighting (007d088)
  • enhance crop marks with edge-based positioning and comprehensive tests (8c7a5b1)
  • enhance GameCard with epic character celebration animations (b05189e)
  • enhance instruction generator with step bead highlighting and multi-step support (8518d90)
  • enhance memory quiz input phase for better learning experience (7c5556b)
  • enhance memory quiz with dynamic columns and adaptive transitions (aa1f674)
  • enhance navigation touch targets for mobile (6e09f21)
  • enhance pedagogical reasoning tooltips with comprehensive context (bb38c7c)
  • enhance steam train coal shoveling visual feedback (f26fce4)
  • enhance test page with lazy loading demo (5a8bb2f)
  • enhance tooltips with combined provenance and pedagogical content (0c7ad5e)
  • enhance tutorial system with multi-step progression support (3a63950)
  • enhance two-player matching game with multiple UX improvements (f35dcdc)
  • export bridge generator from core package (90a5c06)
  • export SVG processing functions from main module (bee866a)
  • extend provenance system for multi-column term tracking (013e8d5)
  • hide Next Action when at expected starting state for current step (aafee3a)
  • hide Next Action when current state matches step target (ed3d896)
  • hide redundant pedagogical expansions for simple problems (9d0e8c7)
  • hide timer bar for train variant only (84334f9)
  • implement 90s arcade sound system and tunnel digging mechanics (a43ab92)
  • implement actual abacus SVG generation for README examples (6e02102)
  • implement authentic adjacent bead spacing for realistic abacus appearance (f28256d)
  • implement clean background glow for term-to-column highlighting (ec030f0)
  • implement colorblind-friendly color palettes with mnemonic support (faf578c)
  • implement complete smart number entry system for quiz (150c195)
  • implement comprehensive bead diff tooltips with pedagogical decomposition (2e3223d)
  • implement comprehensive character integration for /games arcade (26bf399)
  • implement comprehensive customization API for AbacusReact (48f6e77)
  • implement comprehensive pedagogical algorithm improvements (72d9362)
  • implement comprehensive pedagogical expansion tests for abacus operations (5d39bdc)
  • implement context-aware English instruction generation (bd3f144)
  • implement CSS-based hidden inactive beads with smooth opacity transitions (ff42bcf)
  • implement dynamic bead diff algorithm for state transitions (c43090a)
  • implement dynamic train orientation following curved path direction (e6065e8)
  • implement elegant between-step hover-based add functionality (89a0239)
  • implement endless route progression system (a2b3e97)
  • implement enhanced tactile drag and drop arena with dnd-kit (4b840e9)
  • implement fair scoring algorithm for card sorting challenge (ee7a5e4)
  • implement global abacus display configuration and remove client-side SVG generation (5c3231c)
  • implement HoverCard-based tooltip with enhanced UX and accessibility (7fef932)
  • implement interactive pedagogical reasoning with compact tooltips (2c09516)
  • implement interactive place value editing with NumberFlow animations (684e624)
  • implement intuitive directional gesture system for abacus beads (7c104f3)
  • implement learner-friendly pedagogical tooltips with plain language (01ed22c)
  • implement modal dialogs with fullscreen support for challenges (9b6cabb)
  • implement native place-value architecture for AbacusReact (3055f32)
  • implement physical abacus logic and fix numeral coloring regression (5e3d799)
  • implement precise inline highlighting of pedagogical terms (538d356)
  • implement progressive enhancement with minimal loading states (7e1ce8d)
  • implement progressive multi-step instruction system in AbacusReact (9195b9b)
  • implement proper SVG transform accumulation for crop mark viewBox calculation (03230a2)
  • implement provenance system for pedagogical term tracking (37b5ae8)
  • implement React abacus component with independent heaven/earth beads (528cac5)
  • implement real SVG generation from Python bridge in preview API (4b90d12)
  • implement realistic abacus drag mechanics (86cbbc8)
  • implement revolutionary drag-and-drop champion arena interface (dbf61c4)
  • implement semantic summarizer for pedagogical tooltips (d1f1bd6)
  • implement sequential addition problem generation with skill-aware logic (205badb)
  • implement skill-based practice step editor system (9a3afb1)
  • implement smart help detection for Next Action display (933b948)
  • implement smart tooltip positioning to avoid covering active beads (e104033)
  • implement two-level column highlighting in tutorial player (bada299)
  • implement type-safe place-value API for bead highlighting (9b6991e)
  • implement unified step positioning for tutorial editor (6aac8f2)
  • improve bead interaction handlers for place-value system (34b9517)
  • improve celebration tooltip positioning to last moved bead (91c5e58)
  • improve pedagogical decomposition to break down by place value (4c75211)
  • improve preview number selection for better variety demonstration (3eb053f)
  • improve sorting game UX with visual cues and auto-selection (a943ceb)
  • improve visual appearance with dynamic rod bounds and better spacing (6c95538)
  • initialize CHANGELOG.md for semantic release tracking (5dcee6b)
  • integrate bead diff algorithm with tutorial editor (472bdf8)
  • integrate guided addition tutorial into guide page (b82a8f1)
  • integrate memory pairs game with arena champions and N-player support (d9f07d7)
  • integrate MemoryPairs game with global GameModeContext (022dca6)
  • integrate NumberFlow for smooth animated number display (e330d35)
  • integrate pytest testing with make targets (8c15d06)
  • integrate typst.ts for browser-native SVG generation (c703a3e)
  • integrate unified skill configuration interface into practice step editor (9305f11)
  • integrate unified step generator into tutorial editor UI (88059b2)
  • make success notification prominent but non-blocking (7278590)
  • migrate all app abaci to browser-side generation (9be52ac)
  • move progressive test stories to web app with real instruction generator integration (9d568e3)
  • optimize games page for mobile devices (eb7202d)
  • optimize memory quiz layout for better viewport usage (2f0c0fe)
  • optimize mobile viewport configuration (476f0fb)
  • optimize Next.js webpack configuration for WASM (39b6e5a)
  • optimize showNumbers layout with three modes and visual improvements (77dc470)
  • polish interactive abacus with column-based digit display (ad11e3d)
  • redesign memory game with invisible input and penalty scoring (b92a867)
  • regenerate Panda CSS styles for memory quiz and other components (b8361ee)
  • remove normalizeBeadHighlight conversion layer (6200204)
  • reorganize main page into navigable sectioned layout (4d179b5)
  • replace Champion Arena with Enter Arcade button (2b98382)
  • replace inline success message with stunning floating overlay (43f02eb)
  • replace legacy abacus components with new AbacusReact (2a6a010)
  • replace manual dropdown with Radix UI for proper state management (bf050fa)
  • replace single-column results with persistent card grid layout (30ae6e1)
  • replace tutorial player arrows with dynamic bead diff algorithm (e8fe467)
  • restore steam train journey enhancements (045dc9f)
  • revolutionary single-element editable NumberFlow with live abacus updates (4bccd65)
  • set up monorepo structure with pnpm workspaces and Turborepo (62e941e)
  • streamline practice step editor by removing redundant preview section (beaf3f0)
  • switch tooltip system from Tooltip to HoverCard for better interactivity (861904f)
  • transform tooltip into celebration when step completed (057f71e)
  • update ReasonTooltip UI to prioritize semantic summaries (6fb0384)

Performance Improvements

  • debounce value change events during rapid gesture interactions (82e15a1)
  • eliminate loading flash with delayed loading state (c70a390)
  • optimize tutorial abacus highlighting calculation (3490f39)
  • optimize TutorialEditor TutorialPlayer prop calculations (8e81d25)
  • speed up bead animations for fast abacus calculations (1303c93)

Semantic Release