mantimon-tcg/backend
Cal Corum 55e02ceb21 Replace silent error hiding with explicit failures
Three changes to fail fast instead of silently degrading:

1. GameService.create_game: Raise GameCreationError when energy card
   definition not found instead of logging warning and continuing.
   A deck with missing energy cards is fundamentally broken.

2. CardService.load_all: Collect all card file load failures and raise
   CardServiceLoadError at end with comprehensive error report. Prevents
   startup with partial card data that causes cryptic runtime errors.
   New exceptions: CardLoadError, CardServiceLoadError

3. GameStateManager.recover_active_games: Return RecoveryResult dataclass
   with recovered count, failed game IDs with error messages, and total.
   Enables proper monitoring and alerting for corrupted game state.

Tests added for energy card error case. Existing tests updated for
new RecoveryResult return type.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:48:06 -06:00
..
app Replace silent error hiding with explicit failures 2026-01-29 18:48:06 -06:00
data Simplify card image URLs to use set-based paths 2026-01-27 16:16:51 -06:00
project_plans Implement GameService.execute_action enhancements (GS-003) 2026-01-29 15:15:34 -06:00
references Switch to testcontainers for automatic test container management 2026-01-28 16:49:11 -06:00
scripts Simplify card image URLs to use set-based paths 2026-01-27 16:16:51 -06:00
tests Replace silent error hiding with explicit failures 2026-01-29 18:48:06 -06:00
.env.example Add database infrastructure with SQLAlchemy models and test suite 2026-01-27 10:17:30 -06:00
.gitignore Add backend foundation with uv, Black, and pre-commit hooks 2026-01-24 00:12:33 -06:00
.python-version Add backend foundation with uv, Black, and pre-commit hooks 2026-01-24 00:12:33 -06:00
alembic.ini Add database infrastructure with SQLAlchemy models and test suite 2026-01-27 10:17:30 -06:00
CLAUDE.md Refactor to dependency injection pattern - no monkey patching 2026-01-28 22:54:57 -06:00
docker-compose.yml Implement Phase 2: Authentication system 2026-01-27 21:49:59 -06:00
PROJECT_PLAN_MASTER.json Update project plans and documentation for Phase 3 completion 2026-01-28 15:26:01 -06:00
pyproject.toml Add Phase 4 WebSocket infrastructure (WS-001 through GS-001) 2026-01-28 22:21:20 -06:00
uv.lock Implement Phase 2: Authentication system 2026-01-27 21:49:59 -06:00