Commit graph

52 commits

Author SHA1 Message Date
matt
83fe527979 fix(lint): improved type checking and code quality (77% error reduction) 2025-10-31 08:18:09 -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
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
8435312c8f feat: migrate to unified Parquet format with instant GitHub setup and 4x faster tagging 2025-10-18 21:32:12 -07:00
matt
bec984ce3e Add colorless commander filtering and display fixes 2025-10-16 11:20:27 -07:00
matt
9ab3835e2a feat: stage reordering, skip controls, quick build, and commander session cleanup 2025-10-14 16:09:58 -07:00
matt
4a8d71b16b feature: add non-basic land types to tagging mechanics 2025-10-13 15:07:31 -07:00
matt
0dd5b4cf64 maintenance: cleaned up, consolidated, and refined codebase for tagging 2025-10-12 21:26:37 -07:00
matt
f2863ef362 feat: complete protection scope filtering with pool limiting 2025-10-09 17:29:57 -07:00
matt
d416c9b238 feat: Added Partners, Backgrounds, and related variation selections to commander building. 2025-10-06 09:17:59 -07:00
matt
9428e09cef feat: add supplemental theme catalog tooling, additional theme selection, and custom theme selection 2025-10-03 10:43:24 -07:00
matt
88cf832bf2 Finalize MDFC follow-ups, docs, and diagnostics tooling
document deck summary DFC badges, exporter annotations, and per-face metadata across README/DOCKER/release notes

record completion of all MDFC roadmap follow-ups and add the authoring guide for multi-face CSV entries

wire in optional DFC_PER_FACE_SNAPSHOT env support, exporter regression tests, and diagnostics updates noted in the changelog
2025-10-02 15:31:05 -07:00
matt
49f1f8b2eb feat(random): finalize multi-theme telemetry and polish
Some checks failed
Editorial Lint / lint-editorial (push) Has been cancelled
- document random theme exclusions, perf guard tooling, and roadmap completion

- tighten random reroll UX: strict theme persistence, throttle handling, export parity, diagnostics updates

- add regression coverage for telemetry counters, multi-theme flows, and locked rerolls; refresh README and notes

