diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 70317ac50..9e30fa60a 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,22 @@ +## 2026-06-28 — 18:58 110 fail-closed authority cron immutable 修復與 P3 讀回 + +**背景**:`1fdbc96a9` 曾把 fail-closed authority source / timer source 刪除,live 110 也被改成 disabled stub:authority / canonical SHA `03bbf87d...`、`/etc/cron.d/awoooi-runner-failclosed-authority` 內容為 `No cron jobs are defined`、`awoooi-cd-lane-drain.service active/enabled`。後續 `f4d1b99da` 與 `6840c3578` 已 revert 該方向;`5c540460c` / `3b3fbef63` 補上 cron 檔 immutable 覆寫修復。 + +**完成內容**: +- Source of truth 維持 fail-closed authority:`scripts/reboot-recovery/enforce-110-runner-failclosed.sh` SHA `e8febeda83a0d3c8357a9d946f64de486dfea8d97f1c0bf597d9adc352d98681`。 +- live 110 已安裝 hotfix source;authority / canonical SHA 皆為 `e8febeda83a0d3c8357a9d946f64de486dfea8d97f1c0bf597d9adc352d98681`。 +- cron line 讀回:`* * * * * root /usr/local/lib/awoooi/enforce-110-runner-failclosed.authority.sh --apply >>/var/log/awoooi-runner-failclosed-authority-cron.log 2>&1`。 +- `awoooi-runner-failclosed-authority.timer` 與 `awoooi-runner-failclosed-enforcer.timer` 讀回 `active/enabled`;`awoooi-cd-lane-drain.service inactive/masked`,job container `0`,lane process `0`。 + +**驗證結果**: +- P3 release gate:`PASS=38 WARN=3 BLOCKED=0`,Result `P3_RELEASE_WITH_CAUTION`。 +- full cold-start 子 gate:`PASS=92 WARN=1 BLOCKED=0`。 +- 110 load:load5/core `0.470833`、load15/core `0.431667`;runner/CD guardrails `CD_LANE_GUARDRAILS_OK 1`、`BAD_RUNNER_GUARDRAILS 0`、`NO_ACTIVE_JOB_CONTAINERS`。 +- Actions 頁最新 running / 舊 run 仍是 `1fdbc96a9` 的 `#3846/#3847`,未看到 `5c540460c` 或後續 `[skip ci]` commit 觸發新 push workflow。 +- 110 port 22 exec channel 有 30 秒級延遲;後續 SSH verifier 應使用較寬 timeout,不得用 5 秒 server-alive 直接判死。 + +**邊界**:沒有讀 secret / runner token / raw session / SQLite / auth / `.env`;沒有重啟 Docker / Nginx / firewall / K3s / DB;沒有 force push;沒有打開 legacy runner 或 controlled drain lane。 + ## 2026-06-28 — 18:50 AI Agent deploy control plane 內部迴圈 **完成內容**: