fix(reboot): expose windows99 vmx repair package readback
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m34s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-03 11:00:29 +08:00
parent aed26bae84
commit 44a308d4e5
6 changed files with 245 additions and 6 deletions

View File

@@ -59,7 +59,7 @@
| --- | --- | --- | --- | --- | --- | --- |
| 1 | CIR-P0-RBT-001 | P0 | 「主機重啟後 10 分鐘內全部恢復,且要自動判斷所有主機被重啟」 | 建立 99/110/111/112/120/121/188 reboot event detector + 10 分鐘 SLO scorecard + fixed triage order | 2026-07-03 10:50 production scorecardreadiness `60%`、active blockers `10``can_claim_all_services_recovered_within_target=false`blockers 已含 reboot event / host unreachable / uptime unknown / Windows99 VMX / guest power / VMware config / Windows Update policyartifact `/tmp/awoooi-reboot-continue-20260703-085205`111 不可達、99 uptime unknown、188 startup failed/degraded09:22 已把 unreliable console artifact 投影成 machine-readable blocker | 優先收斂 111 VMX source、99 local console Verify output / no-secret management channel 與 111 reachability不可宣稱 10 分鐘 SLA 已證明,不得用 RDP clipboard 片段當完成證據 |
| 2 | CIR-P0-RBT-002 | P0 | 「沒有偵測到主機重啟」 | 修正 host reboot/shutdown/up detectionboot_id / uptime / node exporter / Windows exporter / VMware VM power state 都要進同一事件 | Scorecard 已接 collection packet + management probe08:23 host probe 有 7 列但 99 只有 ping/RDP reachable、uptime unknown111 unreachable112/120/121/188 uptime 都已超過 10 分鐘窗口 | 讓 99 verifier / Windows exporter 或等效 no-secret readback 進入 host boot event並補 111 reachability 證據 |
| 3 | CIR-P0-RBT-003 | P0 | 「192.168.0.99 VMWare 要自動啟動,裡面 111/188/120/121/112 也自動啟動」 | Windows 99 VMware host autostart + guest VM autostart contractVM host 111/188/120/121/112 開機順序與 readback | Source verifier / parser / API readback / collection packet 已完成10:15 source/API patch 已把 nested `service_blockers=["VMAuthdService","VMnetDHCP"]` 與 VMX / power evidence 提升到 active blocker matrix,不再只顯示 guest power not ready09:53 management probe 讀回 99 host reachable、RDP / Hyper-V VMConnect reachable但 SSH BatchMode `permission_denied`、WinRM timeout`console_artifact_status=blocked_clipboard_unreliable` | 先修 111 VMX source VMware service / autostart task check-mode package重跑 no-secret collector 與 scorecard不得從 scorecard 直接啟動 / 關閉 VM、重啟 Windows service、讀密碼或 host reboot |
| 3 | CIR-P0-RBT-003 | P0 | 「192.168.0.99 VMWare 要自動啟動,裡面 111/188/120/121/112 也自動啟動」 | Windows 99 VMware host autostart + guest VM autostart contractVM host 111/188/120/121/112 開機順序與 readback | Source verifier / parser / API readback / collection packet 已完成10:58 API scorecard 已接入 `windows99_vmx_source_repair_package`,會把 111 VMX missing 轉成 expected path / `Test-Path` check-mode probe10:15 source/API patch 已把 nested `service_blockers=["VMAuthdService","VMnetDHCP"]` 與 VMX / power evidence 提升到 active blocker matrix09:53 management probe 讀回 99 host reachable、RDP / Hyper-V VMConnect reachable但 SSH BatchMode `permission_denied`、WinRM timeout`console_artifact_status=blocked_clipboard_unreliable` | 先依 API package 修 111 VMX source,再處理 VMware service / autostart task check-mode package重跑 no-secret collector 與 scorecard不得從 scorecard 直接啟動 / 關閉 VM、重啟 Windows service、讀密碼或 host reboot |
| 4 | CIR-P0-RBT-004 | P0 | 「192.168.0.99 不可因 Windows Update 無預警重開」 | Windows Update reboot policyactive hours / no auto-restart / maintenance window / update notification audit | 10:15 source/API patch若 nested verifier 回 `policy_blockers=["windows_update_policy_readback_missing"]`API 必須 fail-closed 重新提升 `windows99_update_no_auto_reboot_policy_not_ready`;不得只信舊 Prometheus `windows99_update_no_auto_reboot_ready=true` | 補 no-secret policy readback / drift alert若 policy 不綠,另走 controlled apply package + rollback + post-verifier禁止要求或記錄 Windows 密碼,禁止由 scorecard 直接 apply registry |
| 5 | CIR-P0-RBT-005 | P0 | 「網站重啟後 502 嚴重影響體驗,要維護頁,外部雲端或專業做法」 | Public maintenance fallbackNginx / edge / external static maintenance page / status page / fail-open UX避免 502 直出 | Source + runtime verifier 已實作Gitea CD `#4459` Success、deploy marker `8d7a6faaf`production API scorecard 已讀回 `public_maintenance_fallback.ready=true`、raw 5xx=`0`、unreachable without L1=`0`P0 blockers `11`、readiness `47`;仍不可宣稱整體 10 分鐘 SLO 完成 | 若未來 public route 出現 raw 5xx先走 L0 Nginx intercept / header verifier若 edge unreachable才產生 L1 external static origin / CDN decision record + rollback |
| 6 | CIR-P0-RBT-006 | P0 | 「所有主機關機立刻 Telegram 告警,重啟後也要告警,其他告警一併完整思考」 | Down / shutdown suspected / reboot detected / reboot recovered / SLO missed / backup failed / freshness stale / CPU pressure / Gitea queue 告警矩陣 | HostDown / HostRebootEventDetected / RebootAutoRecoverySLOMissed 已存在per-blocker reboot alerts 與 backup receipt rules 已 deploy/readback。Backup receipt 缺段已從 100 條 stage 噪音收斂為 110 / 188 兩條 host-level pending仍需完整 shutdown/up E2E receipt | 補 Prometheus / Alertmanager active/resolved 與 outbound receiptbackup alert 先補 `/backup/alert-receipts/*.last_success` 脫敏 marker不送測試 secret、不重啟主機 |
@@ -136,7 +136,7 @@
| AI 專業 UI / 非文字牆 cockpit | 已列為 P2 UX 驗收 | 將長文字區塊收斂成 first-viewport cockpit、cards、flow rows 與 expandable details |
| 10 分鐘 reboot auto-recovery SLA | 2026-07-03 10:50 production scorecard 固定 `10` blockers / readiness `60%`,但 `can_claim_all_services_recovered_within_target=false`artifact `/tmp/awoooi-reboot-verify-only-20260703-082310` 保留 host probe / reboot detector / scorecardproduction readback 已把 Windows99 config / policy blockers 上卷 | 收斂 111 VMX source、99 no-secret Verify、111 reachability、188 startup failed/degraded再 rerun host probe + reboot-event detector |
| AWOOOI latest source production deploy readback | Gitea `main=bc8d3af3f`deploy marker `dacdd90`public CD `#4558` log job succeeded / production deploy readback matchedproduction scorecard 已讀回 latest API 行為並把 Windows99 config / policy blockers 上卷 | 下一步轉回 Windows99 VMX / service / policy / power 與 host reboot-event blockers不得因 deploy/readback 成功宣稱 10 分鐘 SLO 完成 |
| 99 Windows / VMware autostart | Source verifier / parser / API readback / collection packet 已完成live 99 Verify output 尚未收集08:23 management probe 顯示 RDP / Hyper-V VMConnect reachable但 SSH BatchMode / WinRM blockedcollector `blocked_ssh_publickey_auth_missing` | 收集 99 no-secret Verify output確認 VM 111/188/120/121/112 running、scheduled task / services / Windows Update policy 全綠 |
| 99 Windows / VMware autostart | Source verifier / parser / API readback / collection packet 已完成;10:58 API scorecard 已接入 `windows99_vmx_source_repair_package`111 VMX missing 會輸出 expected path 與 check-mode probelive 99 Verify output 尚未收集08:23 management probe 顯示 RDP / Hyper-V VMConnect reachable但 SSH BatchMode / WinRM blockedcollector `blocked_ssh_publickey_auth_missing` | 依 API package 修 111 VMX source收集 99 no-secret Verify output確認 VM 111/188/120/121/112 running、scheduled task / services / Windows Update policy 全綠 |
| Reboot SLO blocker 收斂 | production scorecard 已固定 `10` blockers / readiness `60%`source / runtime 已補 per-blocker metric/alert剩餘主 blocker 是 host boot detection + Windows99 VMware VMX / guest power / autostart config / Windows Update policy | 依具名 blocker 收斂 99/111/188不得用 route green 或 RDP 可見宣稱 SLA 完成 |
| 全備份監控告警 coverage | exporter/rule 已有 host/DB/site/service/package/tool/log coverage 與 backup alert receipt requirementruntime rules 已部署,缺段 alert 聚合成 110 / 188 host-level pendingproduction receipt markers / full Gitea dump / DB/settings/issues/packages/LFS 尚未全綠 | 補 `/backup/alert-receipts/*.last_success`、Gitea full dump 與 restore drill verifier |
| Stock/Postgres hot pressure | 110 live 已導向 Stock/Postgres playbook尚未完成 hot query / backup export playbook closure | 下一步執行 read-only Stock/Postgres evidence 與 source freshness / query attribution |