Tests: pytest -q (fast random + telemetry suites)
2025-09-26 18:15:52 -07:00
matt
73685f22c8 feat(random): multi-theme groundwork, locked reroll export parity, duplicate export fix, expanded diagnostics and test coverage 2025-09-25 15:14:15 -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
947adacfe2 test: convert tests to pytest assertions; add server-availability skips; clean up warnings and minor syntax/indent issues 2025-09-12 10:50:57 -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
3e4395d6e9 feat: complete include/exclude observability, fix validation bugs, and organize tests
- Add structured logging for include/exclude operations with comprehensive event tracking
- Fix duplicate counting bug in validation API by eliminating double validation passes
- Simplify color identity validation UX by consolidating into single 'illegal' status
- Organize project structure by moving all test files to centralized code/tests/ directory
- Update documentation reflecting feature completion and production readiness
- Add validation test scripts and performance benchmarks confirming targets met
- Finalize include/exclude feature as production-ready with EDH format compliance
2025-09-09 20:18:03 -07:00
matt
f77bce14cb feat: add structured logging for include/exclude decisions 2025-09-09 19:13:01 -07:00
matt
cfcc01db85 feat: complete M3 Web UI Enhancement milestone with include/exclude cards, fuzzy matching, mobile responsive design, and performance optimization
- Include/exclude cards feature complete with 300+ card knowledge base and intelligent fuzzy matching
- Enhanced visual validation with warning icons and performance benchmarks (100% pass rate)
- Mobile responsive design with bottom-floating controls, two-column layout, and horizontal scroll prevention
- Dark theme confirmation modal for fuzzy matches with card preview and alternatives
- Dual architecture support for web UI staging system and CLI direct build paths
- All M3 checklist items completed: fuzzy match modal, enhanced algorithm, summary panel, mobile responsive, Playwright tests
2025-09-09 18:15:30 -07:00
matt
0516260304 feat: Add include/exclude card lists feature with web UI, validation, fuzzy matching, and JSON persistence (ALLOW_MUST_HAVES=1) 2025-09-09 09:36:17 -07:00
matt
668f1a7185 chore:fixing cli build due to missing variable in build phase 5 and the headless_runner not doing setup/tagging automatically 2025-09-05 12:46:49 -07:00
matt
375349e56e release: 2.2.6 – refresh bracket list JSONs; finalize brackets compliance docs and UI polish 2025-09-04 19:28:48 -07:00
mwisnowski
4e03997923 Bracket enforcement + inline gating; global pool prune; compliance JSON artifacts; UI combos gating; compose envs consolidated; fix YAML; bump version to 2.2.5 2025-09-03 18:00:06 -07:00
mwisnowski
fe9aabbce9 chore(release): v2.2.3 - fixed bug causing basic lands to not be added; updated removal tagging logic causing non-removal cards to be tagged due to wording 2025-09-01 20:20:04 -07:00
mwisnowski
6c48fb3437 feat(combos): add Combos & Synergies detection, chip-style UI with dual hover; JSON persistence and headless honoring; stage ordering; docs and tests; bump to v2.2.1 2025-09-01 16:55:24 -07:00
matt
341a216ed3 feat(web): Multi-Copy modal earlier; Multi-Copy stage before lands; bump version to 2.1.1; update CHANGELOG\n\n- Modal triggers after commander selection (Step 2)\n- Multi-Copy applied first in Step 5, lands next\n- Keep mc_summary/clamp/adjustments wiring intact\n- Tests green 2025-08-29 09:19:03 -07:00
matt
721e1884af feat: locks/replace/compare/permalinks; perf: virtualization, LQIP, caching, diagnostics; add tests, docs, and issue/PR templates (flags OFF) 2025-08-28 14:57:22 -07:00
matt
8d1f6a8ac4 feat(web,docs): visual summaries (curve, pips/sources incl. 'C', non‑land sources), tooltip copy, favicon; diagnostics (/healthz, request‑id, global handlers); fetches excluded, basics CSV fallback, list highlight polish; README/DOCKER/release-notes/CHANGELOG updated 2025-08-26 20:00:07 -07:00
mwisnowski
625f6abb13 Web/builder: Owned stability+enrichment+exports; prefer-owned toggle & bias; staged build show-skipped; UI polish; docs update 2025-08-26 16:25:34 -07:00
mwisnowski
fd7fc01071 Web + backend: propagate tag_mode (AND/OR) end-to-end; AND-mode overlap prioritization for creatures and theme spells; headless configs support tag_mode; add Scryfall attribution footer and configs UI indicators; minor polish. (#and-overlap-pass) 2025-08-26 11:34:42 -07:00
mwisnowski
0f73a85a4e Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows 2025-08-26 09:48:25 -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
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
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
mwisnowski
6fc859b766 Planned first release 2025-08-21 10:50:22 -07:00
mwisnowski
661bf236d9 Preperly functional Docker instance created and working 2025-08-21 10:28:10 -07:00
mwisnowski
0135eeeb3d Finished modularization with assistance from Github copilot 2025-08-21 08:40:31 -07:00
mwisnowski
d9b56d8e12 Add text file export along with csv, for easy import into moxfield or other deck building sites 2025-08-20 11:17:51 -07:00
mwisnowski
760c36d75d With assistance from Github CoPilot, massively overhauled the builder functionality, splitting it into smaller modules to provide a better step-by-step focus and drastically reduce the overall size of the core builder module 2025-08-20 10:46:23 -07:00
mwisnowski
ff1912f979 Enacted some cleanup of builder.py. moved Imports to the top and cut out duplicate code/moved it to builder_utils.py 2025-08-19 15:00:28 -07:00
mwisnowski
b7ee6ea57d Finished core deck builder. Still need to do cleanup, implement cards that are not singleton, and pricing 2025-08-19 14:15:23 -07:00
mwisnowski
8478bc2534 Implemented logic for adding creatures by themes, with weighted values. Added logic for keeping track of how many cards with what themes have been added as well 2025-08-19 10:18:53 -07:00
mwisnowski
411f042af8 Builder tool has been restrcutured up through adding lands, still a bit of cleanup to do, but will come back after other parts 2025-08-19 09:00:51 -07:00
mwisnowski
a8a181c4af Started remaking the builder module, Currently up through adding the standard/staple lands 2025-08-18 11:58:25 -07:00
mwisnowski
a69a4c8384 Started work on redoing the builder module, moved existing code to new dir and setup new builder.py file 2025-08-15 10:11:56 -07:00
mwisnowski
dd04dd0505 Revert "Massively overhauled the tagging process, refactored code to improve general effeciciency, implemented parallel processing to reduce total runtime"
This reverts commit 27ee13fb54.
2025-08-15 10:04:19 -07:00
mwisnowski
039b8fe89e Consolidated constants that are duplicated in various constant files. Implemented dataclass methodoligies for tagging counter-related cards tagging 2025-08-15 09:36:37 -07:00