OoO
347efb8ea1
feat(p46): Agent 編排矩陣新頁 — OpenClaw/Hermes/NemoTron/EA × Ollama × Gemini × MCP × RAG
...
CD Pipeline / deploy (push) Successful in 2m30s
統帥要求:「好好把 OpenClaw/Hermes/NemoTron/ElephantAlpha + Ollama 多模型
+ 外部付費 Gemini + 內外 MCP + RAG 組合發揮出 AI 自動化新境界」
新頁面 /observability/agent_orchestration 一頁式呈現 4 Agent × 5 維度全景:
J-1: caller 自動分組
- OpenClaw: openclaw_qa/daily/meta/monthly/weekly/bot_main/bot_gemini/bot_nim
+ sales_copy + code_review_openclaw
- Hermes: hermes_analyst + hermes_intent + code_review_hermes
- NemoTron: nemotron_dispatch
- ElephantAlpha: ea_engine + code_review_elephant
J-2/3: 跨表 SQL JOIN(ai_calls × mcp_calls × rag_query_log)
每個 agent 顯示:
- 24h 呼叫 + Token + 成本
- 本地 Ollama 比例(細分 GCP-A/GCP-B/111)
- 付費 LLM 比例(細分 Gemini / 其他)
- MCP 編排率(透過 request_id 跨表 JOIN mcp_calls)
- RAG 命中率
- 錯誤率 + 平均耗時
- MCP server × caller 工作量明細
自動編排建議(5 條 rule-based):
1. 付費比例 > 50% 且 ollama < 20% → 改 Hermes-first 短路
2. 錯誤率 > 10% → 觸發 Code Review Pipeline
3. MCP 編排率 < 5% 但 calls > 50 → 擴大 MCP omnisearch/firecrawl
4. RAG 命中率 ≥ 40% → 推 Telegram 收 feedback 強化 promotion gate
5. 111 fallback 比例 > 20% → GCP 兩台異常,查 host_health AIOps
J-4: 入口
- sidebar AI 觀測 group 加「Agent 編排矩陣」(07b)
- /observability/overview 入口卡升級為 7 項,Agent 編排矩陣放第一
整體 KPI 卡片:
- 總呼叫 / 本地 Ollama 比例 / 付費 LLM 成本 / RAG 命中率
- 「組合發揮」一目瞭然
8 表跨 JOIN:ai_calls × mcp_calls × rag_query_log × ai_insights ×
learning_episodes × incidents × heal_logs × host_health_probes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 19:38:10 +08:00
OoO
849e189b60
feat(p45): UI/UX 升級 ewoooc_base.html + sidebar AI 觀測 7 項 + 新增總覽頁
...
CD Pipeline / deploy (push) Successful in 2m37s
統帥質疑:「那六頁的視覺方格 UI/UX 搞好了嗎?還有新增頁面嗎?」
回答:沒有,從 Phase 38 開始一直推遲。本 commit 補做。
I-1: 6 頁 base.html → ewoooc_base.html
- host_health / ai_calls_dashboard / budget / promotion_review /
quality_trend / ppt_audit_history 全改
- {% extends "base.html" %} → {% extends "ewoooc_base.html" %}
- {% block content %} → {% block ewooo_content %}
- 自動繼承:sidebar 240px / topbar 64px / fonts (Inter+JetBrains+Noto Sans TC)
/ ewoooc-tokens.css / ewoooc-shell.css / search box / 米色背景
I-2: _ewoooc_shell.html 加「AI 觀測」nav group
- 7 個項目:觀測台總覽 / 主機健康 / AI 呼叫 / 預算控管 /
RAG 晉升審核 / 反饋趨勢 / PPT 視覺審核
- 對應 active_page='obs_*',正確高亮
- 編號 07-13(系統管理改 14)
I-3: 新增頁面 /observability/ + /observability/overview
- routes/admin_observability_routes.py::observability_overview
- 單頁聚合 8 表跨 JOIN 的 KPI:
• 三主機 24h 在線率(host_health_probes,per host card)
• AI 呼叫 24h(ai_calls:total/tokens/cost/error rate/RAG hit/cache hit)
• 當月成本累計
• 預算告警(ratio ≥ alert_pct 自動列表)
• AIOps 7d(incidents + heal_logs:自癒成功率)
• MCP 24h(mcp_calls:tool 呼叫 + cache 率 + cost)
• RAG 學習 30d(learning_episodes:待審 + 晉升率)
• PPT 視覺審核 7d(ppt_audit_results:通過率)
• 6 大子頁入口卡(含一行說明)
- 對應 Phase 44 daily Telegram summary 的 web 版本
- 全部失敗安全(個別 query 失敗只跳過該卡,不擋整頁)
升級對應:
- UI 框架:base.html → ewoooc_base.html ✅ (sidebar + topbar + token css 已生效)
- 設計憲法:8 卡片 + 8 表跨 JOIN 全景 + 一頁式總覽
- 入口:sidebar 7 項 + 觀測台首頁
- 資料表覆蓋:4 表(Phase 38)→ 8 表(Phase 45)
注意:完整 design token 重塑(Bootstrap class → --momo-* token / 焦糖橘)
留待後續 phase;本 commit 重點是「框架升級 + 新總覽頁」。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 19:34:18 +08:00
OoO
4020b734a5
feat(p41): 觀測台戰役完整收官 — K8s 三主機化 + ppt RAG + TG inline action
...
CD Pipeline / deploy (push) Successful in 2m34s
E-1: K8s configmap 對齊三主機級聯(清舊配置遺留)
- k8s/02-configmap.yaml:
- 移除寫死的 OLLAMA_HOST=192.168.0.188:11434(早已過時)
- 改注入 OLLAMA_HOST_PRIMARY/SECONDARY/FALLBACK 三個變數
- llama3:70b → qwen3:8b(與目前 prod 一致)
- k8s/gcp/02-configmap.yaml:
- 移除「OLLAMA_HOST=空 + AI_PROVIDER=gemini」自相矛盾
- 改三主機級聯 + AI_PROVIDER=ollama(與 docker-compose.yml 一致)
E-2: ppt_audit 加 RAG「相似失敗修法」
- 對最近 3 筆 audit_status='failed'/'error' 跑 rag_service.query
- 從 ai_insights 召回相似案例(cosine ≥ 0.6, top 2)
- template 加「RAG 自動修法建議」card
E-3: Telegram obs_health/obs_budget 加 inline action button (L2)
- cmd:obs_health:任一主機標記異常時,inline 顯示「🩹 修 GCP-A/GCP-B/111」按鈕
- cmd:obs_heal:{label}:新 handler,在 Telegram 內直接觸發 AutoHeal
(白名單 GCP-A/GCP-B/111,非 unhealthy 拒絕)
- cmd:obs_budget:warn 時 inline 顯示「⚡ 立即重算節流狀態」按鈕
- cmd:obs_force_throttle:新 handler,Telegram 內直接觸發 evaluate_throttle_status
最終升級對應:
- RAG 整合 4/6 → 5/6(補 ppt_audit)
- AI 自動化:Web L2×4 + Telegram L2×2 = 6 個一鍵自動化入口
- K8s 配置一致性:三套 (docker-compose / k8s/* / k8s/gcp/*) 統一
指向 GCP-A → GCP-B → 111 三主機鏈
Phase 38+39+40+41 累計 7 commits 觀測台戰役完整收官。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 19:18:23 +08:00
OoO
65f236da2d
feat(p40): 觀測台收官 — 4 頁升 L2 + RAG 根因 + 蒸餾池監控
...
CD Pipeline / deploy (push) Successful in 2m36s
接續 Phase 39 (commit 79cf08c ),本 commit 完成 Phase D 最後 4 項:
D-6: quality_trend 蒸餾池 + RAG 根因
- 新「蒸餾池狀態」card:learning_episodes 各 promotion_status 分布
(pending / awaiting_review / approved / rejected_quality /
rejected_hallucination / rejected_duplicate / rejected_human / expired)
- 對最差 3 名 caller (avg_score < 3 且反饋 ≥ 3) 自動 RAG 根因建議
- RAG 從 ai_insights 召回相似低品質案例
D-7: ai_calls 一鍵 Code Review (L2)
- 新 POST /observability/ai_calls/trigger_code_review
讀 git rev-parse HEAD + diff-tree 取最新變更檔案
在 daemon thread 跑 CodeReviewPipeline.run() (5 step Hermes→
OpenClaw→EA→NemoTron)
- 頁面新增「觸發 Code Review Pipeline」按鈕
D-8: ppt_audit 失敗 row 一鍵 AiderHeal (L2)
- 新 POST /observability/ppt_audit/trigger_aider_heal
接收 pptx_filename + error_msg,呼叫 services/aider_heal_executor::
execute_code_fix 自動修 services/ppt_generator.py
AiderHeal 修完會 git push 觸發 CD
- audit_records 表中 status='failed'/'error' 的 row 自動顯示按鈕
D-9: host_health 一鍵 AutoHeal (L2)
- 新 POST /observability/host_health/trigger_autoheal
接收 host_label,白名單對應 OLLAMA_HOST_PRIMARY/SECONDARY/FALLBACK
防 SSRF。已標記 unhealthy 的 host 才允許觸發
呼叫 auto_heal_service.handle_exception(error_type='ollama_unhealthy')
跑 ADR-013 playbook(DOCKER_RESTART / SSH_CMD / ALERT_ONLY)
- 三主機 row 中 unhealthy / down 的 host 自動顯示按鈕
升級對應:
- AI 自動化:L2 從 1 個 → 4 個(budget force_throttle / Code Review /
AiderHeal / AutoHeal)
- DB 利用率 ~60%:新增 learning_episodes 分布查詢
- RAG 整合 4/6(promotion_review + budget + quality_trend + 待 ppt_audit)
Phase 38+39+40 累計:6 commits 完成觀測台從 raw dashboard
升級到 AI 自動化專業舞台。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 19:13:39 +08:00
OoO
79cf08c58c
feat(p39): 觀測台升級 — DB + MCP + RAG + AI 自動化深度整合
...
CD Pipeline / deploy (push) Successful in 2m30s
統帥質疑:6 頁觀測台只是 raw stats dashboard,沒展現 AI 自動化專業。
深度盤點 4 軸結果:
- DB 利用率 22.7%(22 表只用 5 張)
- MCP 整合 1/6(mcp_calls 表完全沒被讀)
- RAG 整合 0/6(沒 import rag_service)
- AI 自動化 L0 × 5 + L1 × 1(純讀 dashboard,無一鍵觸發)
本 commit 5 個增強:
D-1: promotion_review 加 RAG「Top 3 相似已晉升」
- 對每筆 awaiting_review episode 跑 rag_service.query 找 ai_insights 中
cosine ≥ 0.7 的相似已晉升內容
- 輔助人工判斷:是否冗餘?是否新領域?
- header 顯示 ai_insights 知識庫 size
- fail-safe: 單筆 RAG 失敗不影響其餘
D-2: host_health 加 MCP 24h 工作量 widget
- 從 mcp_calls 統計各 server 24h 呼叫次數 / 成功率 / cache 率 /
使用 tool 數 / 平均耗時 / cost
- 展現「AI×MCP 編排規模」而非只「server 健康與否」
D-3: ai_calls × rag_query_log × mcp_calls 三表 JOIN
- 新增「呼叫端 × RAG × MCP 編排矩陣」card
- 每個 caller:總呼叫 / RAG 命中率 / MCP 編排率(透過 request_id 串接)
/ RAG 反饋分數 / 反饋筆數
- 展現「AI 自動化專業」核心指標
D-4: budget 加 RAG 自動策略建議 + 一鍵 force-throttle (L2)
- ratio ≥ 0.8 時自動 RAG 召回 ai_insights 中的 budget_strategy 知識
- POST /budget/force_throttle endpoint:立即重算 cost_throttle 狀態
(不等下次每小時 cron)— 升級到 L2 自動化
- 對應頁面加「立即重算節流狀態」按鈕
D-5: host_health 加 incidents + heal_logs 7d 摘要
- 顯示 ADR-013 AutoHeal 閉環核心 KPI:
總事件 / 未解決 / 已解決 / P0+P1 / 自癒成功率 / 平均自癒耗時
- 展現「AIOps 自癒系統」運作實況
對應升級:
- DB 利用率 22.7% → ~50%(新接 mcp_calls + rag_query_log JOIN
+ ai_insights + incidents + heal_logs)
- MCP 整合 1/6 → 3/6(host_health + ai_calls + budget 都接 mcp_calls)
- RAG 整合 0/6 → 3/6(promotion_review + budget + 待 quality_trend)
- AI 自動化 L1 → L2 一鍵 force-throttle 一個(其餘按鈕待 D-6)
全部 fail-safe:DB 表/RAG/MCP 失敗都不擋頁面渲染。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 19:08:41 +08:00
OoO
0b13055466
feat(p38): host_health + ppt_audit DB 持久化(B-1 + B-2)
...
統帥要求:
1. 所有 6 個觀測頁的功能和數據都要完整寫入資料庫儲存
2. Ollama 切 GCP 順序 GCP-A → GCP-B → 111
盤點結果:
- 4/6 頁面已有 DB 表(ai_calls / learning_episodes / rag_query_log / ai_call_budgets)
- 2/6 頁面是即時查詢無歷史:host_health(HTTP probe)、ppt_audit(os.listdir)
- Ollama 99% 已合規,僅 1 處過時註解
修補(B-1):
- services/code_review_pipeline_service.py:207 註解更新
「直呼內網 Ollama (192.168.0.188)」→ 「走 resolve_ollama_host 三主機級聯 ADR-027」
新增(B-2):
- migrations/029_create_host_health_probes.sql
- 三主機健康歷史表(label/url/healthy/response_ms/error_msg)
- 索引:probed_at / (host_label, probed_at)
- 30 天保留(cron 清理)
- migrations/030_create_ppt_audit_results.sql
- PPT 視覺審核結果表(status/issues_count/issues_found JSONB/confidence)
- 索引:audited_at / pptx_filename / failed-only partial
- routes/admin_observability_routes.py:host_health_dashboard
- 每次 probe 寫入 host_health_probes(失敗安全)
- 新增 24h 健康趨勢卡片(uptime % / 平均 ms)
- routes/admin_observability_routes.py:ppt_audit_history
- 從 ppt_audit_results 讀過去 7 日 audit 紀錄
- 顯示審核時間/檔名/結果/問題數/信心度/耗時
- services/ppt_vision_service.py:check_ppt_file
- 新增 _persist_audit_result() 跑完寫入 DB(status/issues/confidence/duration)
- 失敗安全:DB 寫入失敗只 log warning,不擋主流程
- templates/admin/host_health.html + ppt_audit_history.html
- 新增「24h 健康趨勢」card(host_health)
- 新增「視覺審核歷史紀錄」card(ppt_audit)
DoD:
- 程式碼語法 ✓
- Jinja 平衡 ✓
- 失敗安全(DB 寫入或讀取失敗都不擋頁面渲染)✓
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 18:55:39 +08:00
OoO
19f1340f5c
feat(p38): admin 觀測台 6 頁完整繁中化 + 加入導航選單
...
CD Pipeline / deploy (push) Successful in 2m42s
問題:
1. 6 個 /observability/* 頁面標題與欄位英文殘留(違反設計憲法繁中要求)
2. 6 頁完全沒掛 navbar,使用者進不去(只能彼此 footer link 互連)
3. emoji 取代 Font Awesome,違反設計規範
修補:
- _navbar.html 新增「AI 觀測台」dropdown(位於 AI 助手 與 雲端匯入 之間)
- AI 監控組:AI 呼叫總覽 / 主機健康監控 / 預算控管
- AI 學習組:RAG 學習晉升審核 / Caller 反饋趨勢 / PPT 視覺審核歷史
- 6 個 admin/observability template 全面繁中化:
- 標題、表格欄位、按鈕、badge 文字、JS alert 文案
- emoji → Font Awesome icon(fa-heartbeat / fa-chart-bar / fa-wallet / fa-brain / fa-comments / fa-search 等)
- 移除 5 處 footer 手寫 link 條(已由 navbar 取代,避免雙寫)
- routes/admin_observability_routes.py 6 個 render_template 加 active_page='obs_*'
讓 navbar dropdown 正確高亮
完整覆蓋:host_health / ai_calls_dashboard / budget / promotion_review / quality_trend / ppt_audit_history
設計規範對齊:仍待 Phase 後續工作(ewoooc_base.html 框架升級 + --momo-* design token)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 18:49:44 +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
f2fbe5f929
feat(p30): admin nav 互聯 + deploy doctor v5.0 腳本
...
CD Pipeline / deploy (push) Successful in 2m33s
(1) 6 個 admin 頁底部導覽全互聯(之前缺 Phase 29 兩頁的反向連結)
- ai_calls / promotion_review / quality_trend / host_health
全部加 |Budget|PPT Audit| 連結
- 統帥從任一頁都可一鍵跳到其他 5 頁
(2) scripts/deploy_doctor_v5.py — 統帥手動待辦自助檢查
5 階段檢查:env vars / DB migrations / Ollama 三主機 /
LibreOffice / MCP servers
- 14 個 v5.0 env vars(含 criticality 分級 FAIL/WARN/INFO)
- 5 張 v5.0 必備 table(ai_calls/mcp_calls/ai_call_budgets/
rag_query_log/learning_episodes)
- ai_call_budgets seed ≥8 筆檢查
- 三主機 /api/tags HTTP probe + healthy 數判定
- 退出碼:0=全綠 1=WARN 2=FAIL(可進 CI)
- SSH 188 / 本機都能跑:python3 scripts/deploy_doctor_v5.py
統帥之後想知道「v5.0 還有啥沒部署」直接跑 doctor 看清單,
不用再口頭追問哪些 env vars / 哪幾張 migration。
2026-05-04 13:48:06 +08:00
OoO
69ccf8029b
feat(p29): 預算管理頁 + PPT vision 歷史頁 — 完成 6 個 admin 觀測頁
...
CD Pipeline / deploy (push) Successful in 2m23s
承接 Phase 27/28(48b8fda)剩 2 個前端頁:
1. /admin/budget — 預算編輯器
- GET: ai_call_budgets × 當月 spent 即時對比 + throttle 狀態
- POST /admin/budget/update/<id>: AJAX 編輯 budget_usd / alert_pct
- 不需 restart 立即生效(cost_throttle hourly cron 自動讀新值)
- ratio ≥80% 黃 / ≥110% 紅 / throttled 標 ⚠️ THROTTLED
2. /admin/ppt_audit_history — PPT 視覺審核歷史
- 掃 reports/ 過去 7 日 .pptx 檔(檔名/大小/修改時間)
- 顯示 PPT_VISION_ENABLED 狀態(true=daily 22:00 cron 自動跑)
- 手動觸發 SOP 提示(SSH 188 跑單檔審核)
完工里程碑:6 個 admin 頁 + 1 個導覽
- /admin/ai_calls (Phase 27)
- /admin/promotion_review (Phase 27)
- /admin/quality_trend (Phase 28)
- /admin/host_health (Phase 28)
- /admin/budget (Phase 29) ← 新增
- /admin/ppt_audit_history (Phase 29) ← 新增
Operation Ollama-First v5.0 — 前端互補互動系列收官
2026-05-04 13:44:08 +08:00
OoO
48b8fda7db
feat(p27+28): Admin Observability Dashboard — 4 個前端頁互補 Telegram
...
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
838267c293
feat(p1+p3): logger 接 13 caller + Q&A/Nemotron/日報 feature flag 灰度
...
Phase 1 A4 — 13 個呼叫點接 ai_call_logger(覆蓋率 11.8% → 預估 50%+)
- TOP-1 nemoton_dispatcher: nemotron_dispatch caller (NIM 配額追蹤)
- TOP-2 openclaw_strategist: 4 reports (daily/weekly/monthly/meta) + qa caller
- TOP-3 hermes_analyst: hermes_analyst + hermes_intent (順修 commit 00591c5 殘留 bug)
- TOP-4 code_review_pipeline: code_review_hermes/openclaw/elephant 三鏈 (request_id 串)
- TOP-5 openclaw_bot_routes: openclaw_bot_main/gemini/nim 三層 fallback
Phase 3 A7 — OpenClaw Q&A → qwen3:14b(feature flag OFF)
- OPENCLAW_QA_OLLAMA_FIRST 灰度開關
- 繁中強制 system prompt + Gemini fallback chain
- _is_low_quality_response 品質守門(簡體字檢測 + 拒答訊號 + 結構分數)
- 黃金集 A/B 對照測試框架(10 樣本去 PII)
Phase 3 A8 — OpenClaw 日報 → Hermes 模板(feature flag OFF)
- OPENCLAW_DAILY_HERMES_TEMPLATE 灰度開關
- _compute_daily_kpi 純 SQL + Hermes 規則引擎
- _compute_gemini_insight 精簡 200 字洞察 prompt
- templates/daily_report_v2.j2 + _SafeUndefined 缺欄位優雅降級
- scripts/compare_daily_report_versions.py 雙版本盲測
Phase 3 A9 — Nemotron NIM → qwen3:14b(feature flag OFF)
- NEMOTRON_OLLAMA_FIRST 灰度開關(A2 紅燈:deepseek-r1 假支援,改 qwen3)
- _call_qwen3_dispatch + 既有 NIM tool_calls 解析共用
- 保留 ADR-004「🟡 [降級模式]」Hermes 規則引擎兜底
H6 PII fix — chat_id 進 ai_calls.meta 改 SHA1[:8](4 處 Bot Q&A)
Code Review pipeline — N3 動態 provider tag(gcp/secondary/111)+ A4 logger 三鏈
37 unit tests 全綠(routing 15 + golden 5 + qwen3 8 + daily template 8 + nemotron 1)
Operation Ollama-First v5.0 / Phase 1 A4 + Phase 3 A7+A8+A9
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-03 23:05:38 +08:00
OoO
4c6e4ca5fb
style(ppt): align PPT palette perfectly with MOMO Pro v2 design tokens (Beige, Warm Ink, Caramel Orange) as per frontend upgrade roadmap
2026-05-02 15:01:55 +08:00
OoO
75de76ac12
fix(momo): block EC404 auto-open with end-to-end URL guard
...
CD Pipeline / deploy (push) Has been cancelled
- normalize URLs at write time (scheduler crawlers, routes) to drop
javascript:/EC404/placeholder i_code (momo_/manual_/pchome_)
- add global click+auxclick guard in base.html and ewoooc_base.html
that intercepts blocked MOMO URLs and redirects to safe i_code URL
- per-page dashboards reuse the same isLikelyMomoIcode validation
- /api/track_momo_link records blocked events for diagnosis
- ship sanitize_momo_urls.py to clean existing polluted DB rows
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-02 12:00:34 +08:00
OoO
026d0e7539
feat(reports): move monthly analysis to v2 shell
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
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
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
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 21:03:19 +08:00
OoO
bb99dfeab6
feat(campaign): restore operations table signals
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 20:43:46 +08:00
OoO
b9d6186d68
feat(frontend): sync latest MOMO Pro prototype styling
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 20:32:23 +08:00
OoO
066cf1846f
feat(dashboard): show AI pick evidence gaps
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 17:17:03 +08:00
OoO
0334051aa7
feat(dashboard): 匯出 AI 挑品操作清單
CD Pipeline / deploy (push) Successful in 2m39s
2026-05-01 15:43:57 +08:00
OoO
1d1a7f6e94
feat(dashboard): 強化 AI 挑品清單決策資訊
CD Pipeline / deploy (push) Successful in 2m22s
2026-05-01 15:22:21 +08:00
OoO
a5de082437
feat(dashboard): 顯示 50 品 AI 挑品清單
CD Pipeline / deploy (push) Successful in 3m12s
2026-05-01 15:08:41 +08:00
OoO
1012d609d4
feat(dashboard): 顯示 PChome 比價決策總覽
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 14:19:18 +08:00
OoO
043a7dc915
feat(ai): 補抓 PChome 待比對商品
CD Pipeline / deploy (push) Successful in 2m20s
2026-05-01 13:40:37 +08:00
OoO
82d759d3b1
feat(ai): 建立 PChome 銷售挑品清單
CD Pipeline / deploy (push) Successful in 2m24s
2026-05-01 10:05:16 +08:00
OoO
55855ef508
feat(frontend): 保存 PChome 競品價格歷史
CD Pipeline / deploy (push) Successful in 1m39s
2026-05-01 00:53:37 +08:00
OoO
6b8e511246
feat(frontend): 補齊活動看板篩選與價格歷史區間
CD Pipeline / deploy (push) Successful in 1m44s
2026-05-01 00:43:38 +08:00
OoO
22b27d19df
fix(frontend): 讓價格圖表按鈕直接開啟歷史走勢
CD Pipeline / deploy (push) Successful in 1m44s
2026-05-01 00:38:32 +08:00
OoO
4945aeed3b
fix(frontend): 還原商品看板價格歷史圖表
CD Pipeline / deploy (push) Successful in 1m45s
2026-05-01 00:35:04 +08:00
OoO
8e9fb3dd17
feat(frontend): 將 V2 設為正式預設介面
CD Pipeline / deploy (push) Successful in 1m46s
2026-05-01 00:28:56 +08:00
OoO
15b3bae9cb
feat(frontend): 新增廠商缺貨匯入 V2
CD Pipeline / deploy (push) Successful in 1m42s
2026-05-01 00:21:26 +08:00
OoO
99d5bc8e81
feat(frontend): 新增廠商缺貨清單 V2
2026-05-01 00:12:06 +08:00
OoO
6c73c57a91
feat(frontend): 新增廠商缺貨 V2 入口
2026-05-01 00:04:12 +08:00
OoO
3398c15a75
feat(frontend): 新增 EDM V2 feature flag
2026-04-30 23:56:17 +08:00
OoO
0e18ff304c
feat(frontend): 新增 V2 dashboard feature flag
2026-04-30 23:45:49 +08:00
OoO
5695ead4dc
fix(edm): 修正活動看板排序 endpoint
CD Pipeline / deploy (push) Successful in 1m42s
2026-04-30 14:29:40 +08:00
OoO
d5f4fd7198
加入 AI Smoke 每日摘要推播
CD Pipeline / deploy (push) Successful in 1m15s
2026-04-29 23:57:36 +08:00
OoO
10bbd55f5b
補齊 AI Smoke 趨勢管理
CD Pipeline / deploy (push) Successful in 1m13s
2026-04-29 23:54:23 +08:00
OoO
81159b5b3d
保存 AI Smoke 趨勢紀錄
CD Pipeline / deploy (push) Successful in 1m14s
2026-04-29 23:50:44 +08:00
OoO
cde8b0cd3e
新增 AI 自動化 Smoke Dashboard
CD Pipeline / deploy (push) Successful in 1m16s
2026-04-29 23:46:48 +08:00
OoO
53edcc0077
refactor(templates): 統一模板目錄並移除 fallback loader
...
ADR-017 Phase 3f-4:根目錄模板搬入 templates/,補 trends/login_history,移除 ChoiceLoader 根目錄 fallback,搬移 components,刪除 web/templates 下的空檔/死檔與 compose 舊模板 mount。
2026-04-29 21:44:38 +08:00
OoO
71ea819d06
refactor(routes): 刪除 app.py 首頁重複路由
...
ADR-017 Phase 3f-1 dashboard sprint;首頁改由 dashboard_bp 接管,並更新 url_for('index') 相容引用。
2026-04-29 21:11:45 +08:00
ogt
a96306fba2
Fix Telegram bot natural language communication issue
...
- Install python-telegram-bot dependency
- Start Telegram bot service successfully
- Confirm correct group ID (MOMO PRO - small shrimp group)
- Bot now running with all commands and button interface functional
- Natural language processing restored with keyword matching
Fixes issue where Telegram group could not communicate using natural language.
2026-04-22 14:27:50 +08:00
ogt
1cc8190bfc
fix(code-review): 修復頁面空白的 race condition
...
CD Pipeline / deploy (push) Successful in 1m24s
loadHistory() 完成後才是自動載入最新記錄的正確時機;
原本放在 poll() 的觸發點在 _historyData 還未填充時就已執行,
導致條件永遠不成立,頁面一直顯示佔位符。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 09:22:10 +08:00
ogt
b11789db77
fix(telegram+review): 修復 PPT 按鈕無反應 + Code Review 頁面空白
...
CD Pipeline / deploy (push) Successful in 1m28s
PPT 按鈕:
- telegram_bot_service.py 新增 cmd:* handler,透過 Thread 轉發到
OpenClaw Flask 內部 API(/bot/internal/cmd)
- openclaw_bot_routes.py 新增 /bot/internal/cmd 端點,背景執行 handle_cmd()
Code Review 頁面:
- get_history() 補回 findings / openclaw_report 欄位
- code_review.html history 項目可點擊,自動載入詳細內容
- poll() 無 active pipeline 時自動顯示最新歷史記錄
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 08:56:10 +08:00
ogt
2e0de960ce
feat(code-review): 重建為 Post-Deploy AI Agent Pipeline
...
CD Pipeline / deploy (push) Successful in 1m21s
架構重建:
- 移除 pre-commit hook(本機 commit 不再阻塞)
- 改為 CD 健康檢查通過後自動觸發 webhook
新建 services/code_review_pipeline_service.py:
5-Step Pipeline(後台 daemon thread)
Step1 system 讀取部署後變更檔案內容
Step2 Hermes 程式碼掃描(bugs/security/perf,hermes3:latest)
Step3 OpenClaw 架構品質評估(Gemini 2.5 Flash)
Step4 ElephantAlpha 決策協調(severity + auto_fix 裁量)
Step5 NemoTron action_plans 寫入 + AiderHeal 觸發
全程 Telegram 告警(啟動/完成/錯誤)+ ai_insights DB 持久化
重建 routes/code_review_routes.py:
POST /code-review/api/internal/trigger CD webhook(X-Internal-Token)
GET /code-review/api/status 前端即時 polling
GET /code-review/api/history 歷史清單
GET /code-review/ 前端儀表板
重建 templates/code_review.html:
深色儀表板,Pipeline 即時進度 + Severity 分佈 + 問題清單 + EA 決策
3s polling(running)/ 30s(idle)
.gitea/workflows/cd.yaml:
健康檢查通過後注入「觸發 AI Code Review」step
continue-on-error: true(不影響部署結果)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 20:55:23 +08:00
ogt
1b4f3a7bbe
feat: EwoooC 初始化 — 完整專案推版至 Gitea
...
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 01:21:13 +08:00