fix(agent99): serialize cross-process SSH transport
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 4m7s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 0s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 1m21s
CD Pipeline / build-and-deploy (push) Successful in 4m46s
CD Pipeline / post-deploy-checks (push) Successful in 2m39s

This commit is contained in:
ogt
2026-07-11 00:14:53 +08:00
parent 3b8bdcea80
commit ca252d3393
8 changed files with 209 additions and 79 deletions

View File

@@ -1,9 +1,9 @@
# AWOOOI 重開機恢復 SOP
> **版本**: v5.24
> **版本**: v5.25
> **最後更新**: 2026-07-10 (台北時間)
> **更新者**: Codex
> **觸發事件**: 2026-07-10 全主機重啟後 Agent99 transport、效能修復與證據鏈收斂
> **觸發事件**: 2026-07-11 Agent99 多排程 SSH contention 與 false-down readback 收斂
---
@@ -29,6 +29,8 @@ Agent99 SSH transport 使用 99 本機專用 Ed25519 identity `C:\Wooo\Agent99\k
所有 SSH command 都必須 bounded timeout。Timeout 時先用 `taskkill /T` 終止 process tree再確認 process 是否仍存活;`Perf` / `LoadShed` controlled apply 執行前會清理只符合以下全部條件的 stale clientAgent99 allowlisted target、`BatchMode=yes`、沒有 `-N/-L/-R/-D` tunnel、超過 15 分鐘且 parent 已消失,或超過 60 分鐘 hard limit。guard 不記錄 command line不碰互動式 SSH 或 tunnel結果寫入 `sshProcessGuard` evidence。
Agent99 的 Heartbeat、Performance、手動 Status 或告警修復可能由不同 Windows process 同時啟動。所有 `Invoke-SshText` 必須先取得 `C:\Wooo\Agent99\state\ssh-transport.lock` 的 exclusive file handle跨 SYSTEM scheduled task 與 RDP operator session 一次只允許一條 Agent99 SSH command程序結束時由 OS 自動釋放 handle。預設最多等待 90 秒,逾時回 `ssh_transport_lock_timeout`,不得再開新 client。若同輪五主機 ping 全通,但 Harbor、AWOOOI 與所有 performance readback 同時空白,優先判定為 transport contention必須等序列化後重驗不得宣稱所有服務同時故障。
效能修復不得以 command exit code 取代 post-verifier。只要 action 配置 verifier成功判定完全由 verifier 決定verifier 失敗必須記為 failed僅建立 10 分鐘 failure backoff不得建立 success cooldown。policy 變更必須提升 `policyVersion`,由 deployer migration 更新 99 live config避免舊 command 或 marker 繼續造成 false green。
本輪 live receipt`agent99-load-shed-marker-correction.json` 已封存 188 舊 false-success marker`agent99-stale-ssh-cleanup-v2.json` 已受控終止 7 個逾時 orphan SSH client`agent99-Perf-20260710-224454.json` 顯示 110、112、120、121、188 全部 readback OKroute 分別為 direct、direct、via110、via110、via110。110 load/core `0.60`、disk `84%`188 load/core `0.18`、disk 由 `90%` 降至 `88%`。這證明 transport、效能讀回與 verifier 修復 lane 已恢復,不等於已完成下一次實際全主機 cold-start 的 10 分鐘 SLA 驗收。