Commit Graph

127 Commits

Author SHA1 Message Date
OoO
593e87b175 V10.509 接入 Webcrumbs 同源資產代理與 writer preflight gate
All checks were successful
CD Pipeline / deploy (push) Successful in 1m8s
2026-05-31 20:32:20 +08:00
OoO
72ded9e1e5 V10.507 接入 Webcrumbs 並收斂 writer approval gate
All checks were successful
CD Pipeline / deploy (push) Successful in 1m21s
2026-05-31 19:01:54 +08:00
OoO
bdae154237 新增市場情報 queue review inventory
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-19 13:00:46 +08:00
OoO
ffe0a0f512 修正外部工具入口橋接
All checks were successful
CD Pipeline / deploy (push) Successful in 1m4s
2026-05-19 11:07:33 +08:00
OoO
bc900321f8 feat(market-intel): add alert review queue migration blueprint
All checks were successful
CD Pipeline / deploy (push) Successful in 1m1s
2026-05-18 19:51:36 +08:00
OoO
c021945047 fix: route telegram vision through ollama first
All checks were successful
CD Pipeline / deploy (push) Successful in 1m4s
2026-05-18 14:07:49 +08:00
OoO
e167ba1497 fix: 補上品牌 favicon 回應
All checks were successful
CD Pipeline / deploy (push) Successful in 1m7s
2026-05-18 09:39:24 +08:00
OoO
32801b5d57 perf: 啟用靜態資源版本快取
All checks were successful
CD Pipeline / deploy (push) Successful in 1m3s
2026-05-18 00:03:08 +08:00
OoO
7c37f066e8 統一舊模板入口新版設計
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-17 20:30:07 +08:00
OoO
3263e1b400 收窄廠商模板載入範圍
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-14 00:11:03 +08:00
OoO
4418599f46 修正廠商模板載入優先序
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-14 00:00:46 +08:00
OoO
46e819a020 移除 app 入口 stale TODO banner
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 19:05:01 +08:00
OoO
14c5349b69 補齊 AI 觀測表 ORM 與 embedding 簽名
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-12 23:13:20 +08:00
OoO
605250619c Frontend V3 responsive production update
All checks were successful
CD Pipeline / deploy (push) Successful in 1m3s
2026-05-12 18:27:29 +08:00
OoO
57e4c575b1 Revert "調整暖色系為鮮明純色"
This reverts commit dc137e33ca.
2026-05-06 22:04:17 +08:00
OoO
9e857ee04a Revert "更換左上角網站 Logo"
This reverts commit ba9aecf661.
2026-05-06 22:04:17 +08:00
OoO
aff9fdec21 Revert "修正側欄 Logo 顯示比例"
This reverts commit e317a2f70a.
2026-05-06 22:04:17 +08:00
OoO
e317a2f70a 修正側欄 Logo 顯示比例
All checks were successful
CD Pipeline / deploy (push) Successful in 1m0s
2026-05-06 22:03:07 +08:00
OoO
ba9aecf661 更換左上角網站 Logo
All checks were successful
CD Pipeline / deploy (push) Successful in 1m0s
2026-05-06 21:57:15 +08:00
OoO
dc137e33ca 調整暖色系為鮮明純色
All checks were successful
CD Pipeline / deploy (push) Successful in 1m0s
2026-05-06 21:46:18 +08:00
OoO
30a173cf69 統一全站暖色視覺與市場情報骨架
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
2026-05-06 20:24:46 +08:00
OoO
153e4c9734 fix(observability): revert unrelated quick review commit files
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
2026-05-06 19:50:52 +08:00
OoO
308efdce25 chore(observability): clarify quick review completion copy
All checks were successful
CD Pipeline / deploy (push) Successful in 1m4s
2026-05-06 19:49:28 +08:00
OoO
86f1fd5f50 fix(p33): admin observability auth hardening — Critic CRITICAL 修正
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
Critic 1 CRITICAL 發現:6 個觀測端點零認證 + csrf_exempt
→ Flask 一旦對外可達,任何人可 POST 晉升 episode / 改月預算
→ X-Forwarded-User header client 偽造 = 偽造 admin 身份

