Commit graph

305 commits

Author SHA1 Message Date
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
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
4cf3969ae6 chore: prepare release 2.9.0 2025-10-17 17:17:20 -07:00
mwisnowski
49eabce19d
Merge pull request #44 from mwisnowski/fix/github-action-module-path
Fix/GitHub action module path
2025-10-17 17:13:11 -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
b26057f68d fix: allow similarity cache files in card_files directory
Added .gitignore exceptions for:
- card_files/similarity_cache.parquet
- card_files/similarity_cache_metadata.json

These files need to be committed to the similarity-cache-data branch
for distribution with Docker builds.
2025-10-17 16:54:51 -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
mwisnowski
951f5ef45a
Merge pull request #43 from mwisnowski/feature/card-browser
Feature/card browser
2025-10-17 16:22:47 -07:00
matt
c2960c808e Add card browser with similar cards and performance optimizations 2025-10-17 16:17:36 -07:00