diff --git a/.env.example b/.env.example index c01736e..c8ad1a5 100644 --- a/.env.example +++ b/.env.example @@ -13,7 +13,7 @@ # HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web). # PORT=8080 # Uvicorn port. # WORKERS=1 # Uvicorn worker count. -APP_VERSION=v2.6.1 # Matches dockerhub compose. +APP_VERSION=v2.7.0 # Matches dockerhub compose. ############################ # Theming diff --git a/CHANGELOG.md b/CHANGELOG.md index f0c04eb..50c779d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,19 @@ This format follows Keep a Changelog principles and aims for Semantic Versioning ## [Unreleased] ### Summary +_No unreleased changes yet._ + +### Added +_No unreleased additions yet._ + +### Changed +_No unreleased changes yet._ + +### Fixed +_No unreleased fixes yet._ + +## [2.7.0] - 2025-10-14 +### Summary - Enhanced deck building workflow with improved stage ordering, granular skip controls, and one-click Quick Build automation. - New Ideal Counts section with interactive sliders or text inputs for customizing deck composition targets. - Stage execution order now prioritizes creatures and spells before lands for better mana curve analysis. diff --git a/RELEASE_NOTES_TEMPLATE.md b/RELEASE_NOTES_TEMPLATE.md index 6792d98..b7eb064 100644 --- a/RELEASE_NOTES_TEMPLATE.md +++ b/RELEASE_NOTES_TEMPLATE.md @@ -1,36 +1,13 @@ # MTG Python Deckbuilder ${VERSION} ### Summary -- Enhanced deck building workflow with improved stage ordering, granular skip controls, one-click Quick Build automation, and interactive Ideal Counts UI. -- Stage execution order now prioritizes creatures and spells before lands for better mana curve analysis. -- New wizard-only skip controls allow auto-advancing through specific stages (lands, creatures, spells) without approval prompts. -- Quick Build button provides one-click full automation with clean 5-phase progress indicator. -- Ideal Counts now feature interactive slider UI with live validation and smart overlap detection. +_No unreleased changes yet._ ### Added -- **Quick Build**: One-click automation button in New Deck wizard with live progress tracking (5 phases: Creatures, Spells, Lands, Final Touches, Summary). -- **Skip Controls**: Granular stage-skipping toggles in New Deck wizard (21 flags: all land steps, creature stages, spell categories). - - Individual land step controls: basics, staples, fetches, duals, triomes, kindred, misc lands. - - Spell category controls: ramp, removal, wipes, card advantage, protection, theme fill. - - Creature stage controls: all creatures, primary, secondary, fill. - - Mutual exclusivity enforcement: "Skip All Lands" disables individual land toggles; "Skip to Misc Lands" skips early land steps. -- **Stage Reordering**: New default build order executes creatures → spells → lands for improved pip analysis (configurable via `WEB_STAGE_ORDER` environment variable). -- **Ideal Counts UI**: Interactive slider interface with live value display and smart validation (configurable via `WEB_IDEALS_UI` environment variable). - - Slider Mode (default): Range sliders for all ideal counts with expanded ranges (creatures: 0-70, lands: 25-45). - - Input Mode: Traditional text inputs with placeholder defaults showing recommended values. - - Smart Validation: Real-time deck size estimation using overlap-aware calculation (`Lands + Creatures + Spells/2`). - - Visual Warnings: Red alert (>99 cards), orange warning (90-99), no warning (<90). - - Session Persistence: Values persist across builds and initialize at defaults on first wizard load. -- Background task execution for Quick Build with HTMX polling progress updates. -- Mobile-friendly Quick Build with touch device confirmation dialog. +_No unreleased additions yet._ ### Changed -- **Default Stage Order**: Creatures and ideal spells now execute before land stages (lands can analyze actual pip requirements instead of estimates). -- Skip controls only available in New Deck wizard (disabled during build execution for consistency). -- Skip behavior auto-advances through stages without approval prompts (cards still added, just not gated). -- Post-spell land adjustment automatically skipped when any skip flag enabled. +_No unreleased changes yet._ ### Fixed -- Session context properly injected into Quick Build so skip configuration works correctly. -- HTMX polling uses continuous trigger (`every 500ms`) instead of one-time (`load delay`) for reliable progress updates. -- Progress indicator stops cleanly when build completes (out-of-band swap removes poller div). +_No unreleased fixes yet._ diff --git a/docker-compose.yml b/docker-compose.yml index eb8e6e1..696259e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -119,7 +119,7 @@ services: # WEB_THEME_FILTER_PREWARM: "0" WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts - APP_VERSION: "2.6.1" # Displayed version label (set per release/tag) + APP_VERSION: "2.7.0" # Displayed version label (set per release/tag) # ------------------------------------------------------------------ # Misc / Land Selection (Step 7) Environment Tuning diff --git a/dockerhub-docker-compose.yml b/dockerhub-docker-compose.yml index a97f78b..3bd0940 100644 --- a/dockerhub-docker-compose.yml +++ b/dockerhub-docker-compose.yml @@ -121,7 +121,7 @@ services: # WEB_THEME_FILTER_PREWARM: "0" WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts - APP_VERSION: "2.6.1" # Displayed version label (set per release/tag) + APP_VERSION: "2.7.0" # Displayed version label (set per release/tag) # ------------------------------------------------------------------ # Misc / Land Selection (Step 7) Environment Tuning diff --git a/docs/releases/v2.7.0.md b/docs/releases/v2.7.0.md new file mode 100644 index 0000000..d7f1386 --- /dev/null +++ b/docs/releases/v2.7.0.md @@ -0,0 +1,38 @@ +# MTG Python Deckbuilder v2.7.0 + +### Summary +- Enhanced deck building workflow with improved stage ordering, granular skip controls, one-click Quick Build automation, and interactive Ideal Counts UI. +- Stage execution order now prioritizes creatures and spells before lands for better mana curve analysis. +- New wizard-only skip controls allow auto-advancing through specific stages (lands, creatures, spells) without approval prompts. +- Quick Build button provides one-click full automation with clean 5-phase progress indicator. +- Ideal Counts now feature interactive slider UI with live validation and smart overlap detection. + +### Added +- **Quick Build**: One-click automation button in New Deck wizard with live progress tracking (5 phases: Creatures, Spells, Lands, Final Touches, Summary). +- **Skip Controls**: Granular stage-skipping toggles in New Deck wizard (21 flags: all land steps, creature stages, spell categories). + - Individual land step controls: basics, staples, fetches, duals, triomes, kindred, misc lands. + - Spell category controls: ramp, removal, wipes, card advantage, protection, theme fill. + - Creature stage controls: all creatures, primary, secondary, fill. + - Mutual exclusivity enforcement: "Skip All Lands" disables individual land toggles; "Skip to Misc Lands" skips early land steps. +- **Stage Reordering**: New default build order executes creatures → spells → lands for improved pip analysis (configurable via `WEB_STAGE_ORDER` environment variable). +- **Ideal Counts UI**: Interactive slider interface with live value display and smart validation (configurable via `WEB_IDEALS_UI` environment variable). + - Slider Mode (default): Range sliders for all ideal counts with expanded ranges (creatures: 0-70, lands: 25-45). + - Input Mode: Traditional text inputs with placeholder defaults showing recommended values. + - Smart Validation: Real-time deck size estimation using overlap-aware calculation (`Lands + Creatures + Spells/2`). + - Visual Warnings: Red alert (>99 cards), orange warning (90-99), no warning (<90). + - Session Persistence: Values persist across builds and initialize at defaults on first wizard load. +- Background task execution for Quick Build with HTMX polling progress updates. +- Mobile-friendly Quick Build with touch device confirmation dialog. + +### Changed +- **Default Stage Order**: Creatures and ideal spells now execute before land stages (lands can analyze actual pip requirements instead of estimates). +- Skip controls only available in New Deck wizard (disabled during build execution for consistency). +- Skip behavior auto-advances through stages without approval prompts (cards still added, just not gated). +- Post-spell land adjustment automatically skipped when any skip flag enabled. + +### Fixed +- Session context properly injected into Quick Build so skip configuration works correctly. +- HTMX polling uses continuous trigger (`every 500ms`) instead of one-time (`load delay`) for reliable progress updates. +- Progress indicator stops cleanly when build completes (out-of-band swap removes poller div). +- Commander session cleanup after build completes. +- Ideal counts properly populated from session state on wizard load. diff --git a/pyproject.toml b/pyproject.toml index 568c991..d858ee8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "mtg-deckbuilder" -version = "2.6.1" +version = "2.7.0" description = "A command-line tool for building and analyzing Magic: The Gathering decks" readme = "README.md" license = {file = "LICENSE"}