diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 28d9c655..b9733e4e 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -24,6 +24,105 @@ - headline 仍維持 `61%`;這是產品範圍納管與可視化前進,不是 runtime 開閘。 - VibeWork 目前是只讀納管:沒有掃描、沒有修復、沒有部署、沒有 source-control mutation、沒有主機操作。 +## 2026-05-31|Approvals 接上焦點 Incident 審批真相鏈 + +**背景**: + +- 使用者持續指出 Telegram / AwoooP 告警卡片、詳情、歷史與前端頁面仍無法清楚回答:同一個 Incident 是否重複、AI 流程跑到哪、是否真的自動修復、是否卡在人工介入。 +- Runs、Work Items、Tickets 已能追同一筆 Incident 的 status-chain / timeline,但 `/zh-TW/awooop/approvals?project_id=awoooi&incident_id=...` 仍主要是待審清單;當該 Incident 沒有 pending approval row 時,operator 仍容易誤以為資料消失或流程斷掉。 + +**本次調整**: + +- `apps/web/src/app/[locale]/awooop/approvals/page.tsx`: + - 新增 `?project_id=...&incident_id=...` 焦點 Incident 面板。 + - 焦點面板讀取 production truth endpoints: + - `/api/v1/platform/status-chain?project_id=...&incident_id=...` + - `/api/v1/incidents/{incident_id}/timeline` + - 顯示關聯審批、目前階段、修復狀態、驗證、人工接手、AwoooP 狀態鏈、單一 Incident 處理流程、MCP / Ansible / KM / 通知通道證據。 + - 當帶 `incident_id` 進 Approvals 時,焦點面板排在摘要後第一個主要區塊,不再被 IwoooS / GitHub 只讀 gate 壓到頁面底部。 + - 焦點面板提供 Work Items / Runs / Tickets 跨頁連結,讓 operator 能沿同一個 Incident 追完整真相鏈。 + - 相關頁首、摘要、空狀態與表格欄位同步收斂到 i18n 字典。 +- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`: + - 補齊 Approvals 焦點 Incident、審批摘要、欄位、空狀態文案。 + +**驗證**: + +```text +python3 -m json.tool apps/web/messages/zh-TW.json / en.json -> pass +git diff --check -> pass +pnpm --dir apps/web exec tsc --noEmit --tsBuildInfoFile /tmp/awoooi-approvals-incident-focus-post-rebase-20260531.tsbuildinfo -> pass +NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --dir apps/web run build -> pass + +local browser with read-only production API proxy: + /zh-TW/awooop/approvals?project_id=awoooi&incident_id=INC-20260530-0DD83C + hasFocus=true + focusTop=681 + hasIncident=true + hasStatusChain=true + hasTimeline=true + hasApprovalId=true + hasLinkedExplanation=true + hasMcpEvidence=true + hasAnsibleEvidence=true + hasKmEvidence=true + hasWorkItemsLink=true + hasRunsLink=true + hasTicketsLink=true + hasLoadFailed=false + canScroll=true + horizontalOverflow=false + screenshot=/tmp/awoooi-approvals-incident-focus-local.png +``` + +**Gitea / Production deploy**: + +```text +ff6a7c16 fix(web): surface incident truth chain in approvals +636970a2 chore(cd): deploy ff6a7c1 [skip ci] + +Gitea: + code-review run 3400 -> completed success + cd run 3399 -> completed success + tests=success + build-and-deploy=success + post-deploy-checks=success + +k8s awoooi-prod: + awoooi-web image=192.168.0.110:5000/awoooi/web:ff6a7c16112954040436a390aefd5384ea6eb87c + awoooi-api image=192.168.0.110:5000/awoooi/api:ff6a7c16112954040436a390aefd5384ea6eb87c + awoooi-worker image=192.168.0.110:5000/awoooi/api:ff6a7c16112954040436a390aefd5384ea6eb87c + rollout status deploy/awoooi-web -> successfully rolled out + pod awoooi-web-858568bb6c-dqn9m ready=true restarts=0 + pod awoooi-web-858568bb6c-jh7qv ready=true restarts=0 + +production browser smoke: + https://awoooi.wooo.work/zh-TW/awooop/approvals?project_id=awoooi&incident_id=INC-20260530-0DD83C&_v=ff6a7c16 + hasFocus=true + focusTop=681 + hasIncident=true + hasStatusChain=true + hasTimeline=true + hasApprovalId=true + hasLinkedExplanation=true + hasMcpEvidence=true + hasAnsibleEvidence=true + hasKmEvidence=true + hasWorkItemsLink=true + hasRunsLink=true + hasTicketsLink=true + hasLoadFailed=false + canScroll=true + horizontalOverflow=false + screenshot=/tmp/awoooi-approvals-incident-focus-production-ff6a7c16.png +``` + +**目前整體進度**: + +- Telegram / AwoooP / 前端真相鏈可見性:約 85%;Runs、Work Items、Tickets、Approvals 已能用同一組 Incident status-chain / timeline 追證據與人工接手。 +- 前端 AI 自動化管理介面同步:約 93%;核心操作頁已從清單型 UI 往 Incident 真相鏈 drill-down 收斂。 +- 整體 AI 自動化飛輪:約 76%;可觀測性與 operator handoff 更完整,但仍不可宣稱 24h 完整全自動修復閉環。 +- 24h 完整 AI Agent 自動修復 production claim:0%;仍需 production 連續統計證明「告警 -> MCP/Sentry/SigNoz/Ansible/KM -> 自動修復 -> 驗證 -> 學習」全鏈路 24h 穩定閉環。 + ## 2026-05-31|Tickets 接上 Incident 真相鏈與處理時間線 **背景**: