docs(logbook): record AwoooP runs status chain rollout [skip ci]

This commit is contained in:
Your Name
2026-06-04 19:58:55 +08:00
parent 291ff92534
commit 6a3348795f
2 changed files with 51 additions and 9 deletions

View File

@@ -81,6 +81,40 @@
- 不切 GitHub primary、不執行 rollback、不同步 / 刪除 refs、不 force push、不建立 repo、不改 visibility、不改 workflow / secret / runner、不停用 Gitea。
- 未來即使 owner response 通過,也只能先更新 read-only rollback ADR、primary readiness wording、approval board 與 status rollup真正 cutover / rollback 仍需獨立人工批准、dry-run、runtime gate、rollback plan 與 post-check。
## 2026-06-04AwoooP Runs Operator Status Chain Fallback
**背景**Phase 1 盤點發現 Runs 列表雖能連到 incident / MCP summary但當 status-chain batch 尚未回補或 operator 需要快速掃描時,表格仍只顯示 `等待來源` / provider count無法一眼判斷 stage、next action、blocked reason、Ansible 與 KM 狀態。本段補 Runs 列表的 operator truth surface不改自動修復權限、不開 runtime gate。
**本輪完成**
- `apps/web/src/app/[locale]/awooop/runs/page.tsx`
- Source Flow 新增 operator status chip`需人工` / `執行失敗` / `已驗證` / `已執行` / `待判讀`
- status-chain 存在時顯示 stage summary、next action 或 blocked reason、MCP success / failed / blocked、Ansible candidates / applied / reason、KM entries。
- status-chain 尚未回補但 run 有 incident / remediation summary 時,以 run evidence fallback 顯示 MCP、Ansible、KM 與 `status_chain_pending`,避免回到不可判讀的空狀態。
- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`:新增 Source Flow operator 文案依本輪「所有內容繁體中文」要求operator fallback / status 文字在兩個 locale 皆鏡像為繁中。
- 同步納入 P1-5 Primary rollback owner handoff`185173f0` 只代表 handoff `100%`、P1 GitHub primary readiness 只讀重盤 `70%`,不代表 rollback、primary 切換、refs sync 或 runtime gate。
**完成度更新**
- Phase 1 AI 自動化飛輪真相盤點:`48% → 56%`
- Runs visibility`88% → 92%`
- 完整 AI 自動化飛輪:`72% → 73%`;僅代表 Runs 可視化與 truth surface 提升Telegram、risk gate、executor / verifier / KM 回寫仍未閉環。
**驗證**
- `python3 -m json.tool apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`:通過。
- `git diff --check`:通過。
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work NEXT_PRIVATE_BUILD_WORKER_COUNT=1 SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING=1 pnpm --filter @awoooi/web build`:通過;`/[locale]/awooop/runs` route 成功產出。
- `pnpm --filter @awoooi/web exec tsc --noEmit --tsBuildInfoFile /tmp/awoooi-web-runs-status-chain-8a326338-after-build.tsbuildinfo`:通過。先前一次與 `next build` 並行時因 `.next/types` 重建出現暫態缺檔build 完成後重跑通過。
- Gitea code-review run `2548`success。
- Gitea CD run `2547``build-and-deploy` successdeploy marker `c046b9c8 chore(cd): deploy 8a32633 [skip ci]` 已推上 `gitea/main``post-deploy-checks` failure失敗點是 `Source Link Canary`,訊息為 `sentry source-link canary failed: Expecting value: line 1 column 1 (char 0)`
- 同一 post-deploy smoke 中 API Health、Alertmanager Webhook、SigNoz Webhook、Sentry Webhook、SigNoz、OTEL Collector、Event Exporter 皆通過Source Link Canary 需進 Phase 2 告警資料鏈路修復。
- Production desktop Browser smoke`https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&_v=c046b9c8-runs-status-fallback` 無 fetch failure`horizontalOverflow=0``INC-20260603-9B2535` 同列顯示 `需人工``等待人工審批,尚未執行``blocked=all_evidence_sensors_failed``MCP 4/4; failed=0; blocked=0``Ansible candidates=2; apply=0``KM entries=0`
- Production mobile smoke 390x844`horizontalOverflow=0`,可上下滾動,無 fetch failure同列可見 MCP / Ansible / KM 狀態。
- 截圖:`/tmp/awoooi-runs-status-chain-desktop-c046b9c8.png``/tmp/awoooi-runs-status-chain-table-desktop-c046b9c8.png``/tmp/awoooi-runs-status-chain-mobile-c046b9c8.png`
**目前邊界**
- 本段沒有開啟 auto repair、沒有執行 Ansible、沒有批准任何 pending approval、沒有修改 Telegram 發送流程、沒有改 KM 寫入權限。
- S4.9 / S4.10 / S4.12 / P1-5 owner response received / accepted / rejected 仍為 `0`GitHub primary readiness gate 仍 `0``active_runtime_gate_count=0`
- `runtime_execution_authorized=false``github_primary_switch_authorized=false``refs_sync_authorized=false``repo_creation_authorized=false``workflow_modification_authorized=false``action_buttons_allowed=false`
## 2026-06-04IwoooS P1-4 Workflow / Secret Owner Response Handoff
**背景**P1-3 已補 GitHub target owner response handoff本段接著補 P1-4 / S4.12 workflow、webhook、runner、deploy key、branch protection / CODEOWNERS、repository secret name parity 的 owner response handoff。目標是只收名稱與脫敏 metadata不收 secret value、hash、masked token、partial token 或任何可還原 credential material。

