chore: prepare release 4.6.4
Some checks are pending
CI / build (push) Waiting to run

This commit is contained in:
matt 2026-04-06 08:27:37 -07:00
parent 65a6100d13
commit c03259147b
7 changed files with 25 additions and 11 deletions

View file

@ -13,7 +13,7 @@
# HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web). # HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web).
# PORT=8080 # Uvicorn port. # PORT=8080 # Uvicorn port.
# WORKERS=1 # Uvicorn worker count. # WORKERS=1 # Uvicorn worker count.
APP_VERSION=v4.6.3 # Matches dockerhub compose. APP_VERSION=v4.6.4 # Matches dockerhub compose.
############################ ############################
# Theming # Theming

View file

@ -11,6 +11,16 @@ This format follows Keep a Changelog principles and aims for Semantic Versioning
### Added ### Added
_No unreleased changes yet_ _No unreleased changes yet_
### Changed
_No unreleased changes yet_
### Fixed
_No unreleased changes yet_
### Removed
_No unreleased changes yet_
## [4.6.4] - 2026-04-06
### Changed ### Changed
- **Deck name no longer auto-fills on commander selection**: The deck name field in the new deck wizard stays blank when a commander is chosen. If left empty on submit, the builder defaults to the commander name as before. - **Deck name no longer auto-fills on commander selection**: The deck name field in the new deck wizard stays blank when a commander is chosen. If left empty on submit, the builder defaults to the commander name as before.
@ -19,9 +29,6 @@ _No unreleased changes yet_
- **Enter key cancels commander search in new deck modal (#71)**: Pressing Enter while typing a commander name in the new deck wizard would submit the form before the autocomplete candidates loaded (due to the 220 ms search delay), resulting in "Commander not found". A capture-phase keydown handler now intercepts Enter on the commander field, and a direct `fetch()` call bypasses HTMX timing entirely — it fetches and auto-selects the first match immediately, then triggers the inspect/theme load. When candidates are already visible, Enter selects the highlighted one as before. - **Enter key cancels commander search in new deck modal (#71)**: Pressing Enter while typing a commander name in the new deck wizard would submit the form before the autocomplete candidates loaded (due to the 220 ms search delay), resulting in "Commander not found". A capture-phase keydown handler now intercepts Enter on the commander field, and a direct `fetch()` call bypasses HTMX timing entirely — it fetches and auto-selects the first match immediately, then triggers the inspect/theme load. When candidates are already visible, Enter selects the highlighted one as before.
- **New Build creates a page within a page (#72)**: Clicking "New Build" from the build summary page embedded the entire build page inside the `#wizard` div instead of opening the new deck wizard. The `reset-all` endpoint was returning a `302` redirect which HTMX followed and rendered inline. "New Build" and "Start over" buttons across all wizard steps now directly open the new deck modal overlay (via `hx-get="/build/new?reset=1"`), clearing the session server-side and presenting a fresh wizard without a full page navigation. Deck name no longer auto-fills with the commander name when a commander is selected — it remains blank and defaults to the commander name only if submitted empty. - **New Build creates a page within a page (#72)**: Clicking "New Build" from the build summary page embedded the entire build page inside the `#wizard` div instead of opening the new deck wizard. The `reset-all` endpoint was returning a `302` redirect which HTMX followed and rendered inline. "New Build" and "Start over" buttons across all wizard steps now directly open the new deck modal overlay (via `hx-get="/build/new?reset=1"`), clearing the session server-side and presenting a fresh wizard without a full page navigation. Deck name no longer auto-fills with the commander name when a commander is selected — it remains blank and defaults to the commander name only if submitted empty.
### Removed
_No unreleased changes yet_
## [4.6.3] - 2026-04-04 ## [4.6.3] - 2026-04-04
### Fixed ### Fixed
- **CK prices not loading after GitHub cache download**: The `PriceService` singleton sets `_ck_loaded = True` as a graceful fallback when `ck_prices_cache.json` is missing at startup, preventing it from reloading the file if it is later written to disk. Added `invalidate_ck_cache()` to `PriceService`; the `Download from GitHub` route and the orchestrator auto-download now call it after successfully downloading `ck_prices_cache.json`, so CK prices appear immediately without a container restart. - **CK prices not loading after GitHub cache download**: The `PriceService` singleton sets `_ck_loaded = True` as a graceful fallback when `ck_prices_cache.json` is missing at startup, preventing it from reloading the file if it is later written to disk. Added `invalidate_ck_cache()` to `PriceService`; the `Download from GitHub` route and the orchestrator auto-download now call it after successfully downloading `ck_prices_cache.json`, so CK prices appear immediately without a container restart.

View file

@ -5,12 +5,10 @@
_No unreleased changes yet_ _No unreleased changes yet_
### Changed ### Changed
- **Deck name no longer auto-fills on commander selection**: The deck name field in the new deck wizard stays blank when a commander is chosen. If left empty on submit, the builder defaults to the commander name as before. _No unreleased changes yet_
### Fixed ### Fixed
- **Card hover preview in theme browser (#70)**: Example card thumbnails in the theme detail/browser page were showing the wrong card image (a fuzzy search for "Card") when hovered. The `<img>` elements inside `.ex-card` containers lacked `data-card-name` attributes, so the hover system fell back to the literal string "Card". Added `data-card-name`, `data-original-name`, `data-role`, and `data-tags` to example card `<img>` elements in `detail_fragment.html` to match the existing commander image pattern. _No unreleased changes yet_
- **Enter key cancels commander search in new deck modal (#71)**: Pressing Enter while typing a commander name in the new deck wizard would submit the form before the autocomplete candidates loaded (due to the 220 ms search delay), resulting in "Commander not found". A capture-phase keydown handler now intercepts Enter on the commander field, and a direct `fetch()` call bypasses HTMX timing entirely — it fetches and auto-selects the first match immediately, then triggers the inspect/theme load. When candidates are already visible, Enter selects the highlighted one as before.
- **New Build creates a page within a page (#72)**: Clicking "New Build" from the build summary page embedded the entire build page inside the `#wizard` div instead of opening the new deck wizard. The `reset-all` endpoint was returning a `302` redirect which HTMX followed and rendered inline. "New Build" and "Start over" buttons across all wizard steps now directly open the new deck modal overlay, clearing the session server-side and presenting a fresh wizard without a full page navigation. Deck name no longer auto-fills with the commander name when a commander is selected — it remains blank and defaults to the commander name only if submitted empty.
### Removed ### Removed
_No unreleased changes yet_ _No unreleased changes yet_

View file

@ -144,7 +144,7 @@ services:
# WEB_THEME_FILTER_PREWARM: "0" # WEB_THEME_FILTER_PREWARM: "0"
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
APP_VERSION: "v4.6.3" # Displayed version label (set per release/tag) APP_VERSION: "v4.6.4" # Displayed version label (set per release/tag)
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Misc / Land Selection (Step 7) Environment Tuning # Misc / Land Selection (Step 7) Environment Tuning

View file

@ -146,7 +146,7 @@ services:
# WEB_THEME_FILTER_PREWARM: "0" # WEB_THEME_FILTER_PREWARM: "0"
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
APP_VERSION: "v4.6.3" # Displayed version label (set per release/tag) APP_VERSION: "v4.6.4" # Displayed version label (set per release/tag)
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Misc / Land Selection (Step 7) Environment Tuning # Misc / Land Selection (Step 7) Environment Tuning

9
docs/releases/v4.6.4.md Normal file
View file

@ -0,0 +1,9 @@
# MTG Python Deckbuilder v4.6.4
## Changed
- **Deck name no longer auto-fills on commander selection**: The deck name field in the new deck wizard stays blank when a commander is chosen. If left empty on submit, the builder defaults to the commander name as before.
## Fixed
- **Card hover preview in theme browser (#70)**: Example card thumbnails in the theme detail/browser page were showing the wrong card image (a fuzzy search for "Card") when hovered. The `<img>` elements inside `.ex-card` containers lacked `data-card-name` attributes, so the hover system fell back to the literal string "Card". Added `data-card-name`, `data-original-name`, `data-role`, and `data-tags` to example card `<img>` elements in `detail_fragment.html` to match the existing commander image pattern.
- **Enter key cancels commander search in new deck modal (#71)**: Pressing Enter while typing a commander name in the new deck wizard would submit the form before the autocomplete candidates loaded (due to the 220 ms search delay), resulting in "Commander not found". A capture-phase keydown handler now intercepts Enter on the commander field, and a direct `fetch()` call bypasses HTMX timing entirely — it fetches and auto-selects the first match immediately, then triggers the inspect/theme load. When candidates are already visible, Enter selects the highlighted one as before.
- **New Build creates a page within a page (#72)**: Clicking "New Build" from the build summary page embedded the entire build page inside the `#wizard` div instead of opening the new deck wizard. The `reset-all` endpoint was returning a `302` redirect which HTMX followed and rendered inline. "New Build" and "Start over" buttons across all wizard steps now directly open the new deck modal overlay, clearing the session server-side and presenting a fresh wizard without a full page navigation.

View file

@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "mtg-deckbuilder" name = "mtg-deckbuilder"
version = "4.6.3" version = "4.6.4"
description = "A command-line tool for building and analyzing Magic: The Gathering decks" description = "A command-line tool for building and analyzing Magic: The Gathering decks"
readme = "README.md" readme = "README.md"
license = {file = "LICENSE"} license = {file = "LICENSE"}