Commit graph

42 commits

Author SHA1 Message Date
matt
345dfb3e01 perf: improve commander selection speed and fix color identity display 2025-10-19 13:29:47 -07:00
matt
bff64de370 fix: systematically handle numpy arrays from Parquet files across codebase
- Add ensure_theme_tags_list() utility to builder_utils for simpler numpy array handling
- Update phase3_creatures.py: 6 locations now use bu.ensure_theme_tags_list()
- Update phase4_spells.py: 9 locations now use bu.ensure_theme_tags_list()
- Update tagger.py: 2 locations use hasattr/list() for numpy compatibility
- Update extract_themes.py: 2 locations use hasattr/list() for numpy compatibility
- Fix build-similarity-cache.yml verification script to handle numpy arrays
- Enhance workflow debug output to show complete row data

Parquet files return numpy.ndarray objects for array columns, not Python lists.
The M4 migration added numpy support to canonical parse_theme_tags() in builder_utils,
but many parts of the codebase still used isinstance(list) checks that fail with arrays.
This commit systematically replaces all 19 instances with proper numpy array handling.

Fixes GitHub Actions workflow 'RuntimeError: No theme tags found' and verification failures.
2025-10-18 22:47:09 -07:00
matt
29b5da4778 fix: correct DataFrame column filtering and enhance debug output
- Fix KeyError in generate_theme_catalog.py: use isCommander column correctly
- DataFrame.get() doesn't work like dict.get() - use column name directly
- Enhanced debug step to print full row data for better diagnostics
2025-10-18 22:32:54 -07:00
matt
a689400c47 fix: add Path wrapper in workflow debug step 2025-10-18 22:27:13 -07:00
matt
30dfca0b67 fix: remove CSV fallback from theme catalog generation, add Parquet debug step
- Remove CSV fallback logic (Parquet-only in M4 migration)
- Add better error messages when Parquet file missing or empty
- Add workflow debug step to inspect Parquet file after tagging
- Simplify build_theme_catalog function signature
2025-10-18 22:22:35 -07:00
matt
0e19824372 fix: use generate_theme_catalog script instead of non-existent function 2025-10-18 22:07:48 -07:00
matt
3694a5382d fix: ensure theme catalog is generated before similarity cache build 2025-10-18 21:57:45 -07:00
matt
8e8b788091 fix: add detailed tag validation to CI workflow 2025-10-18 21:56:23 -07:00
mwisnowski
74eb47e670
Change tagging step to run in parallel 2025-10-18 21:37:07 -07:00
matt
8435312c8f feat: migrate to unified Parquet format with instant GitHub setup and 4x faster tagging 2025-10-18 21:32:12 -07:00
matt
0cf7598400 fix: remove cache build dependency from dockerhub publish
Docker builds don't need to wait for cache building.
Cache is downloaded if available, skipped if not.
2025-10-17 17:20:17 -07:00
matt
86752b351b feat: optimize cache workflow with orphan branch and age check
- Create/use orphan branch 'similarity-cache-data' for cache distribution
- Add age check to dockerhub-publish: only rebuild if cache >7 days old
- Use git add -f to force-add cache files (keeps .gitignore clean)
- Weekly scheduled builds will keep cache fresh automatically

This avoids rebuilding cache on every Docker publish while ensuring
cache is always reasonably fresh (<7 days old).
2025-10-17 17:11:04 -07:00
matt
fc911b818e fix: correct module path for all_cards.parquet generation in CI
Changed from non-existent code.web.services.card_loader to correct
code.file_setup.card_aggregator.CardAggregator module.

