- ADR-068: 完整記錄五根因、四階段修復、首席架構師審查、E2E 驗收、驗證 Runbook - LOGBOOK: 更新當前狀態,標記全閉環 - Skill 02 v2.8: 新增「自動修復飛輪六大鐵律」章節(affected_services/alert_name/Router層/Jaccard/alertname變體/Embedding雙軌) 2026-04-10 Asia/Taipei — Claude Sonnet 4.6 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 KiB
LOGBOOK - AWOOOI 進度軌跡
用途: AI 代理進度追蹤,防止 Session 斷層 規則: 完成重要節點後追加一行 歷史: 舊條目已壓縮,詳細記錄見 git log
📍 當前狀態 (2026-04-10 ADR-068 飛輪冷啟動全閉環 ✅ 首席架構師審查 97/100)
ADR-068 飛輪冷啟動斷層修復 — 全閉環
| Commit | 內容 |
|---|---|
c6edfb5 |
四階段修復:P1 affected_services / P2 alertname 變體 / P3 Jaccard 豁免 / P4 embedding 持久化 |
670cd5d |
首席架構師審查修正:C1 Repository / C2 Router→Service / I1-I4 / M1 |
E2E 驗收(2026-04-10 03:20):
ALERT_RECEIVED → AUTO_REPAIR_TRIGGERED ok=True → EXECUTION_COMPLETED ok=True → TELEGRAM_SENT
HostHighCpuLoad 匹配 high-cpu-restart PB-20260406-488671 ✅
文件更新: ADR-068 ✅ | Skill 02 v2.8 ✅ | Memory feedback ✅ | LOGBOOK ✅
📍 舊狀態 (2026-04-10 飛輪四階段系統性修復 ✅ E2E 驗收通過)
飛輪冷啟動斷層修復 (c6edfb5 → ab6f6fa)
| Phase | 根因 | 修復 | 驗收 |
|---|---|---|---|
| P3 | Jaccard 空集合打 0 → 通用型 Playbook 永不匹配 | similarity.py affected_services/severity 空集合豁免 1.0 |
✅ |
| P2 | Redis index 缺少 HostHighCpuLoad 等真實 alertname | Redis 腳本執行 + alert_rules.yaml 擴充 5 條規則 | ✅ |
| P1 | affected_services=[alertname] 污染 + alert_name="custom" | _extract_affected_services() + 完整 labels → Signal |
✅ |
| P4 | 重啟後向量快取清空(冷啟動斷層) | playbook_embeddings pgvector 表 + 啟動自動重建 18/18 |
✅ |
E2E 驗收 log(2026-04-10 03:20):
ALERT_RECEIVED HostHighCpuLoad
AUTO_REPAIR_TRIGGERED ok=True high-cpu-restart ← 不再 NO_MATCH ✅
EXECUTION_COMPLETED ok=True PB-20260406-488671
TELEGRAM_SENT ok=True approval_card
下一步 Backlog
B5 整合測試框架 > B2 前端拓撲補完 > B6 SOUL.md
📍 舊狀態 (2026-04-10 Phase O-6 視覺化驗收 ✅ + 全 Backlog 閉環)
Phase O-6 視覺化驗收 — 全部通過
| 項目 | 結果 |
|---|---|
| O-6.1 Grafana 3 dashboards | ✅ ai/infra/nvidia 已存在 |
| O-6.2 service-registry | ✅ 補齊9個K8s部署, prometheus 96%, 0 errors (ab3e266) |
| O-6.3 ADR-053 可觀測性統一架構 | ✅ 已存在 |
| E2E Prometheus 35/35 targets | ✅ |
| E2E Velero daily backup | ✅ |
| E2E API all components | ✅ |
| B1 Sensor Agent stream | ✅ awoooi:signals 活躍 |
下一步 Backlog
B5 整合測試框架 > B2 前端拓撲補完 > B6 SOUL.md
📍 舊狀態 (2026-04-10 Phase 33 架構審查完成 + RAG 5814 chunks E2E 驗收)
ADR-067 Phase 30-34 最終狀態
| Phase | 應用 | Commit | 狀態 |
|---|---|---|---|
| 30 | Drift 報告中文摘要 (qwen2.5:7b-instruct) | a30713b |
✅ |
| 31 | Log 異常摘要 (deepseek-r1:14b) | 63e840a |
✅ |
| 32 | PR 自動審查 (qwen2.5-coder:7b) | 63e840a |
✅ |
| 33 | RAG 知識庫 pgvector (nomic-embed-text) | cc8cabe |
✅ 5814 chunks 架構審查合規 |
| 34 | 圖片分析 Telegram (llava:latest) | 63e840a |
✅ |
Phase 33 架構審查修正 (2026-04-10 cc8cabe)
首席架構師審查評分: 62/100 → 修正後預估 88/100
| # | 問題 | 嚴重度 | 修正 |
|---|---|---|---|
| C2 | Router 層有業務邏輯 _run_index() |
Critical | 移入 KnowledgeRAGService.index_all_sources() |
| C3 | glob 無法掃子目錄 |
Critical | glob → rglob |
| C4 | docstring 寫 Ollama 188 (實際是 111) | Critical | 修正說明 |
| I2 | 重複索引累積 chunks | Important | index_document() 先 _delete_by_source_id() |
| I3 | debug endpoint 硬碼 188 IP | Important | 改用 settings.OLLAMA_URL |
| I4 | httpx client 未在 shutdown 關閉 | Important | main.py lifespan 加 close() |
C1 修正 (5c2db65): 新增 rag_chunk_repository.py — Service 不再直接碰 DB ✅
RAG 知識庫關鍵坑記錄
- K3s NetworkPolicy v1.3 已封閉 188:11434 → 必須用
settings.OLLAMA_URL(111) - docs/ 被 .dockerignore 排除 → 明確移除排除規則讓 RAG 文件進容器
_run_index()業務邏輯屬 Service 層責任 → leWOOOgo 原則
下一步
C1 Repository 層重構✅ 完成 (5c2db65)- ivfflat index 建立 (5814 chunks 已超過 100 筆門檻,可手動執行)
- ADR-067 五大應用全完成 → 待議下一個 Sprint
📍 舊狀態 (2026-04-10 ADR-067 Phase 30-34 全部實作完成 🔄 CD 部署中)
ADR-067 Ollama 五大應用 — 實作完成
| Phase | 應用 | Commit | 狀態 |
|---|---|---|---|
| 30 | Drift 報告中文摘要 (qwen2.5:7b-instruct) | 89015d4 |
✅ 已部署 a30713b |
| 31 | Log 異常摘要 (deepseek-r1:14b) | 63e840a |
🔄 CD 中 |
| 32 | PR 自動審查 (qwen2.5-coder:7b) | 63e840a |
🔄 CD 中 |
| 33 | RAG 知識庫 pgvector (nomic-embed-text 768d) | 63e840a |
🔄 CD 中 |
| 34 | 圖片分析 Telegram (llava:latest) | 63e840a |
🔄 CD 中 |
- Migration phase28 (rag_chunks) + phase29 (pr_reviews) 已執行 ✅
- 今天額外完成: Sprint 5.1/5.2 + Phase 27 + nginx-exporter + sensor cron 清理
📍 當前狀態 (2026-04-10 ADR-067 Ollama 五大應用批准,Phase 30 即將開始)
ADR-067 Ollama 五大應用 — 2026-04-10 統帥批准
| Phase | 應用 | 狀態 |
|---|---|---|
| 30 | Drift 報告中文摘要 (qwen2.5:7b-instruct) | 🔲 Next |
| 31 | Log 異常摘要 (deepseek-r1:14b) | 🔲 |
| 32 | PR 自動審查 (qwen2.5-coder:7b) | 🔲 |
| 33 | RAG pgvector (nomic-embed-text 768d) | 🔲 |
| 34 | 圖片分析 (llava:latest) | 🔲 |
- pgvector 0.8.2 已在 prod ✅
- 詳細規格: ADR-067, project_ollama_applications.md
📍 前一狀態 (2026-04-10 Sprint 5.1 + Phase 27 部署中 🔄)
Sprint 5.1 Data Safety Guardrails — 全部確認已部署
| 項目 | 狀態 | 備註 |
|---|---|---|
| DB M-002: approval_records MultiSig 欄位 | ✅ 已在 DB | approval_level/votes/required_votes |
| DB M-003: alert_event_type ENUM +8 | ✅ 已在 DB | 18個 event_type |
| ops/config/service-registry.yaml | ✅ 已 commit | BLOCK/CRITICAL_HITL/STANDARD_HITL/AUTO |
| service_registry.py / velero_client.py / preflight_service.py | ✅ 已部署 | Sprint 3 時即已部署 |
| Playbook model 3 安全欄位 | ✅ 已部署 | requires_approval_level/stateful_targets/requires_pre_backup |
| auto_repair_service.py Guardrail 注入 | ✅ 已部署 | StatefulLevel.BLOCK 攔截 |
| alert_operation_log_repository 8 新 event_type | ✅ 已部署 | GUARDRAIL_BLOCKED 等 |
| K8s Velero RBAC | ✅ 已有 | awoooi-executor 已有 list backups 權限 |
Phase 27 frequency_snapshot 持久化
| 項目 | 狀態 | Commit |
|---|---|---|
| incidents.frequency_snapshot JSONB | ✅ DB 已建立 | migration 執行 ✅ |
| incident_repository 序列化/反序列化 | ✅ | 9846a6c |
| CD 部署中 | 🔄 run/653 | — |
下一步: CD 完成確認 → 下一 Sprint
📍 當前狀態 (2026-04-10 Sprint 6 A+B+C+D 全完成 ✅)
Sprint 6 完整閉環
| Phase | 項目 | 結果 | Commit |
|---|---|---|---|
| A1 | SSH config 補 120/121 | ✅ | — |
| A2 | CD 狀態確認(正常) | ✅ | — |
| B | Sensor Agent 188+110 systemd service | ✅ active | 31d45f0 |
| C | blast_radius AIBlastRadius→BlastRadius | ✅ | 7e49862 |
| C | AIDataImpact .lower() → DataImpact | ✅ | 0571ad1 |
| C | telegram_chat_id INTEGER→BIGINT (K8s exec) | ✅ | — |
| C | E2E: approval_created_db ✅ + telegram_sent ✅ | ✅ | — |
| D | drift CAST(:param AS jsonb) SQL fix | ✅ | 5d591c4 |
| D | drift k8s/ 打包進 image | ✅ | c132fd4 |
| D | drift_reports DB 寫入驗證 total=1 | ✅ | — |
下一步: Telegram 批准按鈕真實 E2E(需要統帥點按鈕驗收)/ 其他 Backlog
📍 當前狀態 (2026-04-10 Sprint 6 Phase A+B+C 進行中)
Sprint 6 C — Telegram E2E + blast_radius bug 修復
| 項目 | 結果 | Commit |
|---|---|---|
| SSH config 補 120/121 | ✅ | — |
| CD 狀態確認(正常,無積壓) | ✅ | — |
| Sensor Agent 188 systemd service | ✅ active | — |
| Sensor Agent 110 systemd service | ✅ active | — |
| E2E 注入告警 → signoz_telegram_sent | ✅ | — |
| blast_radius AIBlastRadius→BlastRadius bug | ✅ 修復 | 7e49862 |
CD 部署 7e49862 |
🔄 進行中 | — |
下一步: CD 完成後重跑 E2E 驗收
📍 當前狀態 (2026-04-10 Sensor Agent B1 部署完成 ✅)
Sprint 6 B — Sensor Agent 兩台主機部署
| 主機 | 狀態 | 採集週期 | Redis |
|---|---|---|---|
| 192.168.0.110 (wooo) | active (running) systemd user service |
30s | awoooi:signals DB10 |
| 192.168.0.188 (ollama) | active (running) systemd user service |
30s | awoooi:signals DB10 |
- 三層採集:NodeMetrics + Journal + ServiceProbe 全正常
- systemd enable → 開機自啟
- 部署路徑:
~/awoooi-sensor/agent.py --loop --interval 30
下一步: C — Telegram E2E 批准閉環真實測試 / D — drift CronJob 診斷
📍 當前狀態 (2026-04-10 Sprint 5R Phase 3 完成 ✅)
Sprint 5R Phase 3 — Command Palette + 主機抽屜
| 項目 | 內容 | Commit |
|---|---|---|
| ⌘K Command Palette | 全局指令面板,高斯模糊背景,9頁導航+Terminal快速動作,↑↓/Enter/Esc,100% i18n | 89db96f |
| 主機卡點擊抽屜 | 行內展開:CPU/RAM大字+服務清單(port/latency)+相關事件,✕關閉,選中藍框 | 5244235 |
| i18n commandPalette | zh-TW + en 兩語言完整 | 89db96f |
下一步: Backlog B1 Sensor Agent / B5 整合測試 / 或統帥指示
📍 當前狀態 (2026-04-09 Sprint 5R Phase 2 完成 ✅)
Sprint 5R Phase 2 — Tab 3 COT + Tab 4 MTTR
| 項目 | 內容 | Commit |
|---|---|---|
| Tab 3 Chain-of-Thought 面板 | 點擊 SSE 事件展開 COT(provider/confidence/latency/tools/reasoning),COT badge | ab5ba70 |
| Tab 4 by_anomaly Top 5 | 水平進度條 + auto_rate 著色(≥80% 綠/≥50% 橙/其他紅) | ab5ba70 |
| Tab 4 MTTR | 大字顯示秒→分鐘換算,無資料 fallback | ab5ba70 |
| by_anomaly API 結構修正 | 適配真實欄位 disposition.total / alert_name / anomaly_key |
af7b6be |
| i18n 插值修正 | byAnomalyAutoRate 補 {pct}% 插值,mttrUnit 改「分鐘」 |
764dcf2 |
| QA 驗證 | Tab 4 截圖確認真實資料渲染正確 | — |
下一步: ⌘J Command Palette / 其他 Backlog 功能
📍 當前狀態 (2026-04-09 Sprint 5R 架構審查 + QA 全驗收 ✅)
Sprint 5R 完整閉環
| 階段 | 內容 | Commit |
|---|---|---|
| 架構審查 (首席架構師) | 9 項問題發現:P0 import crash / i18n 10 個 hardcode / fake data / silent error | — |
| P0 修復 | proposal_service.py 補 get_redis + INCIDENT_KEY_PREFIX import |
890e2a9 |
| P1 i18n | 拓撲群組移除 emoji,host labels / ai-model-status / disposition / recent-activity 全走 i18n | 890e2a9 |
| P2 品質 | pending-approvals 靜默錯誤修復 + page-tabs 載入中 i18n + ↑5% 動態化 | 890e2a9 |
| Linter 強化 | pending-approvals 防重複點擊 + loading 狀態 | 896bef9 |
| CORS 修復 | config.py 補 K3s NodePort 3 個 origin |
8c2983b |
| sign body 修復 | signer: 'web-ui' → signer_id/name: CURRENT_USER (修前: 403/422) |
8c2983b |
| host_aggregator | 四台主機 probe 端點錯誤 → 全部顯示 unhealthy 修正 | 21567a7 |
| QA 全頁面驗收 | 9/9 通過,無假資料,HTTP 200,真實 API 資料 | — |
下一步: 下次 Session 繼續 Sprint 5R Phase 2 (Chain of Thought / MTTR 趨勢 / ⌘J Palette)
📍 當前狀態 (2026-04-09 E2E 驗證 + K8s executor 連線修復)
| 項目 | 結果 | Commit |
|---|---|---|
| 部署驗證 (新版本) | ✅ a4d6b3f3 → 34f0228 全 Pod Running |
— |
| DB migration telegram_message_id | ✅ K8s Job 執行成功,欄位存在 | 34f0228 |
| action 解析根本 bug | ✅ RESTART_DEPLOYMENT 成功解析 (以前 skip) |
ae97808 |
| K8s ClusterIP 10.43.0.1 不可達 | ✅ K8S_API_SERVER_URL=https://192.168.0.120:6443 覆蓋 |
34f0228 |
| kubectl 實際執行 | ✅ awoooi-worker rollout restart success=True |
34f0228 |
| Telegram 按鈕移除邏輯 | ✅ code review 確認正確 | 1483218 |
根本問題: K3s Pod 內 iptables/kube-proxy 未把 10.43.0.1 流量導到實際 API server
修法: executor.py 讀 K8S_API_SERVER_URL env 覆蓋 in-cluster host
下一步: Sprint 5R Web 截圖驗收
📍 當前狀態 (2026-04-09 批准執行閉環修復 + TG 訊息持久化 + AI 鏈路透明化)
| 項目 | 修法 | Commit |
|---|---|---|
| 根本Bug: 批准後永遠不執行 | Nemotron tool 回填 kubectl_command |
2c7d5d0 |
| 根本Bug: action="未知操作" | proposal_service 優先用 kubectl_command | ae97808 |
| TG 按鈕按後無回應 | _notify_approval_result() reply 狀態行 |
1483218 |
| message_id 僅 Redis 24h | approval_records 加 telegram_message_id 欄位 | 1483218 |
| AI 鏈路不透明 | TG 訊息顯示模型/後端 (Ollama/NIM/Gemini) | d8c2969 |
| Ollama 取代 NVIDIA NIM | OllamaToolProvider llama3.1:8b,44s→4s | 7857c25 |
| 5 筆孤兒 OBSERVE approval | 直接 EXPIRED 清理 DB | — |
根本問題鏈:
Nemotron→restart_deployment(sentry) → 只存 nemotron_tools[] → kubectl_command="" →
approval_records.action="未知操作 | " → parse_operation_from_action→None →
execute_approved_action SKIP → 幾個月來批准/拒絕按鈕完全無效
下一步: 部署驗證 → 新告警完整執行閉環測試
📍 當前狀態 (2026-04-10 Sprint 5R 前端重構 13/14 完成 — CD 部署中)
| 步驟 | 內容 | Commit | 狀態 |
|---|---|---|---|
| S11 | Tab 2 approvals API 修正 | 289dac6 |
✅ |
| S12 | 安全合規/知識庫/拓撲圖修復 | 289dac6 |
✅ |
| S1 | KPI Strip 5 張卡片 | 7a2e07f |
✅ |
| S4 | 處置統計環形圖 | b85a0e2 |
✅ |
| S5 | 最近活動時間線 | b85a0e2 |
✅ |
| S6 | OpenClaw AI Terminal | a0f3a7d |
✅ |
| S7 | 待審批任務 | 895784e |
✅ |
| S9 | AI 模型狀態 2×2 | 895784e |
✅ |
| S10 | 監控工具 3×2 | 895784e |
✅ |
| S8 | 拓撲群組 2×2 + 主機 4 台 | 03b07d5 |
✅ |
| S2 | FlowPipeline OpenClaw icon | 09c6eb3 |
✅ |
| S3 | AI 提案橫幅確認 | 09c6eb3 |
✅ |
| G1 | 骨架屏取代載入中 | 49a15e1 |
✅ |
| CD 部署驗收 | 截圖對比設計稿 | — | 🔄 |
設計稿: .playwright-mcp/sprint5r-approved-design.html
ADR: ADR-065
下一步: CD 完成 → 截圖對比 → 統帥驗收
📍 當前狀態 (2026-04-09 自動修復全鏈路完整閉環 — 雙主機 E2E 驗證)
| 項目 | 狀態 | Commit |
|---|---|---|
| Bug #1 Jaccard 門檻阻擋 alert_exact_match | ✅ | af49a54 |
| Bug #2 NameError get_alert_operation_log_repository | ✅ | e4070b2 |
| Bug #3 _extract_symptoms 用 alert_name="custom" | ✅ | fc03eb1 |
| Bug #4 Signal.labels 缺 alertname key | ✅ | 1d88b7c |
| Bug #5 target_resource 未優先用 component label | ✅ | 1fb0c0c |
| Bug #6 Dockerfile 無 openssh-client | ✅ | 1fb0c0c |
| Bug #7 sentry 未在 service-registry 定義 | ✅ | 1fb0c0c |
| Bug #11 NetworkPolicy 缺 port 22 egress (110+188) | ✅ | 07a097c |
| Bug #12 Deployment 缺 fsGroup=1000 | ✅ | 77f2da9 |
| 8 個新 Playbook 自動產生+APPROVED | ✅ | API |
| repair-bot-188.sh 新增 momo/tsenyang/bitan | ✅ | 188主機 |
| repair-bot-110.sh 新增 stock-platform | ✅ | 110主機 |
| known_hosts 110+188 Secret 更新 | ✅ | kubectl |
| openclaw-down-repair 修正 docker-110→docker-188 | ✅ | API |
| service-registry 新增 signoz/bitan-app | ✅ | 07a097c |
E2E 雙主機驗證:
- docker-110: SentryDown → REPAIR_OK:sentry (6208ms) ✅
- docker-188: MoWoooWorkDown → REPAIR_OK:momo-app (3791ms) ✅
Playbook 覆蓋: 20 個 (含 8 個 auto-generated,全部 auto_repair=true 告警已覆蓋)
下一步: Sprint 5R 前端重構 (S11→S12→S1-S10→G1)
📍 當前狀態 (2026-04-09 Sprint 5.2 全面完成 + 自動修復閉環)
| 項目 | 狀態 | Commit |
|---|---|---|
| docker-health-monitor 升級自動修復 | ✅ | 8d0042e |
| L2-2 alerts-unified 14條規則 | ✅ | b43e1f1 |
| Nemotron placeholder 修復 | ✅ | d467fc1 |
| decision_manager resolved 不重送 | ✅ | b66263a |
| target_down 自動重啟 exporter | ✅ | b43e1f1 |
| Plan B exporters 188 全 UP | ✅ | — |
| Plan C Blackbox 13 targets 全 UP | ✅ | — |
自動修復鏈路閉環: 容器 down → cron 偵測 → docker restart → 回報 API → Telegram 下一步: ADR-064 L1 Redis 分散式鎖(技術債,P3)
📍 當前狀態 (2026-04-09 Sprint 5 全面完成 + 監控告警修復)
| 項目 | 狀態 | Commit |
|---|---|---|
| C1 殘留 i18n 5 處 (badge/toggle) | ✅ | 28d2ff7 |
| I3 Approve/Reject API 串接 | ✅ | 4a94588 |
| I4 SIGNOZ_URL 改環境變數 | ✅ | 4a94588 |
| I5 ErrorsPanel nothing-gray | ✅ | 4a94588 |
| C4 TOOL_EMOJI → Lucide icon | ✅ | 5800533 |
| RedisMemoryHigh 誤報修正 (÷0) | ✅ | 85d4857 |
| node-exporter 部署 110+188 (Docker) | ✅ | 手動 |
| HostDown ×2 告警消除 | ✅ | 自動 |
| Prometheus 0 firing alerts | ✅ | — |
| 所有 Incidents 關閉 | ✅ | API |
Sprint 5 審查修正清零: C1-C4 + I1-I5 全部修正完成 下一步: Sprint 5.2 docker-health-monitor 部署 / alerts-unified L2-2
📍 當前狀態 (2026-04-09 Telegram 截斷根因修復 + Panel 全面抽取)
| 項目 | 狀態 | Commit |
|---|---|---|
建議: kubectl rollout restart deployment/ 截斷根因修復 |
✅ | c5e4751 |
telegram_gateway.py [:35]→[:80] |
✅ | c5e4751 |
| decision_manager.py enum string 補正 (用規則引擎查 kubectl) | ✅ | c5e4751 |
| Panel 全面抽取完成 (13 個 Panel) | ✅ | fb66ecd |
| /observability 5 Tab 全 Panel | ✅ | fb66ecd |
| /automation 3 Tab 全 Panel | ✅ | fb66ecd |
| /operations 5 Tab 全 Panel | ✅ | fb66ecd |
| CD 部署驗證 | 🔄 | 進行中 |
根本根因: suggested_action[:35] = 35 字剛好截到 deployment/ 後,name 永遠空白
下一步: 等 CD 完成 → 驗收新告警顯示格式 → 關閉舊 Incident
📍 當前狀態 (2026-04-09 Alert Rule Engine + Ollama M1 Pro + 首席架構師審查)
| 項目 | 狀態 | Commit |
|---|---|---|
| Ollama 切換 188→111 (M1 Pro, 0.45→40+ tok/s) | ✅ | 多個 |
| deepseek-r1:14b (RCA) + gemma3:4b (summary) | ✅ | f32b077 |
| Gemini fallback for NIM 完全失敗 | ✅ | d80153b |
| 告警規則引擎 alert_rules.yaml + alert_rule_engine.py | ✅ | d1ede7f |
| AI 自動規則學習 (generic_fallback 觸發) | ✅ | 71437db |
| 首席架構師審查 63/100 → 6 個問題修復 | ✅ | 本次 |
| ADR-064 Alert Rule Engine | ✅ | 本次 |
| Skills 02/03 更新 | ✅ | 本次 |
| model_registry fallback 同步更新 | ✅ | 89da2d2 |
K8s 部署驗證 (image 89da2d2) |
✅ | 2 Pod Running |
已知技術債: 多 Pod 規則重複生成(ADR-064 L1),lru_cache 跨 Pod 不同步(ADR-064 L2)
下一步: 前端重設計整合頁面 Panel 抽取 (解決雙重 AppLayout)
📍 當前狀態 (2026-04-09 Sprint 5.2 全面監控 + Alert Op Log API + 效能修復)
| 項目 | 狀態 | Commit |
|---|---|---|
| Plan A: docker-health-monitor 110+188 */5 | ✅ | 0e6c4b8 |
| Plan B: pg/redis exporter 確認 UP | ✅ | — |
| Plan C: 5 條外部網站告警規則 | ✅ | 9799a14 |
| Alertmanager telegram-direct fallback | ✅ | 7e327c8 |
| pg-backup.sh 每 6h 188 cron | ✅ | f98be41 |
| DR Drill cron 121 月第一週日 03:00 | ✅ | 手動 |
| 188 CD 自動同步 ops scripts | ✅ | c51d7ef |
| alert_operation_log API (list/stats) | ✅ | 5ea6c3f |
| /alert-operation-logs 前端頁面 | ✅ | 5ea6c3f |
| incidents 效能修復(Redis cache + fire-and-forget) | ✅ | 4b3fdd8 |
| Panel 抽取全面完成(雙重 AppLayout 修正) | ✅ | fb66ecd |
| CD 部署 run #586 | 🔄 | fb66ecd2 |
下一步: CD 完成 → API 驗收 → 告警鏈路 E2E 驗收
📍 當前狀態 (2026-04-09 Sprint 5 首席架構師審查 P0 修正完成)
| 項目 | 狀態 | Commit |
|---|---|---|
| 首席架構師審查 | 72/100 有條件通過 | — |
| C1: 首頁 i18n 30+ 處 | ✅ 修正 | 7153395 |
| C2: 拓撲 i18n 10+ 處 | ✅ 修正 | 9e10305 |
| C3: Loading 改 LobsterLoading | ✅ 修正 | 7153395 |
| I1: 100ms 輪詢改 popstate | ✅ 修正 | 7153395 |
| I2: 13 Panel 全部抽取 (雙重 AppLayout) | ✅ 修正 | 7934ade |
| C4: TOOL_EMOJI (pre-existing) | 📝 後續 | — |
下一步: Re-Review → 驗收
📍 當前狀態 (2026-04-09 Sprint 5 前端重設計完成 + 部署中)
| 項目 | 狀態 | Commit |
|---|---|---|
| Phase 0: 安裝 React Flow + elkjs + /classic | ✅ | 11ff517 |
| Phase 1: 首頁 4-Tab + Sidebar 精簡 6+2+經典 | ✅ | eaa6102 |
| Phase 2: React Flow 拓撲圖元件 (7 新檔) | ✅ | d276b39 |
| Phase 3: 5 個整合頁面 (觀測/自動/營運/安全/知識) | ✅ | 1413804 |
| Phase 4: 舊路由並存 | ✅ | 9188e49 |
| Sidebar label + Tab 同步 + 龍蝦動畫 + 效能優化 | ✅ | 多個 |
| OpenClaw 風格龍蝦 SVG (三色: 紅/綠/黃) | ✅ | 65e1edb |
| service_registry Docker 安全降級 | ✅ | c9f1bcd |
| 拓撲圖 Toggle 整合到首頁 | ✅ | 030f4f7 |
| 測試修正 (nemotron + smart_router) | ✅ | 多個 |
| CD 部署 | 🔄 | 進行中 |
下一步: CD 完成 → 統帥驗收 → 整合頁面 Panel 抽取 (解決雙重 AppLayout)
📍 當前狀態 (2026-04-08 Sprint 5.1 L1-L5 + Review 修正完成)
| 項目 | 狀態 | Commit |
|---|---|---|
| Sprint 5.1 L1-L5 全部實作 | ✅ | 88696db |
| 首席架構師審查(70/100→修正) | ✅ | 0f5fecf |
| DB Migration M-002/M-003(已在 188 執行) | ✅ | — |
| service-registry.yaml(21 個服務分級) | ✅ | 88696db |
| 三個新 Service(registry/velero/preflight) | ✅ | 0f5fecf |
| Guardrail 注入 auto_repair_service | ✅ | 0f5fecf |
| ALERT_RECEIVED + auto_repair flag webhooks | ✅ | 0f5fecf |
| T1-T6 Telegram 通知 | ✅ | 0f5fecf |
| docker-health-monitor.sh 純感知層 | ✅ | 88696db |
| ADR-062/063 | ✅ | 6f7a4be |
當前焦點: Sprint 5.1 L7 E2E 驗收(CD 部署後執行) 待完成: L2-2 alerts-unified.yml + docker-health-monitor 部署到 110/188 + E2E 驗收 Sprint 5.2: Plan A(docker-health-monitor 部署)/ Plan B(Exporter)/ Plan C(Blackbox)
📊 里程碑總覽 (壓縮版)
2026-04-08 — Sprint 5.1 L1-L5 實作 + 首席架構師審查修正
- L1: DB Migration M-002(approval_records MultiSig)/ M-003(ENUM 8個新值)在 188 執行完畢
- L2-1: ops/config/service-registry.yaml 建立(21 個服務,BLOCK/CRITICAL_HITL/STANDARD_HITL/AUTO)
- L3: service_registry.py / velero_client.py / preflight_service.py 三個新服務
- L4: Guardrail 注入 auto_repair_service + ALERT_RECEIVED/auto_repair flag webhooks + MultiSig DB model
- L4-6: docker-health-monitor.sh 改造為純感知層(移除所有 docker restart)
- L5: telegram_gateway T1-T6 六個新通知方法(Guardrail/Pre-flight/Backup/MultiSig/ChangeApplied)
- 首席架構師審查 70/100 → 修正 S1×4 S2×2 S3×1 → 預計 90+/100
- structlog 取代 logging(三個新 service)
- now_taipei() 取代 datetime.now(UTC)
- Guardrail 失敗改為保守拒絕(不放行)
- velero kubectl apply CRD 修正(原語法錯誤)
- T1-T6 補齊 try/except
- Langfuse URL 改用 settings.LANGFUSE_URL
2026-04-08 — Sprint 5.1 資料安全護欄規劃完成
- 11 項首席架構師決策(Q1-Q11)完成
- 服務分級(BLOCK/CRITICAL_HITL/STANDARD_HITL/AUTO)確立
- Pre-flight 備份檢查機制設計完成
- MultiSig 雙簽機制設計完成
- ADR-062 Data Safety Guardrails 批准
- ADR-063 Service Registry IaC 批准
- 完整實施方案 + 規範驗證通過(P1-P5 問題修正)
- 關鍵發現:Playbook 存於 Redis(非 PostgreSQL),修正 M-001 方向
2026-04-08 — 全面監控+操作溯源架構
- 自動修復移除所有 gate:直接執行(統帥指令)
- Phase 10: auto_repair_executions DB 記錄(成功/失敗都寫入)
- Phase 11: alert_operation_log Event Sourcing(654 筆歷史回填)
- ADR-060: 全面基礎設施監控規劃(4 主機 30+ 服務)
- ADR-061: Alert Operation Log 架構決策
- 統帥首席架構師裁示:Plan A→B→C 優先序,Redis/PG 僅告警,Intent→Action→Result 三段式
2026-04-07 — Sprint 3+4+F 完成
- Sprint 3: SSH_COMMAND 指揮權鏈 (T1-T7) + P0 Security Fixes + Re-Review 91/100
- Sprint F: 29處假數據清除 + CURRENT_USER 統一 + 98/100
- Sprint 4: 告警處置統計 Phase A→F (資料層→API→Telegram→前端→首頁→週報)
- 首次信任機制 (冷啟動破解)
2026-04-06 — 四個網站修復+監控
- mo.wooo.work / www.tsenyang.com / stock.wooo.work / bitan.wooo.work 全部修復
- Prometheus blackbox-http 新增 3 target
- nginx 110/188 路由修正
2026-04-05 — Phase 25 Review + ADR-057~059 + 備份
- Phase 25 首席架構師 Review R1+R2 通過 (76/100→修正後通過)
- ADR-054~057 全部完成
- Telegram 按鈕根因修復 (whitelist int→list[int])
- ADR-059 Gitea Webhook 遷移 (10/10 測試)
- Sprint 3 Host Repair 全通過 + 5 Playbooks
- 備份全面自動化 (backup-all.sh v2 + GFS 保留策略)
- 全系統重開機恢復 (188/110/120/121)
2026-04-04 — Phase 25 驗證 + 自動修復閉環
- Phase 25 P0/P1/P2 全部驗證通過 (36/36 tests)
- 自動修復閉環打通 (Playbook→RAG→執行→KM沉澱)
- Ollama embedding is_closed 修復
- phase8/9 DB migration prod 執行完成
2026-04-03 — Phase 24 + Monitoring Wave D + Layout
- Phase 24 AI Provider Registry 全面完成 (Phase A→C)
- Monitoring Wave D: Grafana 3 dashboards + ClickHouse TTL
- Layout 對齊修復 (sidebar/header/metrics)
- 首席架構師 Review 88/100
2026-04-02 — Phase O 可觀測性 + Phase 24 規劃
- Phase O O-1~O-5 全部完成 (8/8 Smoke Test)
- OTEL Collector DaemonSet + Event Exporter
- Prometheus scrape → SigNoz (90天保留)
- Phase 24 AIRouter 14 項決策 (D1-D14)
- ADR-052 AI Provider Registry
2026-04-01 — Phase R 完整審查 + Phase 11 驗收
- Phase R ADR-047: 97/100 OUTSTANDING
- Phase 11 統帥驗收: ✅ 批准
- R4-129 webhooks.py AlertAnalyzer 遷移 (-243行)
- ADR-046 IncidentConverter 型別統一
2026-03-31 — Phase 22 Nemotron + Telegram 重設計
- Phase 22 雙 AI 對話 + NemotronCollabService
- Phase 10.2 Session Replay 完成
- Telegram 訊息格式 v7.0 重設計
- NVIDIA NIM 整合 + Gemini fallback
2026-03-29~30 — Monitoring + Gitea CI/CD
- Monitoring 主計畫 Wave A-C 批准+執行
- ADR-039 Gitea CI/CD 遷移完成
- 前端內網 IP 禁令確立
- NEXT_PUBLIC_* build-time 變數規範
2026-03-28 — Phase 19+20 完成
- Phase 19 Omni-Terminal 全 7 Wave (47/50)
- Phase 20 CSRF 防護 (Double Submit Cookie)
- K3s 優化 (Swap/kube-reserved/etcd/PDB)
2026-03-27 — Phase 16~18 完成
- Phase 16 架構大掃除 R1-R4 (50/50 OUTSTANDING)
- Phase 17 技術債清理
- Phase 18 E2E Hardening (9.2/10)
- Phase 10.2 Sentry Telegram 通知+去重
2026-03-26 — Phase 13~15 完成
- Phase 13 Enterprise AIOps (6 MCP Tools + Router)
- Phase 14 紅區治理+依賴防護+共用型別
- Phase 15 LLMOps (Langfuse+DeepLink+取樣)
2026-03-25 — Phase 11+12 批准+開工
- Phase 11 對話式 AI 批准+實作
- Phase 12 Ollama Tool Calling 100%
2026-03-24 — Phase 6.5 + QA + Sentry
- Statistics API 6 端點
- Mock 測試全面禁止鐵律
- Sentry Self-Hosted 整合
- Phase 8 QA + 緊急修復
2026-03-23 — Phase 6.4 + Phase 9
- Decision Proposal API + Guardrails
- Agent Teams + ConsensusEngine 90/90
- 技術債清理 (44 未用 import + 22 i18n)
2026-03-22 — Phase 6 認知覺醒
- Event Bus (Redis Streams) 通電
- Memory Layer (Redis + PostgreSQL) 雙層
- Incident Engine v1 (聚合+GraphRAG+去重)
- Redis Multi-Sig 分散式鎖
2026-03-20~21 — Phase 0-4 MVP
- Phoenix Rising 基建部署
- BFF Gateway + 原子組件庫
- SSE 前後端整合 + HITL 授權卡片
- i18n 雙語引擎 135 鍵值
📊 專案統計 (截至 2026-04-07)
| 指標 | 數值 |
|---|---|
| 已完成 Phase | 25+ (含子Phase) |
| 已完成 Sprint | 3 (Sprint 3/4/F) |
| ADR 文件 | 61 份 (ADR-060~061) |
| 首席架構師審查 | 15+ 次 |
| 最高評分 | Phase 16: 50/50 + Phase R: 97/100 |
| 監控 Targets | 15/15 UP |
| Grafana Dashboard | 3 |
| Playbooks | 12 (全部 approved, auto_repair 已啟用) |
| alert_operation_log 記錄 | 654 筆歷史 + 即時寫入 |