fix(agent99): close canonical host readbacks
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m41s
CD Pipeline / build-and-deploy (push) Successful in 9m24s
CD Pipeline / post-deploy-checks (push) Successful in 1m56s

This commit is contained in:
ogt
2026-07-14 18:29:48 +08:00
parent 2fe6a56c09
commit 4ea132d992
17 changed files with 259 additions and 68 deletions

View File

@@ -1,7 +1,7 @@
# AWOOOI 全棧冷啟動與主機重啟 SOP
> Version: v1.133
> Last updated: 2026-07-11 Asia/Taipei
> Version: v1.134
> Last updated: 2026-07-14 Asia/Taipei
> Scope: 99 / 110 / 111 / 112 / 120 / 121 / 188 全棧重啟恢復。112 仍是 Kali / VM guest 訊號,但 2026-06-30 全主機重啟後已納入 10 分鐘 SLO 的必要 boot / power signal此納入不代表授權任何破壞性 runtime apply。
---
@@ -10,6 +10,14 @@
本節是每次接手、開機、關機、重啟後的第一個判定錨點。若日期不是今天,必須先重跑 live check再更新本節與 `docs/workplans/2026-06-04-reboot-cold-start-backup-recovery-workplan.md`
### v1.134 2026-07-14 Agent99 canonical host readback closure
本輪釐清 111 的 `perf_readback_failed` 不是 CPU 壓力,而是 Agent99 沿用預設 `wooo`,但 110 到 111 的 canonical restricted identity 是 `ooo`。部署合約固定 `sshUsers["192.168.0.111"]="ooo"`,舊 live config 必須由 `host111_canonical_ssh_user` migration 寫入後重新讀回帳號、transport 或四項指標任一缺失時,只能標示 readback degraded不得產生 CPU/記憶體/磁碟故障結論或執行降載。
- 111 仍使用 `restrict,command=` public key禁止 shell、PTY 與 forwarding。`/Users/ooo/.local/bin/awoooi-host-boot-readback` 固定額外輸出 `perf_schema=agent99_perf_readback_v1 os=darwin`、logical cores、load1、memory available percent 與 root disk used percentAgent99 解析此 schema不能用 Linux `free` 輸出假設 Mac。
- 112 的 `systemctl is-system-running=degraded` 只能在 `systemctl list-units --failed` 查詢成功、且排除 `awoooi-host112-guest-recovery.service` 自身後 `nonself_failed_count=0` 時正規化為 ready。readback 必須保留 `systemd_state_raw``failed_units_query_ok``nonself_failed_count` 與 units查詢失敗或任何其他 failed unit 都 fail closed。
- 固定驗收順序是 source/test -> Gitea CD/deploy marker -> exact Agent99 runtime manifest -> 111 restricted readback -> Agent99 Perf outcome/callback -> AWOOOI recurrence/work-item -> Telegram/KM。`runtimeMatched=true`、單次 route 200 或 Telegram 已送都不能單獨關閉事件。
### v1.133 2026-07-11 Cold-start runtime convergence
2026-07-11 14:58 最新完成 artifact 為 `/home/wooo/reboot-recovery/reboot-auto-recovery-slo-20260711-145616``OVERALL_DECLARATION=GREEN_WITH_EVIDENCE_WARNINGS``SERVICE_GREEN=1``PRODUCT_DATA_GREEN=1``BACKUP_CORE_GREEN=1``POST_START_BLOCKED=0``HOST_188_HYGIENE_BLOCKED=0`scorecard readiness `87%`。active blockers 只剩 `all_required_hosts_not_in_10_minute_reboot_window``fresh_all_host_reboot_event_missing``host_boot_observation_older_than_target_window`,三者都只能由下一次真實全主機 reboot drill 在同一 10 分鐘 window 驗收;不得靠重跑 verifier 或為了清分數擅自 reboot。

View File

@@ -1,9 +1,9 @@
# AWOOOI 重開機恢復 SOP
> **版本**: v5.31
> **最後更新**: 2026-07-11 (台北時間)
> **版本**: v5.32
> **最後更新**: 2026-07-14 (台北時間)
> **更新者**: Codex
> **觸發事件**: 2026-07-11 真實全主機 reboot drill、late recovery 與 Agent99/VMware/runtime 閉環
> **觸發事件**: 2026-07-14 Agent99 host111/host112 readback false-alert closure
---
@@ -21,6 +21,12 @@
## 架構概覽與依賴圖
### 2026-07-14 Agent99 host readback false-alert closure
111 是獨立 Darwin 主機,不是 Windows99 VM。Agent99 必須以 `ooo@192.168.0.111` 經 110 的 restricted forced-command route 讀取狀態;使用預設 `wooo` 會得到 SSH failure不能包裝成 CPU 壓力。forced command 固定輸出 boot/Ollama 加 `agent99_perf_readback_v1` 四項唯讀指標,仍禁止 shell、PTY、forwarding、secret read 與任意命令。Windows99 deploy/bootstrap 必須自動遷移並 post-verify `sshUsers["192.168.0.111"]="ooo"`Perf 只有在 cores/load/memory/disk 全部可解析時才可通過。
112 guest 的 systemd raw 狀態不得被直接洗綠。只有 failed-unit 查詢成功、唯一失敗是 recovery oneshot 自身、且 console/SSH/Wazuh/timer 各自 verifier 全綠時effective systemd state 才可視為 running其他 failed unit 或 query failure 都保持 degraded。這些欄位必須進同一 readback、Agent99 outcome、callback、AWOOOI recurrence 與 KM避免每次重啟重新猜測原因。
### 2026-07-11 真實 reboot drillSLA breach 與 late recovery 真相
本輪不是模擬。重啟前 Agent99 runtime `7cf83f7f59a5d72ce6c303f59c144bd5bf8566df``14/14` matched、核心 task `9/9`production-principal `Recover` baseline 已通過 full-SOP coordinator且正確標示 `scope=service_recovery``rebootSloClaimed=false`。七主機與六核心路由在 observer 開始時均可達。