diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 975a51ea6..7c7c35d8f 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -4,14 +4,19 @@ **完成內容**: - Gitea main / branch 已推 `54eea881e fix(ci): fail closed host runner pressure guards [skip ci]`,回復 `scripts/ci/wait-host-web-build-pressure.sh` fail-closed 預設、`scripts/reboot-recovery/awoooi-startup-110.sh` 雙鑰匙 sentinel、`.gitea/workflows/cd.yaml` Docker build lock fail-closed。 +- Gitea main / branch 已推 `899635cc6 docs(runner): record 110 fail-closed pressure exception [skip ci]`,將 110 runner 壓力事故例外寫回 `AGENTS.md`、`docs/HARD_RULES.md`、`ops/runner/README.md`、MASTER 與 LOGBOOK,避免全面授權被誤讀成可直接重開 runner。 - Live 110 `/usr/local/bin/awoooi-wait-host-web-build-pressure.sh` 與 `/usr/local/bin/awoooi-startup-110.sh` 已同步 fail-closed 並加 immutable。 - Live 110 四條 runner 入口改為 immutable fail-closed stub,原 ELF 僅 quarantine 不讀內容:`/home/wooo/act-runner/act_runner`、`/home/wooo/act-runner/act_runner.real-20260628-runner-pressure-guard`、`/home/wooo/act-runner-controlled/act_runner`、`/home/wooo/awoooi-controlled-runner/awoooi_controlled_runner`。 -- `gitea-act-runner-host.service`、`gitea-act-runner-awoooi-controlled.service`、`gitea-awoooi-controlled-runner.service`、`gitea-act-runner-awoooi-open.service` 讀回 inactive / disabled,並加上 mask 防止直啟。 +- System-level 與 user-level `gitea-act-runner-host.service`、`gitea-act-runner-awoooi-controlled.service`、`gitea-awoooi-controlled-runner.service`、`gitea-act-runner-awoooi-open.service` 皆讀回 inactive / masked;原 unit file 僅 quarantine,並以 `/dev/null` mask symlink 防止直啟。 - `AGENTS.md`、`docs/HARD_RULES.md`、`ops/runner/README.md` 與 MASTER runner 章節補上 110 runner 壓力事故例外:全面授權不等於可重開 production host runner。 **Live readback**: - 08:41 讀回四個 runner binary 皆為 163-byte shell stub、immutable、執行時回 fail-closed 訊息;runner / StockPlatform / Playwright / Chrome tasks 為 `0`。 - 08:40 曾抓到 parent=1 的孤兒 `/home/wooo/act-runner/act_runner.real-20260628-runner-pressure-guard daemon --config config.yaml`,已 terminate;後續改為 stub 以防任何 direct exec 繞過 systemd。 +- 08:47 延遲讀回:四個 system runner unit 皆 `LoadState=masked`、`ActiveState=inactive`、`UnitFileState=masked`;user-level runner units 亦為 masked;精準 runner process scan 無命中。 +- 08:52 以乾淨 SSH command 重跑 live pressure gate:`/usr/local/bin/awoooi-wait-host-web-build-pressure.sh` 回 `GATE_RC=0`、`no host web/build/smoke pressure detected`。 +- `post-start-quick-check.sh --no-color` 回 `SCORECARD_RC=2`、`POST_START_QUICK_CHECK PASS=35 WARN=4 BLOCKED=4`、`RESULT=BLOCKED`;public routes 全部 HTTP OK,StockPlatform freshness `ok` / latest trading date `2026-06-26`,但 MOMO daily sales data stale `4|2026-06-24`、backup heartbeat core blocker、credential escrow missing `5` 仍阻擋全主機 green。 +- 08:49 曾觀察到 `/home/wooo/awoooi-manual-deploy` 的手動 Web image build;parent 是另一條 SSH session,不是 Gitea runner。08:52 乾淨 gate 已恢復 `GATE_RC=0`;此 live-only manual deploy path 仍需後續納入 pressure lock / 非 110 build path。 **邊界**:本段沒有重啟 Docker / Nginx / firewall / K3s / DB,沒有讀 raw sessions / SQLite / auth / `.env` / runner token。仍未宣稱全主機 scorecard green;下一步是 runner 搬遷 / 限流、StockPlatform smoke 排程或移出 110、再跑 cold-start scorecard。