diff --git a/.env.example b/.env.example index c8ad1a5..c07aabd 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.7.0 # Matches dockerhub compose. +APP_VERSION=v2.7.1 # Matches dockerhub compose. ############################ # Theming diff --git a/CHANGELOG.md b/CHANGELOG.md index 50c779d..49ccc56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,14 @@ _No unreleased changes yet._ ### Fixed _No unreleased fixes yet._ +## [2.7.1] - 2025-10-14 +### Summary +Quick Build UI refinements for improved desktop display. + +### Fixed +- Quick Build progress display now uses full desktop width instead of narrow mobile-like layout +- Quick Build completion screen properly transitions to full-width Step 5 layout matching manual build experience + ## [2.7.0] - 2025-10-14 ### Summary - Enhanced deck building workflow with improved stage ordering, granular skip controls, and one-click Quick Build automation. diff --git a/code/web/routes/build.py b/code/web/routes/build.py index a3fca96..9723ab6 100644 --- a/code/web/routes/build.py +++ b/code/web/routes/build.py @@ -3760,19 +3760,16 @@ def quick_build_progress(request: Request): logger.info(f"[Progress Poll] sid={sid}, progress={progress is not None}, running={progress.get('running') if progress else None}") if not progress or not progress.get("running"): - # Build complete - return Step 5 content + remove the polling div + # Build complete - return Step 5 content that replaces the entire wizard container res = sess.get("last_result") if res and res.get("done"): ctx = step5_ctx_from_result(request, sess, res) - # Render Step 5, then add script to remove polling div - step5_html = templates.get_template("build/_step5.html").render(ctx) - # Return Step 5 content + a script that removes the poller and replaces #wizard - final_html = f''' - {step5_html} -
- ''' - response = HTMLResponse(final_html) + # Return Step 5 which will replace the whole wizard div + response = templates.TemplateResponse("build/_step5.html", ctx) response.set_cookie("sid", sid, httponly=True, samesite="lax") + # Tell HTMX to target #wizard and swap outerHTML to replace the container + response.headers["HX-Retarget"] = "#wizard" + response.headers["HX-Reswap"] = "outerHTML" return response # Fallback if no result yet return HTMLResponse('Build complete. Please refresh.') diff --git a/code/web/templates/build/_quick_build_progress.html b/code/web/templates/build/_quick_build_progress.html index 415b2aa..9959d9e 100644 --- a/code/web/templates/build/_quick_build_progress.html +++ b/code/web/templates/build/_quick_build_progress.html @@ -1,6 +1,6 @@ {# Quick Build Progress Indicator - Current Stage + Completed List #} -
+
{% include "build/_quick_build_progress_content.html" %}
diff --git a/code/web/templates/build/_quick_build_progress_content.html b/code/web/templates/build/_quick_build_progress_content.html index 7669f24..39d68d1 100644 --- a/code/web/templates/build/_quick_build_progress_content.html +++ b/code/web/templates/build/_quick_build_progress_content.html @@ -1,15 +1,15 @@ {# Quick Build Progress Content (inner content only, for HTMX updates) #} -
-

Automatic Build in Progress

-

Building your deck automatically without approval steps...

+
+

Automatic Build in Progress

+

Building your deck automatically without approval steps...

{# Simplified Phase Indicator #} -
-
Current Phase
-
{{ current_stage }}
+
+
Current Phase
+
{{ current_stage }}
-
+

This may take 10-30 seconds depending on deck complexity...

diff --git a/docker-compose.yml b/docker-compose.yml index 696259e..a6ed837 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.7.0" # Displayed version label (set per release/tag) + APP_VERSION: "2.7.1" # 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 3bd0940..3b7b737 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.7.0" # Displayed version label (set per release/tag) + APP_VERSION: "2.7.1" # Displayed version label (set per release/tag) # ------------------------------------------------------------------ # Misc / Land Selection (Step 7) Environment Tuning diff --git a/docs/releases/v2.7.1.md b/docs/releases/v2.7.1.md new file mode 100644 index 0000000..b287569 --- /dev/null +++ b/docs/releases/v2.7.1.md @@ -0,0 +1,8 @@ +# MTG Python Deckbuilder v2.7.1 + +### Summary +Quick Build UI refinements for improved desktop display. + +### Fixed +- Quick Build progress display now uses full desktop width instead of narrow mobile-like layout +- Quick Build completion screen properly transitions to full-width Step 5 layout matching manual build experience diff --git a/pyproject.toml b/pyproject.toml index d858ee8..3bc820a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "mtg-deckbuilder" -version = "2.7.0" +version = "2.7.1" description = "A command-line tool for building and analyzing Magic: The Gathering decks" readme = "README.md" license = {file = "LICENSE"}