diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index a1c5641e..dd848453 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,42 @@ +## 2026-05-17 | T36 Incident Evidence Header 同步到詳情與工作台 + +**背景**:T34/T35 已讓 Telegram 與 Run List 可用 Incident ID 導到同一組 remediation evidence,但 Run Detail、Approval Detail、Work Items 仍各自呈現資料。Operator 從告警點進不同頁面時,還是要自行判斷「這個頁面和同一個 Incident/Run/Approval/Work Item 是否同一條鏈」。此外 Omni Terminal 浮動按鈕仍可能遮住右下角表格資訊。 + +**修正**: +- 新增共用 `IncidentEvidenceHeader`: + - 支援 Incident chips、Run Timeline 連結、dry-run count、latest route、incident / auto-repair write flags。 + - Incident chip 會連回 `/awooop/runs?project_id=...&incident_id=...`,維持 Telegram / Run List / Detail 頁同一個 entrypoint。 + - 無有效 Incident 時顯示清楚的「未連結」狀態,不假裝 evidence 完整。 +- `/awooop/runs/[run_id]` Run Detail 加上同一段 Incident evidence header。 +- `/awooop/approvals/[run_id]` Approval Detail 加上同一段 Incident evidence header。 +- `/awooop/work-items` 從 telemetry remediation history 聚合 Incident IDs,工作台頂部也顯示同一段 evidence header。 +- Omni Terminal collapsed launcher 從文字 pill 改成 48px icon button,保留 title / aria-label / shortcut badge,降低遮擋表格的 UI debt。 + +**本地驗證**: +- i18n JSON parse:`apps/web/messages/zh-TW.json` 與 `apps/web/messages/en.json` pass。 +- `pnpm --filter @awoooi/web typecheck`:pass。 +- Targeted lint:Run Detail / Approval Detail / Work Items / `IncidentEvidenceHeader` / `OmniTerminal` exit 0;仍只有 Omni Terminal 既有 literal-string warnings。 +- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --filter @awoooi/web build`:pass;仍只有既有 Sentry / webpack cache warnings。 +- `git diff --check`:pass。 + +**推版與 production 驗證**: +- `69f2ec5e feat(awooop): add incident evidence headers` 已推 Gitea main。 +- Gitea Code Review run `2227` success;CD run `2226` tests / build-and-deploy / post-deploy-checks success。 +- 最新 deploy marker:`bb404157 chore(cd): deploy 69f2ec5 [skip ci]`。 +- `https://awoooi.wooo.work/api/v1/health`:200 healthy,PostgreSQL / Redis / Ollama / OpenClaw / SigNoz all up。 +- Production API `GET /api/v1/platform/runs/44109526-8fea-508e-a0f9-af818514ab59/detail?project_id=awoooi`:`remediation_total=3`,`incident_ids=INC-20260514-F85F21`,write flags false。 +- Playwright production Run Detail:顯示 `Incident Evidence` 與 `INC-20260514-F85F21`,Omni Terminal collapsed button `48x48`,screenshot `/tmp/awoooi-t36-run-detail-incident-header.png`。 +- Playwright production Approval Detail:顯示 `Incident Evidence` 與 `INC-20260514-F85F21`,Omni Terminal collapsed button `48x48`,screenshot `/tmp/awoooi-t36-approval-incident-header.png`。 +- Playwright production Work Items:顯示 `Incident Evidence`,Omni Terminal collapsed button `48x48`,screenshot `/tmp/awoooi-t36-work-items-incident-header.png`。 + +**目前整體進度**: +- Alertmanager 低風險自動修復主線:約 98%。 +- 完整 AI 自動化管理產品化:約 99%。 +- 告警詳情/歷史/主卡/前端 deep-link 可追溯:約 99%。 +- Telegram 首屏與追查訊息流程可判讀:約 96%。 +- 前端 AI 自動化管理介面同步:約 98%。 +- T36 讓 Run Detail / Approval Detail / Work Items 都用同一段 Incident evidence header 對齊 Telegram 與 Run List。下一段應收斂「人工審批後的狀態閉環」:approval resolved 後 incident / work item / Telegram history 不應再顯示 blocked 或缺歷史統計。 + ## 2026-05-17 | T35 Incident Evidence 成為 Run List 一等入口 **背景**:T34 已讓 Telegram 主卡可 deep-link 到 `/awooop/runs?project_id=awoooi&incident_id=...`,但 Run List 只靠 filter input 表示目前 Incident,表格列本身仍看不到關聯 Incident ID。Operator 看到兩筆 Run 時,還要從 URL / filter 才知道它們共同對應哪個告警,詳情/歷史回覆也沒有自己的 AwoooP evidence URL。