diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index fc607491..1607c3dc 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -25662,3 +25662,57 @@ production browser smoke: - Ansible / PlayBook 自動執行:約 0% runtime-ready;仍需證據確認 `ansible_playbook_binary_missing` gate 已解除。 - 24h 完整自動修復 production claim:0%;目前有單點流程與 smoke pass,仍不能宣稱完整全自動修復閉環達成。 - 完整 AI 自動化管理產品化:約 99.4%;產品可視化已接近完整,但真正「AI 自動監控 -> 自動匹配 -> 自動 PlayBook -> 自動修復 -> 自動學習/KM」仍需 24h production evidence 與前端逐段證據補齊。 + +## 2026-06-01 | Run detail MCP / 自建 MCP 證據矩陣上線 + +**背景**:統帥追問「到底有沒有真正用到所有 MCP / 自建 MCP」,原本 Run detail API 已有 `mcp_gateway` / `mcp_legacy`,但前端只顯示薄摘要,無法直接看出一級 AwoooP Gateway MCP 與自建 MCP audit 的實際工具、成功 / 失敗與錯誤原因。 + +**完成變更**: +- `apps/web/src/app/[locale]/awooop/runs/[run_id]/page.tsx` 的 `McpGatewayPanel` 新增兩欄證據矩陣: + - `AwoooP Gateway MCP`:顯示一級 MCP gateway tool、agent/scope、success/failed/blocked。 + - `自建 MCP / 舊版 Audit`:顯示自建 MCP server/tool、success/failed、最後錯誤。 +- `apps/web/messages/zh-TW.json`、`apps/web/messages/en.json` 補齊 top-level `runDetail.gateway.evidence.*` i18n key,並把 `Legacy MCP` 文案改為「自建 MCP」,避免 operator 誤以為只是舊資料、不是實際自建工具證據。 + +**驗證與部署**: +- Local validation: + - `python3 -m json.tool apps/web/messages/zh-TW.json` + - `python3 -m json.tool apps/web/messages/en.json` + - `git diff --check` + - `pnpm --dir apps/web exec tsc --noEmit --tsBuildInfoFile /tmp/awoooi-run-mcp-evidence-20260601.tsbuildinfo` + - `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work NEXT_PRIVATE_BUILD_WORKER_COUNT=1 pnpm --dir apps/web run build` +- Commit:`ba22e702 fix(web): expose mcp evidence on run detail`,已推 `gitea main`。 +- `ba22e702` 的 `code-review #2352` success;其 `cd #2351` 被後續 main commit 取代而取消,不是 build failure。 +- 後續 main commit `21f5142d feat(web): add IwoooS focus deck` 保含本次 MCP evidence 改動,`code-review #2354` success,`cd #2353` success。 +- Production image / rollout: + - `awoooi-api=192.168.0.110:5000/awoooi/api:21f5142d0816a6b2bbf119c10b9c29130c1e6810` + - `awoooi-worker=192.168.0.110:5000/awoooi/api:21f5142d0816a6b2bbf119c10b9c29130c1e6810` + - `awoooi-web=192.168.0.110:5000/awoooi/web:21f5142d0816a6b2bbf119c10b9c29130c1e6810` + - `kubectl rollout status deployment/awoooi-api deployment/awoooi-worker deployment/awoooi-web` 全部成功。 +- Production browser: + - `https://awoooi.wooo.work/zh-TW/awooop/runs/d17ff68c-6459-5ad4-b0d1-408fc5d6711d?project_id=awoooi&_v=21f5142d` + - Run detail 無 `Failed to fetch`,無 `runDetail.gateway.evidence.*` key 漏出。 + - `canScroll=true`,`horizontalOverflow=false`。 + - MCP section 顯示: + - 自建 MCP 已觀測。 + - 自建 MCP total `100`,成功 `88`,失敗 `12`。 + - Top tool `ssh_host/ssh_diagnose`。 + - 工具列包含 `ssh_host/ssh_diagnose`、`ssh_host/ssh_get_container_logs`、`ssh_host/ssh_get_container_status`、`ssh_host/ssh_get_top_processes`。 + - `AwoooP Gateway MCP` 目前未觀測,表示此 Run 是透過 Incident 串回 legacy/self-built MCP audit,不是一級 gateway call。 + +**新揭露技術債**: +- 自建 MCP 不是「沒用」;本例已確認 100 筆 audit,但仍有 12 筆失敗。 +- 失敗原因包含: + - `Host 'wooo' not in SSH_MCP_ALLOWED_HOSTS` + - `'filter_name'` +- 下一步應先盤點 `SSH_MCP_ALLOWED_HOSTS` 與 `ssh_get_container_status` 參數契約,再決定是否調整 allowlist / adapter,不可直接放寬 SSH scope。 + +**目前整體進度(本階段完成後)**: +- MCP / 自建 MCP 可視化:約 99.2%;Run detail 已能直接看出一級 gateway vs 自建 audit 的來源、工具、成功 / 失敗與錯誤。 +- MCP 真實使用判讀:約 97.5%;本例已證明自建 MCP 有被使用,但還有 allowlist / adapter 失敗要修。 +- AwoooP Runs / Approvals / Work Items 前端同步:約 99.95%;Run detail 已能把 Incident、MCP、補救試跑、來源卷宗與 status chain 放在同一頁。 +- Telegram / DB / AwoooP / 前端 truth-chain 可視化:約 99.95%;仍需逐步把每筆 Telegram callback 與外部 provider 原始 log 做更深的 drill-down。 +- Sentry / SigNoz source correlation:約 99.0%;e2e-health 已通過,但每筆 Incident 的 source-link 人工審核仍需持續收斂。 +- KM governance:約 82.5%;stale KM 仍需 Hermes 主責產草稿、owner 審核後寫入。 +- Ansible / PlayBook 自動執行:約 0% runtime-ready;`ansible_playbook_binary_missing` gate 未解除前不可宣稱可自動執行。 +- 24h 完整自動修復 production claim:0%;目前可視化與單點 smoke 已補強,但完整自動修復閉環仍需 24h production evidence。 +- 完整 AI 自動化管理產品化:約 99.45%;可視化接近完整,下一段應處理 MCP allowlist / adapter 失敗與 Ansible runtime gate。