Commit Graph

166 Commits

Author SHA1 Message Date
OoO
3c6503446d 移除未使用 runtime 依賴
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 11:32:59 +08:00
OoO
749eace426 移除未使用 Paramiko 依賴
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-13 11:32:04 +08:00
OoO
5b6b35f289 守住 AutoHeal inline 告警去重 2026-05-13 11:30:03 +08:00
OoO
035b88cbf7 守住 AutoHeal migration guardrails 2026-05-13 11:29:04 +08:00
OoO
49212751f2 守住 RAG embedding signature migration 2026-05-13 11:28:19 +08:00
OoO
c165081b12 守住 host label migration 對齊 2026-05-13 11:27:35 +08:00
OoO
546c63fdee 守住 V2 silent failure 修補 2026-05-13 11:26:30 +08:00
OoO
81aa424587 守住 Observability smoke timeout
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-13 11:22:47 +08:00
OoO
4079f1c0ac 守住 CD migration 全範圍執行 2026-05-13 11:22:05 +08:00
OoO
58ba95ba5e 守住月結匯入 append 路徑 2026-05-13 11:21:08 +08:00
OoO
2e2b775608 守住 V2 import 清理狀態 2026-05-13 11:19:54 +08:00
OoO
6c86839350 守住盤點誤判依賴 2026-05-13 11:18:35 +08:00
OoO
b24241f361 守住 migration blocker 修補 2026-05-13 11:17:16 +08:00
OoO
8026b9379b 守住 scheduler 早晨排程錯開 2026-05-13 11:14:10 +08:00
OoO
b22cbb2aa0 守住 scheduler 失敗告警覆蓋 2026-05-13 11:13:13 +08:00
OoO
4e6e9bfe5d 綁定自動匯入日期查詢參數 2026-05-13 10:28:48 +08:00
OoO
0359e8154a 加速月份總表特殊趨勢載入
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 10:12:01 +08:00
OoO
5625032a8d 記錄 AI caller registry 匯入失敗
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 10:04:45 +08:00
OoO
0a75d11a28 記錄 Claude 成本節流檢查失敗
All checks were successful
CD Pipeline / deploy (push) Successful in 59s
2026-05-13 10:03:13 +08:00
OoO
f49413e78a 記錄 EA short-circuit 遙測失敗
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-13 10:01:46 +08:00
OoO
c300e496c5 記錄 ROI 月報反饋區塊失敗
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 10:00:04 +08:00
OoO
317ff1bf02 共用匯入檔名日期解析
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 09:58:56 +08:00
OoO
ba8510eac7 補齊 MCP 早退狀態
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 09:40:55 +08:00
OoO
d7ae243ece 清空 Telegram webhook 使用者上下文
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-13 09:40:19 +08:00
OoO
a335ab523f 修正 AutoHeal Telegram 觸發者審計
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-13 09:39:09 +08:00
OoO
5785a584c4 補齊 scheduler 觀測任務失敗告警
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 09:37:22 +08:00
OoO
34db2db5fd 修正 scheduler 合成告警 trace
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-13 09:35:57 +08:00
OoO
d15b2215f1 細分 MCP 呼叫遙測狀態
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
2026-05-13 09:35:27 +08:00
OoO
bdb74b1354 告警 BGE embedding 一致性異常
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 09:34:03 +08:00
OoO
2068a3719d 修正 Telegram 分類按鈕預設 callback
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 09:27:34 +08:00
OoO
44eb36992e 補上 MCP filesystem 唯讀白名單
All checks were successful
CD Pipeline / deploy (push) Successful in 55s
2026-05-13 09:26:12 +08:00
OoO
20cab6ed64 補上 RAG hit logger 回歸測試 2026-05-13 09:23:26 +08:00
OoO
36d0e5d5f3 標記 RAG 命中節省 LLM 呼叫
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-13 09:21:50 +08:00
OoO
f2b91beb61 記錄 RAG 人工審核者 hash
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
2026-05-13 09:13:29 +08:00
OoO
bb65ba71ba 補上 cache TTL 單一來源測試 2026-05-13 09:12:00 +08:00
OoO
eb9cac0d19 改善活動看板手機導覽排版
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-12 23:50:18 +08:00
OoO
b1013d1a25 鎖定 requirements 最低版本
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-12 23:41:35 +08:00
OoO
bc3f9cc61a 補上 action_plans 寫入護欄
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-12 23:35:25 +08:00
OoO
caa6263872 同步 incidents 相容欄位寫入
All checks were successful
CD Pipeline / deploy (push) Successful in 56s
2026-05-12 23:31:33 +08:00
OoO
1652ff3a59 補齊核心業務表 migration baseline
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
2026-05-12 23:24:14 +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
fccc80858d 修復 Wave 0 阻塞與 market intel 入庫 2026-05-12 22:49:56 +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
OG T
0904a60237 fix(scheduler): quiet cold-start noise gates
All checks were successful
CD Pipeline / deploy (push) Successful in 1m29s
2026-05-06 00:31:30 +08:00
OoO
326285d8b9 test(p55): 觀測台 mutation endpoint logged-in success path 補測 (23/23 PASS)
P53 之前 mutation endpoint 只測 anon block (302),logged-in 成功路徑零覆蓋:
- /playbooks/toggle/<id>: 翻 is_active 邏輯
- /budget/force_throttle: cost_throttle.evaluate() 呼叫
- /ai_calls/trigger_code_review: code_review_pipeline 觸發
- /host_health/trigger_autoheal: autoheal playbook 觸發

