feat(themes): whitelist governance, synergy cap, docs + tests; feat(random): laid roadwork for random implementation, testing in headless confirmed

This commit is contained in:
matt 2025-09-17 13:23:27 -07:00
parent 03e839fb87
commit 16261bbf09
34 changed files with 12594 additions and 23 deletions

View file

@ -1,14 +1,16 @@
# MTG Python Deckbuilder ${VERSION}
### Added
- CI improvements to increase stability and reproducibility of builds/tests.
- Expanded test coverage for validation and web flows.
- Theme whitelist governance (`config/themes/theme_whitelist.yml`) with normalization, enforced synergies, and synergy cap (5).
- Expanded curated synergy matrix plus PMI-based inferred synergies (data-driven) blended with curated anchors.
- Test: `test_theme_whitelist_and_synergy_cap.py` validates enforced synergy presence and cap compliance.
- PyYAML dependency for governance parsing.
### Changed
- Tests refactored to use pytest assertions and streamlined fixtures/utilities to reduce noise and deprecations.
- HTTP-dependent tests skip gracefully when the local web server is unavailable.
- Theme normalization (ETB -> Enter the Battlefield, Self Mill -> Mill, Pillow Fort -> Pillowfort, Reanimator -> Reanimate) applied prior to synergy derivation.
- Synergy output capped to 5 entries per theme (curated > enforced > inferred ordering).
### Fixed
- Reduced deprecation warnings and incidental test failures; improved consistency across runs.
- Removed ultra-rare themes (frequency <=1) except those protected/always included via whitelist.
---