修正:
1. 全 8 個 route handler 加 @login_required(session-based auth)
   - GET: ai_calls / promotion_review / quality_trend / host_health /
          budget / ppt_audit_history
   - POST: promotion_review/approve, .../reject, budget/update/<id>
2. promotion_review_approve approver_hash 改從 Flask session 取
   (get_current_user().username)— 不再信 X-Forwarded-User header
3. app.py 移除 csrf.exempt(admin_observability_bp)
4. 12 tests(10 原 + 2 新 auth gate)全 PASS:
   - test_anon_get_redirects_to_login: 6 GET 路由匿名 → 302
   - test_anon_post_blocked: 3 POST mutation 匿名 → 302
2026-05-04 14:19:54 +08:00
OoO
48b8fda7db feat(p27+28): Admin Observability Dashboard — 4 個前端頁互補 Telegram
All checks were successful
CD Pipeline / deploy (push) Successful in 2m25s
Operation Ollama-First v5.0 / Phase 27 + 28 — 戰役觀測前端化

routes/admin_observability_routes.py (新檔, 200+ 行)
- admin_observability_bp blueprint,url_prefix='/admin'
- /admin/ai_calls            — Phase 27 主入口(KPI / by provider / TOP 100)
- /admin/promotion_review    — Phase 28 PromotionGate 待審列表 + 通過/拒絕按鈕
- /admin/quality_trend       — Phase 25 caller 反饋趨勢視覺化
- /admin/host_health         — 三主機 + MCP + cost throttle 即時健康
- 失敗安全:DB 查詢失敗回空清單 + 警告 banner(不 raise)
- promotion_review_approve/reject 走 hash_human_approver SHA1[:8] 不存原 username

templates/admin/ (4 個新檔)
- ai_calls_dashboard.html   篩選 bar + 6 KPI cards + by provider + recent 100
- promotion_review.html     卡片列表 + 通過/拒絕 AJAX 按鈕(即時 UI feedback)
- quality_trend.html        avg score 升序排列 + 進度條 bar + 智能建議區
- host_health.html          三主機 HTTP probe + 已載入模型 + MCP + throttle

統帥提問「需要哪些前端讓兩者互補互動」答覆:
  6 項最該前端化(已實作 4 項,剩 2 項為後續):
     ai_calls 即時查詢          → /admin/ai_calls
     PromotionGate 待審核         → /admin/promotion_review (互動最強)
     caller 反饋趨勢             → /admin/quality_trend
     三主機 + MCP + throttle     → /admin/host_health
     ai_call_budgets 預算管理   → Phase 29 補
     PPT 視覺審核結果列表        → Phase 29 補

互補 Telegram 哲學:
  Telegram = push(重要事件主動通知)
  Web = pull(統帥隨時可查 / 互動審核 / 找問題)
  PromotionGate Stage 4:Telegram 推 awaiting_review + Web 批次審核(兩者皆可)

