docs(web): record t72 homepage live status rollout [skip ci]

This commit is contained in:
Your Name
2026-05-19 11:20:57 +08:00
parent 8234a3ee5b
commit 50833a0efb

View File

@@ -1,3 +1,68 @@
## 2026-05-19 | T72 Homepage live status and flow-pipeline stabilization
**背景**:首頁 `https://awoooi.wooo.work/zh-TW` 已能載入 production 資料,但值班視角仍有三個明顯斷點:飛輪 KPI 卡會持續嘗試 production 未接通的 `/api/v1/stats/flywheel/ws` WebSocket 並造成 console 噪音;每張 IncidentCard 都各自抓 CSRF token活躍事件很多時會把首頁網路請求放大小龍蝦 / OpenClaw 流程管線只看 `incident.status`,沒有把 `decision.state` / proposal evidence 納入,導致已有 AI 提案或待授權的事件看起來仍停在早期偵測。
**修正**
- `FlywheelKPICard` 改為 HTTP poll 作為 production 預設WebSocket 僅在 `NEXT_PUBLIC_ENABLE_FLYWHEEL_WS=true` 時啟用。
- `/api/v1/stats/summary``/api/v1/stats/flywheel` 皆每 30s 更新。
- 避免首頁反覆出現 `stats/flywheel/ws` 404 / reconnect 噪音。
- `useCSRF()` 新增 module-level token cache + in-flight request sharing。
- 多張事件卡同時 mount 時共用同一個 token 請求。
- `refresh()` 仍可強制重新抓 token。
- Dashboard store 在 SSE 前先用 HTTP snapshot 補水SSE 變成增量通道,不再是首頁有資料的唯一入口。
- IncidentCard 流程階段改由 `incident.status + decision.state + proposal_data/proposal_id` 共同判斷。
- `decision.state=ready` / `proposal_id` 會顯示為 `approval`
- `proposal_data.action` 會顯示為 `proposal`
- `executing/mitigating``resolved/closed` 也同步修正。
- `FlowPipeline` 新增 `data-flow-stage` / `data-flow-severity` / `data-flow-resolved`,讓 Playwright 與產品驗收能直接讀出每張卡目前階段。
- `PageTabs` 同步 URL query 變化,修掉 tab state 與 URL 可能不同步的首頁交互雜訊;順手移除既有 unused import。
**local verification**
- `pnpm --dir apps/web typecheck`pass。
- Targeted `next lint`exit 0仍有既有 i18n literal warnings`flywheel-kpi-card.tsx``incident-card.tsx`)與既有 `flow-pipeline.tsx` `<img>` warning本輪未新增阻斷 lint error。
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --dir apps/web build`pass。
- Local Playwright smoke`localhost:3111` + production APIChromium 關閉 CORS 檢查以驗證本地 build 行為):
- `csrf=1`,不再因 180 張 incident 卡放大成大量 CSRF 請求。
- `websocket=0``ws404Console=0`
- `summary=1``flywheel=1``dashboardSnapshot=1``dashboardStream=1`
- 首頁 KPI 顯示 production 值Service Health 100%、Active Incidents 180、Auto Rate 41%、Pending 0、Today/Weekly 695。
- `data-flow-stage` 可讀:`approval=2``alert=3``detection=175`
**production deployment / verification**
- Code commit`10f2f1ab fix(web): stabilize homepage live status`
- Deploy marker`8234a3ee chore(cd): deploy 10f2f1a [skip ci]`
- Gitea Code Review run `2408` successCD run `2407` success。
- jobs`2997/tests` success、`2998/build-and-deploy` success、`2999/post-deploy-checks` success。
- Production images
- `awoooi-web``192.168.0.110:5000/awoooi/web:10f2f1abaff7ee2a273c928b1081e0717caff0b1`
- `awoooi-api` / `awoooi-worker``192.168.0.110:5000/awoooi/api:10f2f1abaff7ee2a273c928b1081e0717caff0b1`
- Health`https://awoooi.wooo.work/api/v1/health``status=healthy``mock_mode=false``environment=prod`
- Stats API smoke
- `/api/v1/stats/summary``playbook_count=36``execution_success_rate=1.0``today_processed=16``flywheel_conversions_today=14``km_vectorized_rate=0.9955``incidents_stuck=1462`
- `/api/v1/stats/flywheel``flow_count=10`monitoring / deduplication / diagnosis / reasoning / execution / learning nodes all active。
- Production Playwright smoke on `/zh-TW`
- 導航列存在;首頁 KPI 顯示 Service Health 100%、Active Incidents 179、Auto Rate 41%、Pending 0、Today/Weekly 695。
- `flywheelOfflineVisible=false`
- network counts`csrf=1``summary=1``flywheel=1``dashboardSnapshot=2``dashboardStream=1``websocket=0``ws404Console=0`
- `consoleErrors=[]`;只剩 Next RSC prefetch aborts未阻斷頁面。
- `pipelineCount=179``data-flow-stage` summary`approval=2``alert=3``detection=174`
**邊界 / 下一步**
- T72 修的是首頁 live read / visual stage / network flood不代表所有中低風險告警都已被允許全自動修復。
- `incidents_stuck=1462` 是下一個應該治理的產品與資料債:首頁已誠實呈現,但需接續把 stuck incident 的 closure / no-action / manual-required lifecycle 收斂。
- 既有 i18n literal warnings 仍需另開前端治理波次處理,不在本輪混改。
**目前整體進度**
- 首頁 live status / 小龍蝦流程管線產品化:約 99.7%。
- AwoooP observability / truth-chain 可回看:約 99.8%。
- 來源告警入庫、重複發生、Sentry / SignOz 與修復結果可見性:約 99.7%。
- Telegram callback detail/history 可追溯:約 98.0%。
- Operator Console status-chain 可見性:約 99.5%。
- AI 自動修復閉環:約 98.2%T72 補首頁 read model 與階段呈現,不新增全自動執行權限。
- Config Drift 治理:約 99.6%。
- 前端 AI 自動化管理介面產品化:約 99.7%。
- 完整 AI 自動化管理產品化:約 99.2%。
## 2026-05-19 | T71 Work queues AwoooP status-chain rollout
**背景**T70 已讓 Run Detail / Callback Replies 看得到 AwoooP 狀態鏈,但值班實際操作更常從 Work Items 與 Approvals 進入。若這些頁面沒有同源狀態鏈Operator 仍會看不出「同一告警目前跑到哪個階段、AI 是否真的修復、是否只是在等待人工」。