Commit graph

313 commits

Author SHA1 Message Date
matt
97da117ccb refactor(ci): use temporary branch for cache builds
Some checks failed
CI / build (push) Has been cancelled
- Create unique temp branch (temp-cache-build-<run-id>) for each build
- Prevents any artifacts on main branch
- Auto-cleanup after successful push to similarity-cache-data
- Maintains clean git history
2026-02-20 12:47:27 -08:00
matt
048102c171 fix: workflow now pushes cache directly without branch checkout
Simplified similarity cache workflow to avoid Git overwriting fresh files:
- Build cache on main branch
- Create commit with git plumbing commands
- Push directly to similarity-cache-data branch ref
- No checkout needed, preventing file overwrites
2026-02-20 12:42:53 -08:00
mwisnowski
fa8f60035b
fix: delete stale raw parquet before auto-refresh (#53)
* fix: delete stale raw parquet before auto-refresh

When auto-refresh triggers, remove cached raw file to ensure fresh
MTGJSON download instead of reprocessing old data.

* docs: update changelog and release notes for stale data fix
2026-02-20 12:22:47 -08:00
mwisnowski
65680fb920
Merge pull request #52 from mwisnowski/chore/cleanup-debug-workflow
chore: comment out debug step in similarity cache workflow
2026-02-20 11:49:53 -08:00
matt
b2ccbbd664 chore: comment out debug step in similarity cache workflow
The debug step was helpful for diagnosing numpy array issues but is no longer needed for normal operation. Commented out rather than removed so it's available if needed for future troubleshooting.
2026-02-20 11:48:40 -08:00
mwisnowski
33791c93e8
Merge pull request #51 from mwisnowski/maintenance/test-consolidation
chore(tests): consolidate test suite from 148 to 87 files (41% reduction)
2026-02-20 11:40:25 -08:00
matt
c75f37603f fix(tests): add missing comprehensive test files and fix gitignore
The comprehensive test files were not committed due to .gitignore pattern 'test_*.py' blocking all test files. Fixed gitignore to only exclude root-level test scripts.
2026-02-20 11:33:41 -08:00
matt
c72f581ce7 chore(tests): consolidate test suite from 148 to 87 files (41% reduction)
Merged overlapping test coverage into comprehensive modules, updated CI/CD workflows, maintained 100% pass rate.
2026-02-20 11:26:34 -08:00
matt
0dd69c083c removed unneeded test in project root
Some checks failed
CI / build (push) Has been cancelled
Editorial Lint / lint-editorial (push) Has been cancelled
2025-11-07 10:18:53 -08:00
mwisnowski
c5774a04f1
Merge pull request #50 from mwisnowski/maintenance/web-unification
Web UI Architecture Improvements: Modern Stack & Quality Enhancements
2025-11-07 09:24:25 -08:00
matt
e17dcf6283 feat(testing): add template validation suite and fix HTML structure issues 2025-11-04 10:08:49 -08:00
matt
40023e93b8 fix(lint): improved type checking and code maintainability 2025-10-31 10:11:00 -07:00
matt
83fe527979 fix(lint): improved type checking and code quality (77% error reduction) 2025-10-31 08:18:09 -07:00
matt
3c45a31aa3 refactor(web): finished JavaScript consolidation, tested JavaScript items, refined themes and color palettes, tested all themes and palettes, ensured all interactive lements use theme-aware css 2025-10-29 15:45:40 -07:00
matt
9379732eec refactor(web): consolidate inline JavaScript to TypeScript modules
Migrated app.js and components.js to TypeScript. Extracted inline scripts from base.html to cardHover.ts and cardImages.ts modules for better maintainability and code reuse.
2025-10-29 10:44:29 -07:00
matt
ed381dfdce refactor(web): remove legacy card hover system (~230 lines of dead code) 2025-10-28 17:35:47 -07:00
matt
6a94b982cb overhaul: migrated basic JavaScript to TypeScript, began consolidation efforts 2025-10-28 16:17:55 -07:00
matt
b994978f60 overhaul: migrated to tailwind css for css management, consolidated custom css, removed inline css, removed unneeded css, and otherwise improved page styling 2025-10-28 08:21:52 -07:00
mwisnowski
4802060fe1
Merge pull request #49 from mwisnowski/overhaul/json-plus-build-and-compare
Some checks failed
CI / build (push) Has been cancelled
Build X and Compare: Multi-Build Analysis & Synergy Deck Creation
2025-10-21 08:14:37 -07:00
matt
f1e21873e7 feat: implement batch build and comparison 2025-10-20 18:29:53 -07:00
matt
1d95c5cbd0 chore: prepare release v3.0.1
Some checks failed
CI / build (push) Has been cancelled
2025-10-19 14:07:55 -07:00
mwisnowski
a7f11a2261
Merge pull request #48 from mwisnowski/maintenance/commander-cache-improvements
Performance Improvements & Bug Fix
2025-10-19 14:05:17 -07:00
matt
d965410200 fix: add commander_cards.parquet to GitHub download 2025-10-19 13:58:19 -07:00
matt
345dfb3e01 perf: improve commander selection speed and fix color identity display 2025-10-19 13:29:47 -07:00
matt
454269daab chore: prepare release v3.0.0
Some checks are pending
CI / build (push) Waiting to run
2025-10-19 09:24:25 -07:00
mwisnowski
3769ad9186
Merge pull request #47 from mwisnowski/overhaul/csv-to-parquet-migration
Parquet Migration: Unified Data Format + Instant Setup
2025-10-19 09:19:06 -07:00
matt
505bbdf166 fix: handle numpy arrays in card_similarity parse_theme_tags
The similarity cache build was failing because parse_theme_tags() was checking isinstance(tags, list) but Parquet files return numpy.ndarray objects. This caused all cards to be flagged as having no theme tags, resulting in an empty cache.

Changed to use hasattr(__len__) check instead, which works for both lists and numpy arrays.
2025-10-19 08:26:20 -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
db0b0ccfdb fix: handle numpy arrays in parse_theme_tags
Parquet files return numpy arrays, not Python lists. Added conversion
from ndarray to list before processing theme tags.
2025-10-18 22:39:53 -07:00
matt
7a94e195b7 fix: remove incorrect import inside loop - functions are in same file 2025-10-18 22:36:45 -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
9e6c3e66e9 fix: update generate_theme_catalog to use processed/ directory 2025-10-18 22:11:46 -07:00
matt
0e19824372 fix: use generate_theme_catalog script instead of non-existent function 2025-10-18 22:07:48 -07:00
matt
5ebd3c829e fix: create tagging completion flag in processed directory 2025-10-18 22:02:12 -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
matt
e92f2ccfb4 fix: handle themeTags as list in similarity cache builder 2025-10-18 21:50:12 -07:00
matt
dec6e659b8 Merge branch 'overhaul/csv-to-parquet-migration' of https://github.com/mwisnowski/mtg_python_deckbuilder into overhaul/csv-to-parquet-migration 2025-10-18 21:43:20 -07:00
matt
b92918581e fix: use correct processed/ path for similarity cache building 2025-10-18 21:43:04 -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
mwisnowski
e9e949aae3
Merge pull request #46 from mwisnowski/maintenance/ui-user-friendliness
Some checks failed
CI / build (push) Has been cancelled
chore: prepare release v2.9.1
2025-10-17 18:51:33 -07:00
matt
be6e73347a chore: prepare release v2.9.1 2025-10-17 18:49:38 -07:00
mwisnowski
b5d11b30ef
Merge pull request #45 from mwisnowski/maintenance/ui-user-friendliness
feat(ui): add similar cards refresh button and reduce sidebar animati…
2025-10-17 18:41:40 -07:00
matt
0f4d165201 feat(ui): add similar cards refresh button and reduce sidebar animation distractions 2025-10-17 18:40:15 -07:00
matt
dfddf35b4e chore: alos include the updated dockerhub-docker-compose.yml 2025-10-17 18:04:55 -07:00
matt
23307c0d46 chore: sync docker-compose.yml and .env.example with dockerhub-docker-compose.yml 2025-10-17 18:04:32 -07:00
matt
fd240e2533 feat: bake similarity cache into Docker images
- Copy card_files/ to /.defaults/card_files/ during build
- Entrypoint checks for baked-in cache before downloading
- Fallback to GitHub download if not present in image
- Reduces startup time and bandwidth usage
2025-10-17 17:29:17 -07:00