From 8240b59b8422b8bdeda3be8f8942c4eab0bd0634 Mon Sep 17 00:00:00 2001 From: ogt Date: Wed, 24 Jun 2026 21:26:10 +0800 Subject: [PATCH] fix: add webcrumbs loader fallback --- config.py | 2 +- docs/guides/webcrumbs_shared_runtime.md | 1 + routes/system_public_routes.py | 45 ++++++++++++++++++++++++- tests/test_webcrumbs_asset_proxy.py | 11 ++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 tests/test_webcrumbs_asset_proxy.py diff --git a/config.py b/config.py index 76b4e5e..8fa31e6 100644 --- a/config.py +++ b/config.py @@ -402,7 +402,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.652" +SYSTEM_VERSION = "V10.653" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/docs/guides/webcrumbs_shared_runtime.md b/docs/guides/webcrumbs_shared_runtime.md index 526a490..5b28978 100644 --- a/docs/guides/webcrumbs_shared_runtime.md +++ b/docs/guides/webcrumbs_shared_runtime.md @@ -68,5 +68,6 @@ style.css - Host data metadata 需同時輸出 `matched_count/coverage_rate` 與 `fresh_match_count/fresh_match_rate/stale_match_count/pending_match_count`,讓共用 UI 分清「身份覆蓋」與「價格新鮮度」。 - `/webcrumbs` 未取得登入 session 或 `X-Internal-Key` 時只能注入 `auth_required` 空狀態,不得把真實 SKU、價格或價差寫進 inline seed data。 - `/webcrumbs-assets/loader/webcrumbs-compatible-loader.js` 回 200 且 content type 是 JavaScript。 +- 若 Shared UI Hub 或 `WEBCRUMBS_ASSET_UPSTREAM_URL` 暫時不可用,`/webcrumbs-assets/loader/webcrumbs-compatible-loader.js` 必須回 200 的本地 fallback loader,避免正式頁面出現 502;fallback 只負責安全降級與標示 runtime 離線,不取代真實 plugin bundle。 - `ewoooc_base.html` 在 `WEBCRUMBS_ENABLED=true` 且 runtime URL 有效時輸出 `