View File

@@ -8,15 +8,16 @@
| --- | --- |
| Repo/worktree | `/private/tmp/awoooi-iwooos-next-gate-20260604` |
| 推版規則 | 只推 Gitea`git push gitea HEAD:main`GitHub 只讀備份 |
| 最新完成 commit | `b61ee9b0 feat(web): align AwoooP controls with WOOO radius tokens` |
| 最新 deployment marker | `8c9582f3 chore(cd): deploy b61ee9b [skip ci]` |
| 正式站驗證 | `https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&_v=8c9582f3-d1-prod-smoke` |
| 最新 Gitea main | `291ff925 docs(security): add Kali maintenance window draft [skip ci]` |
| 最新完成 code commit | `8a326338 fix(web): mirror AwoooP operator statuses in Chinese` |
| 最新 deployment marker | `c046b9c8 chore(cd): deploy 8a32633 [skip ci]` |
| 正式站驗證 | `https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&_v=c046b9c8-runs-status-fallback` |
| 首頁產品化入口 | 88% |
| AI provider readability | 88% |
| Runs visibility | 88% |
| Runs visibility | 92% |
| Work Items readability | 84% |
| Design system | 64% |
| 完整 AI 自動化飛輪 | 72% |
| 完整 AI 自動化飛輪 | 73% |
## Session 啟動固定檢查
@@ -94,19 +95,20 @@
| 欄位 | 內容 |
| --- | --- |
| 優先級 | P0 |
| 狀態 | 已推 Gitea main新建 approval gate 已寫入 raw timeline event 並通過本地測試production 健康與 Runs 頁未破,待新 approval / backfill 驗 raw event |
| 本階段完成度 | 48% |
| 狀態 | 已推 Gitea mainRuns 列表已顯示 status-chain / run evidence fallback、MCP、Ansible、KM 與人工 gate 狀態;正式站 desktop/mobile smoke 通過。CD post-deploy checks 因 Source Link Canary 失敗而紅燈,需納入 Phase 2 告警鏈路修復。 |
| 本階段完成度 | 56% |
| 目標完成度 | 完整 AI 自動化飛輪 69% → 75% |
細項:
- [x]`auto_execute_success_rate` SLO 違反原因,對照最近自動修復任務。
- [x] 盤點流程是否真跑完alert ingest → classify → rule match → MCP evidence → PlayBook → approval gate → Ansible/repair → verifier → KM → postmortem。
- [x] 補新建 approval gate raw timeline event同一 transaction 寫入 `stage``next_action``blocked_reason``auto_or_manual``needs_human`、risk 與 signature 狀態。
- [x] Runs 列表 Source Flow 補 operator status chain / fallback同一 incident 可見 `需人工``等待人工審批`、blocked reason、MCP 成功/失敗、Ansible candidates / apply / reason、KM entries。
- [ ] 補既有 pending approval 歷史 backfill / production smoke確認正式站同一 incident 不再出現 `timeline_missing_for_approval`
- [ ] 補 executor / verifier / KM 狀態變更事件:每個 incident 必須看到 stage、handler、AI action、manual need。
- [ ] Telegram 告警補 stage、next action、blocked reason、auto/manual。
- [ ] 建立風險分級與 approval gate 對照表,釐清中低風險是否允許 AI 自動修復。
- [ ] 確認 MCP / 自建 MCP 實際 tool call、evidence、result 有被前端顯示;目前 Runs 表格可見 MCP summary,但 result / blocker 還不夠一眼可讀
- [ ] 確認 MCP / 自建 MCP 實際 tool call、evidence、result 有被前端顯示;目前 Runs 表格可見 MCP summary、blocked reason、Ansible / KM 摘要,但 tool call result drilldown 還未完整產品化
Live evidence
- Production `/api/v1/ai/slo?force_refresh=true``auto_execute_success_rate=90.2%``human_override_rate=0.5%``verifier_false_neg_rate=0.0%`,目前 `any_violated=false`
@@ -123,6 +125,11 @@ Live evidence
- Gitea main`1ae8f809 fix(api): record approval gate timeline events` 已推送。
- Post-push production health`/api/v1/health``status=healthy``environment=prod`、PostgreSQL / Redis / Ollama / OpenClaw / SigNoz 均 `up`
- Post-push production Runs smoke`/zh-TW/awooop/runs?project_id=awoooi` 表格 50 列,`INC-20260603-9B2535`、MCP、approval / 審批文案可見,`horizontalOverflow=0`
- Production deploy marker`c046b9c8 chore(cd): deploy 8a32633 [skip ci]` 已出現在 Gitea maincode commit `8a326338``8ad8bf48 fix(web): keep run status readable without chain batch`
- Gitea code-review run `2548`successGitea CD run `2547``build-and-deploy` success`post-deploy-checks` failure失敗檢查為 `Source Link Canary`API Health、Alertmanager / SigNoz / Sentry webhook、SigNoz、OTEL Collector、Event Exporter 皆通過。
- Production Runs desktop smoke`/zh-TW/awooop/runs?project_id=awoooi&_v=c046b9c8-runs-status-fallback` 載入 `INC-20260603-9B2535`,無 fetch failure`horizontalOverflow=0`;同列顯示 `需人工``等待人工審批,尚未執行``blocked=all_evidence_sensors_failed``MCP 4/4; failed=0; blocked=0``Ansible candidates=2; apply=0``KM entries=0`
- Production Runs mobile smoke 390x844`horizontalOverflow=0`、可上下滾動、無 fetch failure同列可見 MCP / Ansible / KM 狀態;截圖:`/tmp/awoooi-runs-status-chain-mobile-c046b9c8.png`
- Production screenshot`/tmp/awoooi-runs-status-chain-desktop-c046b9c8.png``/tmp/awoooi-runs-status-chain-table-desktop-c046b9c8.png`
驗收:
- [ ] DB / API / browser 都能查到同一 incident 的 stage timeline本地程式與單元測試已過production health / Runs smoke 未破raw `timeline_events` 需等新 approval 或 backfill 後驗證。
@@ -134,7 +141,7 @@ Live evidence
| 欄位 | 內容 |
| --- | --- |
| 優先級 | P0 |
| 狀態 | 未開始 |
| 狀態 | 待啟動;`c046b9c8` post-deploy checks 已暴露 Source Link Canary 紅燈,需列為 Phase 2 第一個 live issue |
| 目標完成度 | 告警資料鏈路可判讀性 → 90% |
細項:
@@ -142,6 +149,7 @@ Live evidence
- [ ] 告警關聯 Sentry、SigNoz、Alertmanager、K8s、host logs、run timeline。
- [ ] 建立告警 dedupe / fingerprint / recurrence 統計,降低重複轟炸。
- [ ] 修「詳情 / 歷史」HTTP 400 或查不到事件。
- [ ]`Source Link Canary`Gitea CD post-deploy run `2547` 顯示 `sentry source-link canary failed: Expecting value: line 1 column 1 (char 0)`;需確認 Sentry source-link API 回應、JSON parse、DB event 對應與錯誤訊息。
- [ ] 修 postmortem 瞬間大量重複通知。
- [ ] 修 Config Drift 重複告警,確認 PR 已建立後的採納 / 關閉 / baseline / TTL 狀態。