undef-engine 2025-12-25
Dixit game, spectator content registry, and WebSocket improvements
644 files · 57,295+ · 23,908-

ActionDispatcher Pattern

6 files changed
  • common_actions.py Python module common_actions
  • __init__.py Python module __init__
  • lobby_settings.py Python module lobby_settings
  • profile.py Python module profile
  • spectators.py E2E test for spectators
  • test_websocket_race_conditions.py Test file for websocket_race_conditions
  • Implemented ActionDispatcher for WebSocket routing (Phase 4) interface internal
    4 files
    • BROWSER_E2E_TEST.md
    • MULTI_BROWSER_PLAYWRIGHT_WORKFLOW.md
    • BROWSER_TESTING_PRIMER.md
    • NavigationArrows.tsx
  • Removed old handler functions, using dispatchers only decouple internal
    4 files
    • common_actions.py
    • ActionButtons.tsx
    • ReactionPanel.tsx
    • RoomActionBar.tsx

CAW Phase Components

6 files changed
  • split_caw_packs.py Python module split_caw_packs
  • flow.py Python module flow
  • interactive.py Python module interactive
  • npc.py Python module npc
  • packs.py Python module packs
  • state.py Python module state
  • Decomposed CawBoard into phase components: CawCzarPicks, CawCzarReads, CawGameOver, CawLobby, CawPlayersSubmit, CawRoundWrapUp decouple internal
    4 files
    • CAW_UX_FEEDBACK.md
    • HANDOFF-caw-npc-auto-play.md
    • CawBoard.tsx
    • CawCard.tsx
  • Added CAW preferences store for user settings baseline internal
    4 files
    • CAW_UX_FEEDBACK.md
    • HANDOFF-caw-npc-auto-play.md
    • CawBoard.tsx
    • CawCard.tsx
  • Reduced main CawBoard.tsx by ~863 lines decouple internal
    4 files
    • CAW_UX_FEEDBACK.md
    • HANDOFF-caw-npc-auto-play.md
    • CawBoard.tsx
    • CawCard.tsx

Testing: Frontend Component Tests

6 files changed
  • split_caw_packs.py Python module split_caw_packs
  • flow.py Python module flow
  • interactive.py Python module interactive
  • npc.py Python module npc
  • packs.py Python module packs
  • state.py Python module state
  • Added CawBoard tests qualify internal
    4 files
    • BROWSER_E2E_TEST.md
    • COMPREHENSIVE_E2E_TEST_ROUND2.md
    • HIVE_MIND_E2E_TEST.md
    • SPECTATOR_TEST_REPORT.md
  • Added BluffaloBoard component tests (29 tests) qualify internal
    4 files
    • BROWSER_E2E_TEST.md
    • COMPREHENSIVE_E2E_TEST_ROUND2.md
    • HIVE_MIND_E2E_TEST.md
    • SPECTATOR_TEST_REPORT.md
  • Added CodebreakersBoard tests (with missing useRef fix) qualify internal
    4 files
    • BROWSER_E2E_TEST.md
    • COMPREHENSIVE_E2E_TEST_ROUND2.md
    • HIVE_MIND_E2E_TEST.md
    • SPECTATOR_TEST_REPORT.md
  • Added LiarsHandBoard component tests (24 tests) qualify internal
    4 files
    • BROWSER_E2E_TEST.md
    • COMPREHENSIVE_E2E_TEST_ROUND2.md
    • HIVE_MIND_E2E_TEST.md
    • SPECTATOR_TEST_REPORT.md
  • Added HotPotatoHeistBoard component tests (30 tests) qualify internal
    4 files
    • BROWSER_E2E_TEST.md
    • COMPREHENSIVE_E2E_TEST_ROUND2.md
    • HIVE_MIND_E2E_TEST.md
    • SPECTATOR_TEST_REPORT.md
6 files changed
  • group.py Python module group
  • npc.py Python module npc
  • __init__.py Python module __init__
  • blueprint.py Python module blueprint
  • handler.py Python module handler
  • hooks_class.py Python module hooks_class
  • Updated GameBoardRouter with new game routing instantiate internal
    4 files
    • GameBoard.tsx
    • GameBoardRouter.tsx
    • AnswerSelectionSection.tsx
    • GameBoardHeader.tsx
  • Updated SettingsPage decouple internal
    4 files
    • SettingsPage.tsx
    • AdvancedSettingsModal.tsx
    • QuickSettingsModal.tsx
    • settings.ts
  • Updated Codebreakers board decouple internal
    4 files
    • CodebreakersBoard.tsx
    • WordGrid.tsx
    • index.ts
    • CodebreakersBoard.test.tsx