ogt
|
27e8dc8b07
|
fix: broaden public UI sanitizers
CD Pipeline / deploy (push) Successful in 1m1s
|
2026-06-25 15:21:34 +08:00 |
|
ogt
|
bbf6a97d77
|
fix: remove model route remnants from review history
CD Pipeline / deploy (push) Successful in 1m3s
|
2026-06-25 14:54:52 +08:00 |
|
ogt
|
ede129d6e1
|
fix: sanitize code review routing copy
CD Pipeline / deploy (push) Has been cancelled
|
2026-06-25 14:53:53 +08:00 |
|
ogt
|
ef6c4b0abd
|
fix: hide model timeout in deploy review reports
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-06-25 14:52:31 +08:00 |
|
OoO
|
c83fb4cfa9
|
fix: skip missing code review ollama models
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-06-18 14:34:53 +08:00 |
|
OoO
|
03d60c202f
|
V10.579 強化高信心比價安全覆蓋
CD Pipeline / deploy (push) Successful in 1m8s
|
2026-06-04 11:39:33 +08:00 |
|
OoO
|
3f528dade3
|
V10.578 修正 Code Review timeout 誤報
CD Pipeline / deploy (push) Successful in 1m5s
|
2026-06-04 11:32:07 +08:00 |
|
OoO
|
5f7073798a
|
V10.577 補 Code Review Ollama preflight
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-06-04 11:28:03 +08:00 |
|
OoO
|
b7838b382f
|
V10.502 修正 AiderHeal 自動修復診斷
|
2026-05-31 16:49:45 +08:00 |
|
OoO
|
6ac412716a
|
V10.413 protect code review fallback host
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-24 14:05:59 +08:00 |
|
OoO
|
5ea556d406
|
V10.410 tune code review ollama timeouts
CD Pipeline / deploy (push) Successful in 1m4s
|
2026-05-24 13:42:54 +08:00 |
|
OoO
|
717231167f
|
V10.406 shorten code review ollama keepalive
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-24 13:24:59 +08:00 |
|
OoO
|
c016200bf4
|
硬封鎖 Gemini API 預設出站
|
2026-05-21 14:45:32 +08:00 |
|
OoO
|
00a808518e
|
將 111 Ollama fallback 收斂到輕量模型
|
2026-05-21 12:39:23 +08:00 |
|
OoO
|
a46396ca7f
|
[V10.350] 關閉 Gemini 預設備援出站
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-20 20:10:21 +08:00 |
|
OoO
|
0fc96837f4
|
[V10.284] 預設關閉 Code Review Hermes LLM scan | code_review_pipeline_service.py
CD Pipeline / deploy (push) Successful in 1m1s
|
2026-05-19 22:34:30 +08:00 |
|
OoO
|
840cb0acdb
|
[V10.283] 收斂 Code Review Hermes fast scan prompt | code_review_pipeline_service.py
CD Pipeline / deploy (push) Successful in 1m2s
|
2026-05-19 22:30:05 +08:00 |
|
OoO
|
350022f2ea
|
[V10.282] 補齊 Code Review Hermes 本地模型矩陣 | code_review_pipeline_service.py
CD Pipeline / deploy (push) Successful in 1m1s
|
2026-05-19 22:26:09 +08:00 |
|
OoO
|
f8222006b8
|
[V10.281] 強化 Code Review Ollama 本地備援矩陣 | code_review_pipeline_service.py
CD Pipeline / deploy (push) Successful in 1m3s
|
2026-05-19 22:15:48 +08:00 |
|
OoO
|
03ab276032
|
[V10.279] 收斂 Code Review Ollama 路徑並補 Phase80 gate | code_review, market_intel
CD Pipeline / deploy (push) Has been cancelled
|
2026-05-19 21:57:44 +08:00 |
|
OoO
|
5e2186a808
|
防止 action_plans 重複回長
CD Pipeline / deploy (push) Successful in 1m0s
|
2026-05-19 21:19:41 +08:00 |
|
OoO
|
45ae7a3d88
|
修正 Code Review Gemini 備援遙測
CD Pipeline / deploy (push) Successful in 1m6s
|
2026-05-19 12:31:48 +08:00 |
|
OoO
|
2635b22ebc
|
修正缺貨清單手機表頭溢出
CD Pipeline / deploy (push) Successful in 56s
|
2026-05-13 20:16:30 +08:00 |
|
OoO
|
bd6310365e
|
停用 CICD 舊叢集副作用
CD Pipeline / deploy (push) Has been cancelled
|
2026-05-13 19:19:15 +08:00 |
|
OoO
|
bff8c4941c
|
補 Code Review 失敗通知診斷
CD Pipeline / deploy (push) Has been cancelled
|
2026-05-13 12:53:01 +08:00 |
|
OoO
|
7a10d27d61
|
feat(p53): K8s Nginx Proxy 支援 — host_label/provider_tag 補完
CD Pipeline / deploy (push) Has been cancelled
問題:
K8s 內網無法直連 GCP 公網 11434,所以 110 跳板架了 Nginx Proxy
轉發 11435/11436 到 GCP-A/GCP-B。但 services/ollama_service.py 的
get_host_label() 只看 IP substring(34.143.170.20 / 34.21.145.224),
K8s 環境會 fallback 到「未知」造成觀測台主機標籤錯亂。
修補:
- services/ollama_service.py::get_host_label
新增:
192.168.0.110:11435 → "GCP-SSD(via Nginx 110)"
192.168.0.110:11436 → "GCP-SSD-2(via Nginx 110)"
保留:直連 GCP / 111 / 188 / localhost 既有判斷
- services/ollama_service.py::get_provider_tag(新函式)
統一 provider 標籤判斷(之前散落 code_review_pipeline 等多處重寫):
GCP 直連 + Nginx 11435 → 'gcp_ollama'
GCP-B 直連 + Nginx 11436 → 'ollama_secondary'
111 → 'ollama_111'
其他 → 'ollama_other'
跨環境統一:ai_calls.provider 在 docker-compose / K8s 都記同一 tag,
跨環境統計不分裂。
- services/code_review_pipeline_service.py:233
改用統一 get_provider_tag(),移除原本 hardcode 的 if/else IP 判斷。
- k8s/02-configmap.yaml(user 已改)
OLLAMA_HOST_PRIMARY = http://192.168.0.110:11435 (Nginx → GCP-A)
OLLAMA_HOST_SECONDARY = http://192.168.0.110:11436 (Nginx → GCP-B)
OLLAMA_HOST_FALLBACK = http://192.168.0.111:11434 (內網)
driver test:
http://34.143.170.20:11434 → GCP-SSD / gcp_ollama
http://192.168.0.110:11435 → GCP-SSD(via Nginx 110)/ gcp_ollama
http://192.168.0.111:11434 → 111 備援 / ollama_111
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-05 01:09:56 +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
|
943de8466c
|
feat(p7): Anthropic SDK + Claude Opus 4.7 接 Code Review (feature flag OFF)
CD Pipeline / deploy (push) Has been cancelled
Operation Ollama-First v5.0 / Phase 7 Frontier 升級
services/anthropic_service.py (新檔, 226 行)
- AnthropicService 包裝 + ClaudeResponse dataclass
- Ephemeral prompt cache 5 分鐘 TTL(重複 system_prompt 省 90% 成本)
- usage 解析 input/output/cache_creation/cache_read 四欄位
- ANTHROPIC_API_KEY 未設或 SDK 缺失時 is_available()=False 靜默退化
code_review_pipeline_service.py — _openclaw_assess 加 L1 Claude 分支
- CODE_REVIEW_USE_CLAUDE flag (預設 OFF,等 ANTHROPIC_API_KEY 設定後翻 ON)
- 路由:Claude Opus 4.7 (Arena code Elo 1548) → Gemini → ElephantAlpha 三層
- request_id 串鏈不變
ai_call_logger.py COST_TABLE 補 3 個 Claude 模型:
- claude-opus-4-7: $15/$75 per M tokens (程式碼 #1)
- claude-sonnet-4-6: $3/$15 per M tokens (agentic 平衡)
- claude-haiku-4-5: $0.8/$4 per M tokens (輕量快速)
requirements.txt: 加 anthropic>=0.40.0
.env.example: 加 ANTHROPIC_API_KEY / CODE_REVIEW_USE_CLAUDE / CLAUDE_MODEL
52 unit tests 全綠(22 logger + 18 anthropic + 5 routing + 7 security)
啟用步驟(待統帥手動):
1. .env 加 ANTHROPIC_API_KEY=sk-ant-...
2. CODE_REVIEW_USE_CLAUDE=true + restart momo-app
3. 觀察 ai_calls.cache_read_tokens > 0 確認 cache 生效
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-03 23:31:30 +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
|
6cad59f83e
|
feat(code-review): ADR-020 全自動修復政策 — 拆掉 CRITICAL/HIGH HITL 閘門
CD Pipeline / deploy (push) Successful in 2m23s
post-deploy code review pipeline 改為「任何 finding 一律觸發 AiderHeal」,
局部覆寫 ADR-012 L3 HITL(不影響 schema migration / 流量切換 /
customer-facing 廣播 / AIOps prod SSH 等其他 L3 場景)。安全網改為
Git revert + Gitea CI/CD 健康檢查 + 主開關 CODE_REVIEW_AUTO_FIX_ENABLED。
實作:
• _ea_orchestrate / _guard_ea_decision / rule fallback 三條路徑統一為
has_findings AND AUTO_FIX_ENABLED → auto_fix=true
• _guard 強制 LLM 即使回 auto_fix=False 也升級為 true(核心保證)
• CODE_REVIEW_AUTO_FIX_ENABLED 預設 false → true
• Telegram 文案移除「需人工審查」,改顯示主開關狀態
• action_plan status pending_review → auto_disabled(語意對齊)
• aider_heal_executor 標頭 ADR-014 → ADR-020、補「直推 main」分支策略
文件:
• 新增 docs/adr/ADR-020-code-review-full-autoheal.md
• ADR-012 加 Note 行反向引用 ADR-020
• README 索引收錄
測試:tests/test_code_review_pipeline_security.py 反轉 HITL 期望,
新增 5 case(含 LLM 降級被 guard 拒絕、LLM human_review_needed=true 被改 false)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-02 23:44:01 +08:00 |
|
OoO
|
0c2e9bbced
|
串接 AI 洞察向量化與漏通知入口
CD Pipeline / deploy (push) Successful in 1m13s
|
2026-04-29 23:05:46 +08:00 |
|
OoO
|
1c2dc6cd61
|
補強 AI 自動化閉環與安全降級
CD Pipeline / deploy (push) Successful in 1m14s
|
2026-04-29 22:56:00 +08:00 |
|
OoO
|
333fc159ae
|
fix: CodeReview Gemini 模型從已下架 preview 換成 gemini-2.5-flash
CD Pipeline / deploy (push) Successful in 1m6s
services/code_review_pipeline_service.py:41 OPENCLAW_MODEL 預設值
gemini-2.5-flash-preview-05-20 已被 Google 下架(404 not found),
改為穩定 GA 版本 gemini-2.5-flash。
驗證:直接 API 測試
- gemini-2.5-flash → 200 ✅
- gemini-2.5-flash-preview-05-20 → 404 ❌
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-28 21:01:44 +08:00 |
|
ogt
|
d5c0feab5e
|
fix: Telegram bot 全功能修復 — 16個await按鈕/AI對話/模型遷移/DB schema
CD Pipeline / deploy (push) Successful in 1m35s
## Telegram Bot 功能修復
- 補全 16 個 await: 按鈕的 handler(日期選擇/目標設定/促銷追蹤等),
新增 _handle_await_callback + _process_await_input 完整狀態機
- cmd: 按鈕加入 ⏳ 即時回饋 + try/except 防 BadRequest
- handle_callback 加頂層 try/except 錯誤兜底
- 補 momo:cmd:suggestion + momo:menu:main callback handler
- 修復 _enhanced_keyword_matching context NameError
## AI 模型遷移(hermes3@111 → qwen2.5@188)
- hermes_analyst_service: URL 192.168.0.111→188, hermes3→qwen2.5:7b-instruct
- code_review_pipeline: 改用 HERMES_URL/HERMES_MODEL 常數
- elephant_alpha_orchestrator / nemoton_dispatcher: registry/footprint 同步
- aider_heal_executor: OLLAMA_API_BASE fallback 改 188
- ai_routes: footprint display 字串改 qwen2.5:7b-instruct
## ElephantAlpha 404 修復
- elephant_service: openrouter→NVIDIA NIM, nvidia/llama-3.1-nemotron-ultra-253b-v1
- ai_provider: 模型 ID 同步更新
## TELEGRAM_CHAT_ID 環境變數修正
- cicd_routes + aider_heal_executor: 優先讀 TELEGRAM_CHAT_IDS[0],
fallback TELEGRAM_CHAT_ID,修復通知靜默失敗
## AI 對話 logging 改善
- telegram_ai_integration: Hermes 降級改 WARNING,OpenClaw 失敗加 exc_info
- hermes_analyst_service: 連線失敗 log 加 host/model context
## DB Schema 修復
- migrations/019: action_plans 補齊全欄位,DROP NOT NULL action_type
- autoheal_models: ActionPlan ORM 同步為超集 schema
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-25 03:30:14 +08:00 |
|
ogt
|
9793f7f5ed
|
fix(code-review): EA 決策改為 ADR-014 全自動修復策略
CD Pipeline / deploy (push) Successful in 1m16s
任何 finding 一律觸發 AiderHeal 自動修復,安全網為 Git+Gitea CI/CD 回滾防線。
移除 HIGH 1-2 → 人工審查的錯誤門檻,fix_files 範圍擴展至所有有問題的檔案。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-22 09:54:20 +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
|
1f7b903d36
|
fix(code-review): 修復 Hermes 401 與 OpenClaw GEMINI_API_KEY 缺失
CD Pipeline / deploy (push) Successful in 1m17s
Hermes 掃描:改直呼內網 http://192.168.0.111:11434/api/generate
(棄用 ai_provider_service,避開公網 Ollama 401 認證問題)
OpenClaw 評估:Gemini 優先,降級用 elephant_service(OpenRouter)
(容器內無 GEMINI_API_KEY,但 OPENROUTER_API_KEY 一定存在)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-21 21:16:44 +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 |
|