mwisnowski
1aa8e4d7e8
feat: revamp multicopy flow with include/exclude conflict dialogs ( #60 )
...
CI / build (push) Has been cancelled
* feat: revamp multicopy flow with include/exclude conflict dialogs
* feat: revamp multicopy flow with include/exclude conflict dialogs
2026-03-21 19:39:51 -07:00
mwisnowski
4aa41adb20
feat: add RandomService, seed diagnostics endpoint, and random mode docs ( #59 )
CI / build (push) Waiting to run
2026-03-20 21:03:17 -07:00
matt
7e5a29dd74
chore: prepare release 4.1.0
CI / build (push) Waiting to run
2026-03-20 13:11:03 -07:00
matt
fadb05c592
fix: remove leading spaces from Blood and Hone counter types
2026-03-20 12:38:09 -07:00
matt
3b35a0f2c7
fix: remove duplicate Path import shadowing module-level import in theme stripping
CI / build (push) Waiting to run
Editorial Lint / lint-editorial (push) Has been cancelled
2026-03-20 12:07:07 -07:00
mwisnowski
94a43e9273
feat: add pool size badges, sorting, and optional sections to theme picker ( #58 )
2026-03-20 12:00:39 -07:00
mwisnowski
8efdc77c08
feat: add theme quality, pool size, and popularity badges with filtering ( #56 )
2026-03-20 09:03:20 -07:00
mwisnowski
03e2846882
feat: implement theme stripping system with THEME_MIN_CARDS config ( #55 )
...
CI / build (push) Waiting to run
* feat: implement theme stripping system with THEME_MIN_CARDS config
* fix: call build_catalog directly to avoid argparse conflicts in CI
2026-03-19 15:27:17 -07:00
mwisnowski
1ebc2fcb3c
feat: add theme editorial quality system with scoring, linting, and comprehensive documentation ( #54 )
CI / build (push) Waiting to run
Editorial Lint / lint-editorial (push) Waiting to run
2026-03-19 10:06:29 -07:00
matt
de8087d940
fix: update minimatch to 9.0.9 to resolve ReDoS vulnerabilities
CI / build (push) Has been cancelled
2026-03-17 18:10:44 -07:00
matt
a0b7eec0b1
chore: track package.json, package-lock.json, tsconfig.json for Docker build
2026-03-17 17:50:33 -07:00
matt
0ccb05f792
chore: prepare release 4.0.1
2026-03-17 17:44:56 -07:00
matt
9fc90ed27d
merge: backend standardization refactor into main
2026-03-17 17:36:23 -07:00
matt
f23c0dbf2c
refactor: error handling integration and testing standards
2026-03-17 17:29:14 -07:00
matt
f784741416
refactor: backend standardization (service layer, validation, route splitting) + image cache and Scryfall API fixes
2026-03-17 16:34:50 -07:00
matt
e81b47bccf
refactor: modular route organization (Phase 1-2 complete)
...
- Split monolithic build route handler into focused modules
- Extract validation, multi-copy, include/exclude, themes, and partner routes
- Add response utilities and telemetry decorators
- Create route pattern documentation
- Fix multi-copy detection bug (tag key mismatch)
- Improve code maintainability and testability
Roadmap 9 M1 Phase 1-2
2026-03-03 21:49:08 -08:00
matt
97da117ccb
refactor(ci): use temporary branch for cache builds
...
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
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
...
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
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
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