undef-engine
2025-11-14
Decompose monolithic server into modular handlers and add session persistence
119 files · 24,203+ · 2,419-
Server module decomposition
8 files changed
game_handlers_judge.pyJudge-specific game action handlers extracted from main.pygame_handlers_player.pyPlayer-specific game action handlersgame_utils.pyShared game utility functionsroutes.pyHTTP route definitions separated from mainsession_store.pyPersistent game session management layermain.pyReduced main.py after handler extractionconfig.pyImproved server configuration moduledefaults.pyUpdated server defaults
- Split server/main.py into separate modules for judge handlers, player handlers, game utils, and routes
decouple
architectural
5 files
game_handlers_judge.pygame_handlers_player.pygame_utils.pyroutes.pymain.py
- Created session_store.py for persistent game session management
instantiate
behavioral
1 file
session_store.py
Frontend state management and E2E testing
6 files changed
GameBoard.tsxEnhanced game board with better state handlingLobby.tsxImproved lobby componentRoomList.tsxUpdated room list componentuseWebSocket.tsMore robust WebSocket connection managementgameStore.tsRicher game state managementfull-game-5-players.spec.tsFull 5-player end-to-end game flow test
- Enhanced GameBoard, Lobby, and RoomList components with better state handling
streamline
internal
3 files
GameBoard.tsxLobby.tsxRoomList.tsx
- Improved WebSocket hook with more robust connection management
harden
internal
1 file
useWebSocket.ts
- Added full 5-player E2E test spec for complete game flow
qualify
behavioral
1 file
full-game-5-players.spec.ts
Backend WebSocket and test improvements
4 files changed
ws_manager.pyImproved WebSocket connection trackingtest_models.pyUpdated model testsws_client.pyWebSocket test clientws_room_prep.pyRoom preparation test utilities
- Updated WebSocket manager with improved connection tracking
streamline
internal
1 file
ws_manager.py
- Added WebSocket test utilities for integration testing
qualify
internal
3 files
ws_client.pyws_client_interactive.pyws_room_prep.py