Fixes ModuleNotFoundError in build-similarity-cache workflow.
2025-10-17 16:41:44 -07:00
matt
c2960c808e Add card browser with similar cards and performance optimizations 2025-10-17 16:17:36 -07:00
matt
32638b9ec3 fix: use versioned release notes in GitHub release workflow 2025-10-14 17:04:22 -07:00
matt
db84c4d15d chore: prepare release 2.6.0 2025-10-13 10:26:29 -07:00
matt
bac509741e bugfix: continued further testing/fixing CI task 2025-10-06 10:01:22 -07:00
matt
d938439bbd bugfix: continued further testing/fixing CI task 2025-10-06 09:59:00 -07:00
matt
7679176414 bugfix: update editorial_governance to use small smaple set of themes instead of looking for the full library 2025-10-06 09:50:56 -07:00
matt
f68f8949e8 chore: fix imports in editorial_governance CI task causing it to fail from missing pytest 2025-10-06 09:26:49 -07:00
matt
fad6ceb13b ci: retire preview perf workflow 2025-09-30 16:20:05 -07:00
matt
cf66c1eab1 bugfix: added requirements_dev.txt to editorial_governance ci task to ensure pytest is installed for the task to run 2025-09-29 21:41:15 -07:00
matt
eb5281623a fix(ci): install httpx and run pytest via python -m 2025-09-27 16:01:44 -07:00
matt
a029d430c5 feat(web): Core Refactor Phase A — extract sampling and cache modules; add adaptive TTL + eviction heuristics, Redis PoC, and metrics wiring. Tests added for TTL, eviction, exports, splash-adaptive, card index, and service worker. Docs+roadmap updated. 2025-09-24 13:57:23 -07:00
matt
c4a7fc48ea feat(preview): sampling, metrics, governance, server mana data
Preview endpoint + fast caches; curated pins + role quotas + rarity/overlap tuning; catalog+preview metrics; governance enforcement flags; server mana/color identity fields; docs/tests/scripts updated.
2025-09-23 09:19:23 -07:00
matt
6d6243d6be feat(tagging+archetypes): add Pillowfort/Politics/Midrange/Toolbox tagging and unify archetype presence skip logic 2025-09-19 11:53:52 -07:00
matt
f2a76d2ffc feat(editorial): Phase D synergy commander enrichment, augmentation, lint & docs\n\nAdds Phase D editorial tooling: synergy-based commander selection with 3/2/1 pattern, duplicate filtering, annotated synergy_commanders, promotion to minimum examples, and augmentation heuristics (e.g. Counters Matter/Proliferate injection). Includes new scripts (generate_theme_editorial_suggestions, lint, validate, catalog build/apply), updates orchestrator & web routes, expands CI workflow, and documents usage & non-determinism policies. Updates lint rules, type definitions, and docker configs. 2025-09-18 10:59:20 -07:00
matt
16261bbf09 feat(themes): whitelist governance, synergy cap, docs + tests; feat(random): laid roadwork for random implementation, testing in headless confirmed 2025-09-17 13:23:27 -07:00
matt
07a92eb47f chore(release): v2.2.9 misc land variety, land alternatives randomization, scroll flicker fix 2025-09-10 16:20:38 -07:00
matt
a9a9350aa0 chore(release): v2.2.8 version bump and changelog scaffold 2025-09-10 09:47:38 -07:00
matt
73d48567b6 fix(docker): seed all default card list JSONs & brackets.yml; update changelog 2025-09-10 08:53:00 -07:00
matt
2bc23cda4a chore(ci): exclude latest-* arch suffix tags from per-arch pushes 2025-09-10 08:32:59 -07:00
matt
45658d0b72 chore(release): v2.2.7 2025-09-10 08:01:51 -07:00
mwisnowski
014bcc37b7 web: DRY Step 5 and alternatives (partial+macro), centralize start_ctx/owned_set, adopt builder_* 2025-09-02 11:39:14 -07:00
matt
be672ac5d2 release: default to Web UI in Docker image, add HEALTHCHECK and APP_VERSION; CI smoke test; compose docs and dockerhub compose file 2025-08-28 20:40:19 -07:00
mwisnowski
8fa040a05a build(windows): fix PyInstaller packaging\n\n- Add spec file with hiddenimports and data dirs\n- Use spec in release workflow; fallback to --paths code\n- Insert ./code into sys.path when frozen to resolve local imports 2025-08-25 09:57:02 -07:00
mwisnowski
acfb29cafb feat(owned-cards): add owned-only workflow, multi-file parsing, and recommendations export\n\n- Prompt to use only owned cards (gated by presence of lists)\n- Support .txt/.csv owned lists, multi-select; commander exempt\n- Owned-only filtering + add guard; recommendations CSV/TXT when incomplete\n- CSV Owned column when not owned-only\n- Docs and Docker updated (owned_cards + config mounts)\n- CI: Windows EXE on tag; Docker Hub tag fix (no major.minor)\n- Changelog added; RELEASE_NOTES.md ignored 2025-08-25 09:48:05 -07:00
matt
5f922835a6 chore(release): v1.1.2 bump, notes/template + README updates, Docker Hub description updater, headless/docs tweaks 2025-08-23 15:29:45 -07:00
matt
fd2530cea3 Release v1.1.1: headless README flags + DockerHub notes auto from template 2025-08-22 16:46:44 -07:00
matt
99005c19f8 Release v1.1.0: headless runner + tagging updates (Discard Matters, Freerunning, Craft, Spree, Explore/Map, Rad, Energy/Resource Engine, Spawn/Scion) 2025-08-22 16:32:39 -07:00
matt
36abbaa1dd include workflow 2025-08-21 17:01:36 -07:00
matt
cb710d37ed feat!: auto-setup/tagging; direct builder + rerun prompt; fix(type-summary, .txt dup); refactor(export filenames); ci(DockerHub+GH releases); docs(minimal Windows guide, release notes template) 2025-08-21 17:01:21 -07:00