app.py blueprint 註冊 + CSRF exempt(AJAX POST 走 server-side check)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 13:36:51 +08:00
OoO
7b6423fa67 fix(openclaw): route wakeup phrases back to menu
All checks were successful
CD Pipeline / deploy (push) Successful in 2m55s
2026-05-02 16:03:49 +08:00
OoO
026d0e7539 feat(reports): move monthly analysis to v2 shell
All checks were successful
CD Pipeline / deploy (push) Successful in 2m14s
2026-05-01 21:13:18 +08:00
OoO
d6782ee710 feat(ai): move recommendation page to v2 shell
All checks were successful
CD Pipeline / deploy (push) Successful in 2m13s
2026-05-01 21:08:44 +08:00
OoO
9b3e0a4565 feat(ai): move history page to v2 shell
All checks were successful
CD Pipeline / deploy (push) Successful in 2m19s
2026-05-01 21:06:17 +08:00
OoO
939ed5eef5 feat(ai): move intelligence page to v2 shell
All checks were successful
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 21:03:19 +08:00
OoO
7d46ff9ba5 feat(competitor): persist match attempts
All checks were successful
CD Pipeline / deploy (push) Successful in 2m9s
2026-05-01 20:56:17 +08:00
OoO
c1f43b0ae4 fix(campaign): persist full crawl snapshots
All checks were successful
CD Pipeline / deploy (push) Successful in 2m22s
2026-05-01 20:48:28 +08:00
OoO
bb99dfeab6 feat(campaign): restore operations table signals
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 20:43:46 +08:00
OoO
4e853a233f perf(dashboard): speed up competitor overview
All checks were successful
CD Pipeline / deploy (push) Successful in 2m12s
2026-05-01 20:36:25 +08:00
OoO
b9d6186d68 feat(frontend): sync latest MOMO Pro prototype styling
All checks were successful
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 20:32:23 +08:00
OoO
066cf1846f feat(dashboard): show AI pick evidence gaps
All checks were successful
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 17:17:03 +08:00
OoO
e86075d59d fix(dashboard): avoid redundant prewarm rebuilds
All checks were successful
CD Pipeline / deploy (push) Successful in 2m15s
2026-05-01 16:36:58 +08:00
OoO
2ac7410d40 fix(dashboard): prewarm cache and expose pick evidence
All checks were successful
CD Pipeline / deploy (push) Successful in 2m20s
2026-05-01 16:34:13 +08:00
OoO
9e2337764b fix(ai): supersede old product picks
All checks were successful
CD Pipeline / deploy (push) Successful in 2m48s
2026-05-01 16:24:15 +08:00
OoO
b3d00a011c fix(dashboard): warm cache after AI pick refresh
All checks were successful
CD Pipeline / deploy (push) Successful in 3m37s
2026-05-01 16:16:39 +08:00
OoO
b447aefcfb fix(ai): clear dashboard cache after pick regeneration
All checks were successful
CD Pipeline / deploy (push) Successful in 2m27s
2026-05-01 16:10:51 +08:00
OoO
3920701e1a feat(dashboard): optimize cache and AI pick confidence
All checks were successful
CD Pipeline / deploy (push) Successful in 2m46s
2026-05-01 16:01:52 +08:00
OoO
0334051aa7 feat(dashboard): 匯出 AI 挑品操作清單
All checks were successful
CD Pipeline / deploy (push) Successful in 2m39s
2026-05-01 15:43:57 +08:00
OoO
1d1a7f6e94 feat(dashboard): 強化 AI 挑品清單決策資訊
All checks were successful
CD Pipeline / deploy (push) Successful in 2m22s
2026-05-01 15:22:21 +08:00
OoO
a5de082437 feat(dashboard): 顯示 50 品 AI 挑品清單
All checks were successful
CD Pipeline / deploy (push) Successful in 3m12s
2026-05-01 15:08:41 +08:00
OoO
6bce46bbc7 fix(runtime): 強化健康檢查監控韌性
All checks were successful
CD Pipeline / deploy (push) Successful in 2m29s
2026-05-01 14:46:49 +08:00
OoO
77b085f813 fix(dashboard): 快取比價決策總覽
All checks were successful
CD Pipeline / deploy (push) Successful in 2m28s
2026-05-01 14:32:51 +08:00
OoO
ea15aa6437 refactor(vendor): 抽出廠商管理查詢服務
Some checks failed
CD Pipeline / deploy (push) Failing after 8m57s
2026-05-01 14:20:09 +08:00
OoO
1012d609d4 feat(dashboard): 顯示 PChome 比價決策總覽
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 14:19:18 +08:00
OoO
fbc85fcedc refactor(vendor): 抽出缺貨 API 查詢服務
All checks were successful
CD Pipeline / deploy (push) Successful in 2m11s
2026-05-01 14:12:56 +08:00