All checks were successful
CD Pipeline / deploy (push) Successful in 2m30s
P-1: topbar AI 觀測台 indicator(全頁可見) - ewoooc_base.html topbar 加「🛰 AI 觀測台」icon button - 紅色 badge 顯示告警數量(4 維度任一觸發即計數): • 三主機任一掛掉 • 待審 episode > 0 • 過去 1h 錯誤率 ≥ 30% • 預算任一 ≥ 90% - 新 GET /observability/api/health_indicator 輕量 JSON API(4 query 跨 host_health_probes/learning_episodes/ ai_calls/ai_call_budgets) - topbar polling 每 60s 自動刷新 + tooltip 顯示具體告警內容 - 全部頁面(包括 / 商品看板、所有觀測頁)topbar 都看得到健康狀態 P-2: quality_trend RAG 反饋圓餅圖(doughnut) - 取代原本卡片網格佈局 - 1-5 星依綠→紅漸層著色(5=綠、3=黃、1=紅) - 圓餅 + 右側表格雙視角(chart 配對 raw 數字) - chart.js doughnut + tooltip 顯示筆數+佔比 效益: - 統帥從任何頁面(不限觀測台)都能瞄一眼右上角看當前 AI 健康 - 快樂路徑:「正常」綠色 icon · 異常路徑:「紅色 badge + 數字」立即吸睛 - 圓餅圖比原網格更直觀「分布」感 Phase 38→52 累計 17 commits / 10 觀測頁 / DB 100% / 4 chart.js / 全頁 indicator。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
路由模組說明
app.py 直接註冊所有 Flask Blueprint;USE_MODULAR_ROUTES、register_blueprints()、
MODULAR_ENDPOINTS 與 duplicate cleanup 開關已在 ADR-017 Phase 3f-1 移除。
啟動防線
app.py 會在啟動時檢查 app.url_map,同一組 (URL, HTTP methods) 不允許被兩個 endpoint
重複註冊;若發現衝突會直接 SystemExit。
模組清單
| 模組 | 說明 | 主要路由 |
|---|---|---|
dashboard_routes.py |
商品看板首頁 | / |
sales_routes.py |
業績分析與 ABC 明細 | /sales_analysis, /growth_analysis, /abc_analysis/detail, /api/sales_analysis/* |
system_public_routes.py |
無 prefix 公開系統頁與監控 | /health, /metrics, /ai_automation_smoke, /api/ai-automation/smoke*, /settings, /system_settings, /logs, /api/logs, /api/backup |
system_routes.py |
內部系統維護 API | /api/system/* |
edm_routes.py |
EDM 與節慶儀表板 | /edm, /festival |
monthly_routes.py |
月結分析 | /monthly_summary_analysis, /api/monthly_summary_data |
daily_sales_routes.py |
當日業績 | /daily_sales, /daily_sales/export* |
api_routes.py |
通用任務與查詢 API | /api/run_task, /api/history/* |
export_routes.py |
匯出功能 | /api/export/* |
import_routes.py |
匯入功能 | /api/import_excel, /api/import/monthly_summary |
新增 route 時請優先放入對應 Blueprint,並用本機 app.url_map duplicate check 驗證。
若 route 內開始出現大量資料處理、SQL、AI prompt 或外部 API 呼叫,請依
docs/guides/modularization_governance.md 抽到 services/ 或 utils/,不要讓 Blueprint 變成新巨檔。