新增 5 cases:
- test_playbook_toggle_404_on_missing: fetchone()=None 必回 404
- test_playbook_toggle_flips_active_flag: False→True 翻轉 + 中文 message
- test_budget_force_throttle_invokes_evaluate: monkeypatch 假 throttle service
- test_ai_calls_trigger_code_review_returns_json: 至少回 JSON 不爆
- test_host_health_trigger_autoheal_returns_json: 至少回 JSON 不爆

設計重點:對未來 service 重構容忍(status code 收 200/400/500/503)
但堅持「JSON response shape」契約 — 防 HTML error page 漏出。
2026-05-05 12:17:54 +08:00
OoO
118f10701b test(p54): get_host_label / get_provider_tag 補測 (20/20 PASS)
P53 commit 7a10d27 加了 K8s Nginx Proxy 路由判斷
(192.168.0.110:11435/11436 → GCP-A/B),但無單測。
未來改 IP / 加 provider 容易破而不自知。

覆蓋:
- TestGetHostLabel × 9 cases:
  empty / GCP-A 直連 / GCP-B 直連 / Nginx 11435 / Nginx 11436 /
  111 備援 / 188 本地 / localhost / unknown fallback
- TestGetProviderTag × 5 cases + parametrize × 6 row:
  empty / GCP×2 路徑 / Secondary×2 路徑 / 111 / unknown
  + 6 row 對齊 migration 024 ai_calls.provider CHECK 白名單

特別防 regression:K8s 環境 192.168.0.110:11435 不再 fallback "未知"
(這正是 P53 commit 修的問題)。
2026-05-05 01:12:35 +08:00
OoO
a142e85880 test(p53): 觀測台 smoke 涵蓋 P38-P52 新增 11 endpoint (18/18 PASS)
戰役從 P27 6 路由擴展到 P52 共 20 路由(含 5 新 GET / 5 新 POST),
原 12 tests 只蓋 P27-31 範圍,P38-P52 共 11 endpoint 無 regression 防護。

新增測試:
- test_overview_index_200: /observability/ root index
- test_overview_dashboard_200: P45 總覽頁
- test_rag_queries_200: P51 RAG 召回詳情
- test_business_intel_200: P48 商業面 × AI 編排
- test_agent_orchestration_200: P46 Agent 編排矩陣
- test_health_indicator_api_returns_json: P52 topbar 健康燈 JSON API
- test_anon_get_redirects_to_login: 12 GET 路徑全強制 login (擴充 6→12)
- test_anon_post_blocked: 8 POST mutation 全強制 login (擴充 3→8)

prod 實證:mo.wooo.work 11 endpoint 全 Flask 200/308 服務(curl 已驗)。
20/20 routes @login_required 100% 覆蓋(python regex audit)。
2026-05-05 01:09:52 +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