From fa8f60035b507ca17dc1f3b711b9725b1e80107d Mon Sep 17 00:00:00 2001 From: mwisnowski <93788087+mwisnowski@users.noreply.github.com> Date: Fri, 20 Feb 2026 12:22:47 -0800 Subject: [PATCH] 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 --- CHANGELOG.md | 4 ++++ RELEASE_NOTES_TEMPLATE.md | 3 +++ code/web/services/orchestrator.py | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ef30dd..fdc2fb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -92,6 +92,10 @@ This format follows Keep a Changelog principles and aims for Semantic Versioning - Optimized linting rules for development workflow ### Fixed +- **Card Data Auto-Refresh**: Fixed stale data issue when new sets are released + - Auto-refresh now deletes cached raw parquet file before downloading fresh data + - Ensures new sets are included instead of reprocessing old cached data + - Resolves issue where Docker volumes would retain outdated raw files - **Template Quality**: Resolved HTML structure issues found by validation tests - Fixed duplicate ID attributes in build wizard and theme picker templates - Removed erroneous block tags from component documentation diff --git a/RELEASE_NOTES_TEMPLATE.md b/RELEASE_NOTES_TEMPLATE.md index cf89adf..b04af1e 100644 --- a/RELEASE_NOTES_TEMPLATE.md +++ b/RELEASE_NOTES_TEMPLATE.md @@ -89,6 +89,9 @@ Web UI improvements with Tailwind CSS migration, TypeScript conversion, componen _None_ ### Fixed +- **Card Data Auto-Refresh**: Fixed stale data issue when new sets are released + - Auto-refresh now deletes cached raw parquet file before downloading fresh data + - Ensures new sets are included instead of reprocessing old cached data - **Template Quality**: Resolved HTML structure issues - Fixed duplicate ID attributes in templates - Removed erroneous template block tags diff --git a/code/web/services/orchestrator.py b/code/web/services/orchestrator.py index 654d5ac..9e64821 100644 --- a/code/web/services/orchestrator.py +++ b/code/web/services/orchestrator.py @@ -1417,6 +1417,16 @@ def _ensure_setup_ready(out, force: bool = False) -> None: try: from file_setup.setup import initial_setup + from path_util import card_files_raw_dir + # Delete stale raw file to force fresh download from MTGJSON + # This ensures we get the latest card data (e.g., new sets like ECL) + raw_cards_path = os.path.join(card_files_raw_dir(), "cards.parquet") + if os.path.exists(raw_cards_path): + try: + os.remove(raw_cards_path) + out(f"Removed stale raw file: {raw_cards_path}") + except Exception as e: + out(f"Warning: Could not remove stale raw file: {e}") # Always run initial_setup when forced or when cards are missing/stale initial_setup() except Exception as e: