diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 73fc1519d..349a990a1 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -26,6 +26,113 @@ - VibeWork 目前只讀納管;沒有建立儲存庫、沒有同步 refs、沒有 workflow / secret 變更、沒有掃描、沒有修復、沒有主機操作、沒有正式環境部署。 - 下一個能推動整體進度的真門檻仍是負責人證據接受、脫敏發現收件、GitHub 主倉證據或執行期閘門。 +## 2026-05-31|Authorizations 接上 Incident 授權真相鏈 + +**背景**: + +- 使用者指出 Telegram、詳情、歷史與前端仍無法判斷:告警是否重複、approval 是否仍待簽、AI 自動化跑到哪個階段、是否已修復或需要人工介入。 +- Runs、Work Items、Tickets、AwoooP Approvals 已能追同一筆 Incident,但 `/zh-TW/authorizations?project_id=...&incident_id=...&approval_id=...` 仍只呈現既有 HITL 清單,沒有把 status-chain / timeline / pending approval 串成同一條授權真相鏈。 + +**本次調整**: + +- `apps/web/src/app/[locale]/authorizations/page.tsx`: + - 支援 `?project_id=...&incident_id=...&approval_id=...` 焦點模式。 + - 讀取 production truth endpoints: + - `/api/v1/platform/status-chain?project_id=...&incident_id=...` + - `/api/v1/incidents/{incident_id}/timeline` + - `/api/v1/approvals/pending` + - 顯示此 approval 是否仍在待簽、是否只是 timeline 歷史關聯、目前階段、驗證狀態、人工接手與下一步。 +- `apps/web/src/components/approval/incident-authorization-focus.tsx`: + - 新增 read-only 授權真相鏈面板,顯示 linked approval ids、AI 處理流程、MCP / 自建 MCP、Ansible、KM、通知通道、執行判定與 read-only 邊界。 + - 不新增批准、不拒絕、不觸發執行、不覆寫 pending approval。 +- `apps/web/src/app/[locale]/awooop/approvals/page.tsx`: + - 焦點 Incident 面板新增「授權中心」連結,帶上同一組 `project_id` / `incident_id` / `approval_id`。 +- `apps/web/src/components/approval/live-approval-panel.tsx`: + - Pending HITL 卡片若有 `incident_id`,新增「查看 Incident 授權真相鏈」入口。 + - 同步清理本階段相關硬編碼與 emoji:CSRF 狀態、登入身份、resolved banner、權限不足 modal 改用 i18n + lucide icons。 +- `apps/web/src/stores/approval.store.ts`: + - 補上 live pending approval 的 `incident_id`、`matched_playbook_id`、Telegram refs、metadata 與 `high` risk 型別,避免前端丟失關聯欄位。 +- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`: + - 補齊 Authorizations focus 與 LiveApprovalPanel 新文案;`en.json` 持續鏡像繁中。 + +**驗證**: + +```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-authorizations-incident-focus-rebased-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/authorizations?project_id=awoooi&incident_id=INC-20260530-0DD83C&approval_id=7a229d3c-5cf8-4cbd-b10e-a6ca5ff77cf6 + hasFocus=true + hasIncident=true + hasApprovalId=true + hasTimelineLinkedState=true + hasStatusChain=true + hasTimeline=true + hasMcp=true + hasAnsible=true + hasBoundary=true + hasLivePanel=true + canScroll=true + horizontalOverflow=false + screenshot=/tmp/awoooi-authorizations-incident-focus-local.png +``` + +**Gitea / Production deploy**: + +```text +6add97b9 fix(web): connect authorizations to incident truth chain +25d42f1b chore(cd): deploy 6add97b [skip ci] + +Gitea: + code-review run 2329 -> success + cd run 2328 -> success + +k8s awoooi-prod: + awoooi-web image=192.168.0.110:5000/awoooi/web:6add97b9d7442af11948098f677aae71b355bf30 + awoooi-api image=192.168.0.110:5000/awoooi/api:6add97b9d7442af11948098f677aae71b355bf30 + awoooi-worker image=192.168.0.110:5000/awoooi/api:6add97b9d7442af11948098f677aae71b355bf30 + rollout status deploy/awoooi-web -> successfully rolled out + pod awoooi-web-7c547d867-jc9nh ready=true restarts=0 + pod awoooi-web-7c547d867-tmdx7 ready=true restarts=0 + GET /api/v1/health -> healthy;ollama_route_order=[ollama_gcp_a, ollama_gcp_b, ollama_local] + +production browser smoke: + https://awoooi.wooo.work/zh-TW/authorizations?project_id=awoooi&incident_id=INC-20260530-0DD83C&approval_id=7a229d3c-5cf8-4cbd-b10e-a6ca5ff77cf6&_v=6add97b9 + hasFocus=true + hasIncident=true + hasApprovalId=true + hasTimelineLinkedState=true + hasStatusChain=true + hasTimeline=true + hasMcp=true + hasAnsible=true + hasKm=true + hasBoundary=true + hasLivePanel=true + hasOpenApprovals=true + hasWorkItems=true + hasRuns=true + hasTickets=true + hasFocusLoadFailure=false + canScroll=true + horizontalOverflow=false + screenshot=/tmp/awoooi-authorizations-incident-focus-production-6add97b9.png + + /zh-TW/awooop/approvals?project_id=awoooi&incident_id=INC-20260530-0DD83C&_v=6add97b9 + authorizationsLink=/zh-TW/authorizations?project_id=awoooi&incident_id=INC-20260530-0DD83C&approval_id=7a229d3c-5cf8-4cbd-b10e-a6ca5ff77cf6 + horizontalOverflow=false +``` + +**目前整體進度**: + +- Telegram / AwoooP / 前端真相鏈可見性:約 87%;Runs、Work Items、Tickets、Approvals、Authorizations 已能用同一組 Incident status-chain / timeline 追證據、授權狀態與人工接手。 +- 前端 AI 自動化管理介面同步:約 94%;核心操作頁已能從告警、工單、審批、授權四個角度 drill-down 同一個 Incident。 +- 整體 AI 自動化飛輪:約 77%;可觀測與 handoff 明顯提升,但仍不可宣稱 24h 完整全自動修復閉環。 +- 24h 完整 AI Agent 自動修復 production claim:0%;仍需 production 連續統計證明「告警 -> MCP/Sentry/SigNoz/Ansible/KM -> 自動修復 -> 驗證 -> 學習」全鏈路 24h 穩定閉環。 + ## 2026-05-31|IwoooS 納入 VibeWork 新專案只讀資安範圍 **背景**: