ogt
|
fa484893b9
|
fix: hide runtime terms on governance pages
|
2026-06-25 19:25:22 +08:00 |
|
OoO
|
32b7071ab6
|
V10.614 部署監控頁繁中化
CD Pipeline / deploy (push) Successful in 1m11s
|
2026-06-16 10:03:18 +08:00 |
|
OoO
|
239b773288
|
V10.613 高可見頁面繁中化
CD Pipeline / deploy (push) Successful in 1m14s
|
2026-06-16 09:54:27 +08:00 |
|
OoO
|
bfc5dac624
|
Tighten PPT audit regeneration workflow
|
2026-05-24 17:34:18 +08:00 |
|
OoO
|
e7e045253d
|
補 OpenClaw QA 備援與市場情報交接
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-05-19 12:46:43 +08:00 |
|
OoO
|
45ae7a3d88
|
修正 Code Review Gemini 備援遙測
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-19 12:31:48 +08:00 |
|
OoO
|
c55c74b999
|
強化 PPT 視覺 QA runtime 顯示
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 11:59:18 +08:00 |
|
OoO
|
d2d6bcd263
|
重整 PPT 視覺 QA 產線首屏
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 11:37:18 +08:00 |
|
OoO
|
c383a37f3f
|
補 PPT 視覺 QA stale recovery
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-05-19 10:03:10 +08:00 |
|
OoO
|
21cdbdb75c
|
修正 PPT 視覺 QA 多 worker 狀態
CD Pipeline / deploy (push) Successful in 1m2s
|
2026-05-19 09:15:31 +08:00 |
|
OoO
|
583e318295
|
補 PPT 視覺 QA 背景狀態
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-19 09:06:11 +08:00 |
|
OoO
|
60bc8bf2e2
|
補 PPT 視覺 QA runtime checklist
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-19 01:24:07 +08:00 |
|
OoO
|
4a6f6a2007
|
補 PPT 報表覆蓋矩陣
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-05-19 01:09:58 +08:00 |
|
OoO
|
c08f76f315
|
補 PPT AiderHeal 執行狀態
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 00:49:06 +08:00 |
|
OoO
|
e60707cdfb
|
補 PPT AiderHeal 去重鎖
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 00:35:11 +08:00 |
|
OoO
|
02682c81ed
|
讓 PPT AiderHeal 背景派工
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 00:30:24 +08:00 |
|
OoO
|
2de9386a40
|
修正 PPT AiderHeal 派工
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-19 00:23:32 +08:00 |
|
OoO
|
dddafc579b
|
強化 PPT 視覺問題追蹤
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-19 00:16:21 +08:00 |
|
OoO
|
f51dc173f7
|
補 PPT 視覺 QA 診斷摘要
CD Pipeline / deploy (push) Successful in 1m8s
|
2026-05-19 00:04:27 +08:00 |
|
OoO
|
aa8c2c7148
|
補強 PPT 視覺 QA 補跑與全類型審核
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 20:57:34 +08:00 |
|
OoO
|
be0dd41472
|
新增 PPT 審核歷史同頁回放
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 20:40:25 +08:00 |
|
OoO
|
0609194ef5
|
修正 PPT 預覽抽屜標題選擇器
CD Pipeline / deploy (push) Successful in 1m3s
|
2026-05-18 20:33:38 +08:00 |
|
OoO
|
b8fe5f0c58
|
新增 PPT 同頁 PDF 預覽抽屜
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-05-18 20:28:49 +08:00 |
|
OoO
|
9a88b32e90
|
新增 PPT 本頁批次預熱
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 20:15:26 +08:00 |
|
OoO
|
48d71c711b
|
新增 PPT 預覽快取預熱操作
CD Pipeline / deploy (push) Successful in 1m7s
|
2026-05-18 20:03:19 +08:00 |
|
OoO
|
7e2f1ac671
|
標示 PPT 預覽快取狀態
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 19:48:14 +08:00 |
|
OoO
|
d946c1abab
|
讓 PPT 異常隊列可重跑報表
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 19:32:28 +08:00 |
|
OoO
|
9981bc9d22
|
強化 PPT 異常優先隊列
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 19:21:44 +08:00 |
|
OoO
|
b5511e818f
|
優化 PPT 產線工作隊列
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-05-18 19:13:50 +08:00 |
|
OoO
|
ebbf7bc063
|
優化 PPT 產線健康總覽
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-18 19:00:18 +08:00 |
|
OoO
|
1262017261
|
優化 PPT 最近預覽入口
CD Pipeline / deploy (push) Has been cancelled
|
2026-05-18 16:07:55 +08:00 |
|
OoO
|
d2d8dbab65
|
強化 PPT 產線與線上預覽
CD Pipeline / deploy (push) Has been cancelled
|
2026-05-18 15:44:11 +08:00 |
|
OoO
|
5a21e2394e
|
略過 SQLite host probe 寫入
CD Pipeline / deploy (push) Successful in 58s
|
2026-05-13 18:50:14 +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
|
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 修正
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
|
99d2f3c543
|
fix(p32): admin URL prefix /admin → /observability — 避開 188 nginx SPA shadow
CD Pipeline / deploy (push) Successful in 2m25s
Root cause(curl 實證):
prod 188 nginx 對 /admin/* 設 try_files → SPA index.html fallback
→ Phase 27-31 的 6 個 Flask admin 路由全被 nginx 攔截
→ 外部 GET /admin/ai_calls 回 7480 byte 靜態 HTML(同 etag = SPA shell)
→ 我之前說「6 admin 頁 prod 200」是回了 200,但 body 不是 Flask 渲染
修法:
Blueprint url_prefix /admin → /observability
→ 6 個觀測頁實際生效在 /observability/* 不被 SPA 遮蔽
→ SPA frontend 仍擁有 /admin/* 命名空間(不破壞既有前端)
更新範圍:
- routes/admin_observability_routes.py: url_prefix + 註解全改
- 6 templates: 所有 href / fetch() 路徑改 /observability/
- tests/test_admin_observability_routes.py: client.get/post 路徑改
- 10/10 smoke tests 仍 PASS
統帥訪問新路徑:
http://192.168.0.188/observability/ai_calls
http://192.168.0.188/observability/host_health
http://192.168.0.188/observability/budget
http://192.168.0.188/observability/promotion_review
http://192.168.0.188/observability/quality_trend
http://192.168.0.188/observability/ppt_audit_history
|
2026-05-04 14:13:27 +08:00 |
|
OoO
|
82595ab4ac
|
test(p31): admin observability 6 路由 smoke tests (10/10 PASS)
防 Phase 27/28/29 6 個 admin 頁未來被改壞無人察覺。
覆蓋:
- /admin/ai_calls 200 + DB error fallback (2 cases)
- /admin/promotion_review 200
- /admin/quality_trend 200
- /admin/budget 200
- /admin/budget/update/<id> 輸入驗證 (3 cases: 拒負 budget / 拒 alert>100 / 收正常)
- /admin/ppt_audit_history 200 (掃 reports/ 不需 DB)
- /admin/host_health 200 (mock requests.get 三主機全 down 仍 render)
技術重點:
- 全 mock get_session,不接真 DB
- jinja2 csrf_token() stub 避免 base.html 渲染失敗
- requests.get monkeypatch 避免測試誤打三主機 11434
跑法:venv pytest tests/test_admin_observability_routes.py -v
|
2026-05-04 13:51:07 +08:00 |
|