From af664833c0e4712f8ef4ae4e43e4e19b10357e09 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 26 Jun 2026 06:54:55 +0800 Subject: [PATCH] docs(logbook): record apply gate closure readiness rollout [skip ci] --- docs/LOGBOOK.md | 38 +++++++++++++++++++ ...026-06-04-iwooos-security-governance-p0.md | 8 ++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 7901bfa2..0561e037 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -19,6 +19,44 @@ - 不得用 `pg_isready OK`、Docker DB healthy 或 public route `200` 取代 host `postgresql@14-main` 狀態。 - 不得自動 `pg_resetwal`、`certbot renew`、`systemctl reset-failed`、Nginx reload 或 DB restore;需要 owner-approved maintenance window、rollback owner、備份 evidence 與 post-check。 +## 2026-06-26|AwoooP apply gate 閉環準備度上線:批准後卡在哪一格可直接讀 + +**背景**:使用者指出 Telegram 告警與 AwoooP approval 在「批准後」仍常停在人工接手,且頁面看不到 AI 自動化到底完成了哪些步驟、還缺哪些資產。前一段已把 Ansible check-mode-only 修正為 `apply_candidate_owner_review_ready`,但 status-chain 仍缺少 owner 放行、受控執行、post-apply verifier、KM 與 PlayBook trust 回寫的閉環矩陣。 + +**完成**: +- `platform_operator_service.py` 的 `ansible_check_mode_apply_gate` handoff 新增 `awooop_apply_gate_closure_readiness_v1`。 +- 閉環矩陣固定 8 個 gate:`mcp_evidence`、`dry_run`、`apply_candidate`、`owner_release`、`controlled_execution`、`post_apply_verifier`、`km_writeback`、`playbook_trust`。 +- `INC-20260625-977E5F` 正式 API 讀回:`3/8 ready`、`5 blocked`、completion `38%`;已完成 MCP 證據、乾跑、apply candidate;仍 blocked 在 owner 放行、受控執行、套用後 verifier、KM 回寫與 PlayBook trust。 +- AwoooP Work Items / Runs 共用的 `AwoooPStatusChainPanel` 新增「批准後自動化閉環準備度」視覺區塊,直接顯示八格 gate、Owner 放行欄位與只讀回查資產。 +- i18n `zh-TW` / `en` 同步新增閉環文案;英文檔維持繁中鏡像,避免雙語漂移。 + +**Commit / Deploy**: +- Code commit:`d798d09e feat(awooop): expose apply gate closure readiness`。 +- Deploy marker:`e0fbedfd chore(cd): deploy d798d09 [skip ci]`。 +- Gitea Actions:code-review `#3420` 成功;CD `#3419` 完成並產生 deploy marker。 + +**驗證**: +- `DATABASE_URL=sqlite:////tmp/awoooi-apply-gate-test.db /Users/ogt/.pyenv/shims/pytest apps/api/tests/test_awooop_operator_timeline_labels.py apps/api/tests/test_operator_outcome.py -q`:`76 passed`。 +- `python3 -m py_compile apps/api/src/services/platform_operator_service.py apps/api/src/services/operator_outcome.py`:通過。 +- `pnpm --filter @awoooi/web typecheck`:通過;因本機磁碟只剩約 `3.3GiB`,使用既有 pnpm 依賴 symlink 跑 typecheck,未新增安裝。 +- i18n mirror:`I18N_KEY_MIRROR zh_only=0 en_only=0`。 +- `python3 scripts/security/source-control-owner-response-guard.py --root .`:`SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK`。 +- `python3 scripts/security/security-mirror-progress-guard.py --root .`:`SECURITY_MIRROR_PROGRESS_GUARD_OK`。 +- `git diff --check`:通過。 +- Production API readback:`/api/v1/platform/status-chain?project_id=awoooi&incident_id=INC-20260625-977E5F&_v=e0fbedfd-apply-gate-closure-api` 回 `closure_schema=awooop_apply_gate_closure_readiness_v1`、`ready=3`、`total=8`、`blocked=5`、`percent=38`、runtime / writes 皆 `false`。 +- Production Work Items desktop:`/zh-TW/awooop/work-items?project_id=awoooi&incident_id=INC-20260625-977E5F&work_item_id=ansible-apply-gate%3Aawoooi%3AINC-20260625-977E5F&_v=e0fbedfd-apply-gate-closure-prod-desktop` 在 `1440x1000` 可見閉環矩陣、`3/8 ready`、Owner 放行前受阻、八格 gate、Owner 欄位與只讀回查資產;`horizontalOverflow=0`、危險執行控制 `0`、raw / 內部工作片語外露 `0`。 +- Production Work Items mobile:同一路徑 `_v=e0fbedfd-apply-gate-closure-prod-mobile` 在 `390x844` 可見同一批必要文字;`clientWidth=384`、`scrollWidth=384`、`horizontalOverflow=0`、危險執行控制 `0`、raw / 內部工作片語外露 `0`。 +- 截圖:`/tmp/awoooi-apply-gate-closure-prod-desktop-e0fbedfd.png`、`/tmp/awoooi-apply-gate-closure-prod-mobile-e0fbedfd.png`。 + +**完成度同步**: +- Apply gate 閉環準備度資料契約:`100%`。 +- Work Items / Runs status-chain 閉環可視化:正式站 `100%`。 +- Telegram / AwoooP operator 判讀可信度:`86% -> 88%`。 +- P0-9 MCP evidence -> PlayBook 修復候選:`90% -> 92%`。 +- 真正 AI 自動化 verified repair 成功率仍不提高;目前仍未執行 Ansible apply、未做 post-apply verifier、未寫 KM、未更新 PlayBook trust、未開 runtime gate。 + +**邊界**:本段只新增 status-chain read model 與前端閉環矩陣;不 SSH、不重啟服務、不執行 Ansible apply、不發 Telegram、不寫 KM、不改 PlayBook trust、不改排程、不開 runtime gate。 + ## 2026-06-26|AI Agents 專業執行跑道正式讀回:全域控管可見化,但仍不誇大自動接管 **背景**:統帥要求 AI Agents 不只列在治理卡片,而要能「遍地開花」控管主機、產品、網站、套件、服務、工具、AI Agent 與 AI 解決方案,並且讓使用者能看見 OpenClaw、Hermes、Nemotron 等角色的專業分工、互動、學習與成長證據。同時前端禁止顯示內部對話內容、raw path、secret 或 Telegram token。 diff --git a/docs/workplans/2026-06-04-iwooos-security-governance-p0.md b/docs/workplans/2026-06-04-iwooos-security-governance-p0.md index 7dc6253d..22de4e0f 100644 --- a/docs/workplans/2026-06-04-iwooos-security-governance-p0.md +++ b/docs/workplans/2026-06-04-iwooos-security-governance-p0.md @@ -9,10 +9,10 @@ | 工作視窗 | IwoooS / AWOOOI 資安治理 P0 | | 本次乾淨 worktree | `/private/tmp/awoooi-iwooos-notification-egress-20260619` | | 本次分支 | `codex/iwooos-notification-egress-20260619`;同步 `codex/code-review-governance-20260619` 成果;推送時使用一般 push,不 force push | -| 最新觀察到的 `gitea/main` | `7098e24e docs(logbook): 記錄全產品 Code Review Gate 正式驗證 [skip ci]`;P2-111 全產品 Code Review 防木馬 Gate 已由 `68f70f7c` / deploy marker `46addb45` / CD `#3239` 完成正式 mobile readback;P2-410 action audit ledger 已由 `e13f716c` / deploy marker `38e60192` / CD `#3238` 完成 production API readback,並由 `46624123` / deploy marker `7a9e1cfd` / CD `#3242` 納入 governance UI projection;active runtime gate 仍為 `0` | +| 最新觀察到的 `gitea/main` | `52f61da4 chore(cd): deploy 002410e [skip ci]`;本輪 AwoooP apply gate 閉環準備度已由 `d798d09e` / deploy marker `e0fbedfd` / code-review `#3420` / CD `#3419` 完成正式 API 與 Work Items desktop / mobile readback;active runtime gate 仍為 `0` | | 最新 P0 Telegram 告警 / 批准執行真相鏈基準 | code `32e4beca`、deploy marker `717b5870`、code-review `2658`、CD `2657`;no-action approval 不再觸發 executor,可執行修復 approval 會寫入 `auto_repair_executions`、KM 與 verifier | | 最新 P0 Telegram no-action 人工處置包基準 | code `cd928852`、deploy marker `9181cc0e`、code-review `2666`;正式部署 tree 已包含 no-action 人工處置包、`處置包 / 重診 / 歷史 / 靜默 / 真相鏈 / Runs` 鍵盤、production pod render / keyboard smoke | -| 最新 P0 MCP evidence / PlayBook 修復候選基準 | code `cc614023`、D1 blocker clarity `47d677ac`、D2 manual draft package `febe9ecf`、D3 draft work item `e8d5eafb`、D4 work item detail panel `e8a5bac5`、D5 coverage gap contract、D6 PostgreSQL 慢查詢分類 / database owner-review candidate 本地完成;目前本輪 D6 尚待推送 / 部署驗證。正式部署 tree 經 production pod smoke 與 Work Items browser smoke 確認可由 MCP evidence + approved PlayBook trust 產生 medium approval candidate、綁定預配置 approval id、不外露 preallocated metadata,且通用兜底 / 診斷型 PlayBook 不會被誤當修復命令;若缺安全修復候選,Telegram 人工處置包會顯示阻擋原因、下一步、PlayBook 草案欄位與 AwoooP 修復候選草案工作項,工作項頁會顯示 PlayBook 草案處置板、必填欄位、阻擋原因、下一步與 Runs / 審批連結;D5 讓 blocked result 輸出服務 coverage gap、blocking stage、必收 MCP evidence refs 與 PlayBook template fields;D6 讓 `PostgreSQLSlowQueries` 優先走 `database_slow_query_triage`,postgres target 不再預填 K8s 重啟,改列 read-only DB evidence、owner review、rollback、verifier 與禁止 SQL terminate / DB restart / migration / reindex 邊界 | +| 最新 P0 MCP evidence / PlayBook 修復候選基準 | code `cc614023`、D1 blocker clarity `47d677ac`、D2 manual draft package `febe9ecf`、D3 draft work item `e8d5eafb`、D4 work item detail panel `e8a5bac5`、D5 coverage gap contract、D6 PostgreSQL 慢查詢分類 / database owner-review candidate、blocker normalization `4c85db18`、apply candidate 語意 `5ce6fc49` / `ef3ee4c4`、apply gate 閉環準備度 `d798d09e` / deploy marker `e0fbedfd`。正式站已確認可由 MCP evidence + approved PlayBook trust 產生 medium approval candidate;若只跑 Ansible check-mode,Work Items / Runs 會顯示 `3/8 ready` 閉環矩陣,明確標出 owner 放行、受控執行、post-apply verifier、KM 與 PlayBook trust 仍 blocked;runtime gate 仍為 `0` | | 最新 P2-D0 繁中文案基準 | code `cd2275a2`、deploy marker `1920bd08`、code-review `2565`、CD `2564` | | 最新 P2-D1 本地掃描基準 | `VISIBLE_LITERAL_TARGET_SCAN_OK files=221`;全站 TS / TSX 中文 literal 盤點 `35` 檔 / `752` 行;註解語氣 backlog `32` 筆 | | 最新 P2-D1 正式部署基準 | code `f9bf8a28`、deploy marker `879b0a36`、CD `2578`、code-review `2579` | @@ -65,7 +65,7 @@ | Observability AI 自動化資產與訊號總帳 | 本地 `100%`;正式站 desktop / mobile `100%` | 是,僅限主機 / 專案 / 網站 / 服務 / 監控訊號 / KM / PlayBook / Verifier / SRE 路由 readback | `/zh-TW/observability` 已把 `AI 自動化資產與訊號總帳` 前移到首屏,6 張卡顯示全域資產、監控訊號、服務健康、KM / PlayBook / Verifier、SRE 戰情室、Runtime Gate;總帳區操作入口 `0`,不 live probe、不 reload、不改規則、不發 Telegram、不套用修復 | | Tenants 全域產品 / 網站 / 來源資產地圖 | 本地 `100%`;正式站 desktop / mobile `100%` | 是,僅限產品 / 專案、網站 / 服務入口、來源範圍、租戶資料與 gate readback | `/zh-TW/awooop/tenants` 已把 `全域資產地圖` 前移到首屏,直接顯示 `57` 個可視資產、`16 個產品 / 專案`、`31 個網站 / 服務入口`、`10 個來源範圍`、分類堆疊、route chips、主要來源就緒、已接受回覆、執行閘門與操作入口;不改租戶政策、不改路由、不部署、不掃描、不建立 repo、不開 runtime gate | | 日報 / 週報 / 月報與 AI Agent 報表資料鏈路 | Weekly report 資料缺口止血本地 `100%`、正式部署 `100%`;Reports 總控正式站 `100%`;P2-109 source health read model 正式站 `100%`;P2-110 weekly no-send preview 正式站 `100%`;P2-110B daily / monthly no-send preview 正式站 `100%`;P2-110C SRE digest no-send preview 正式站 `100%`;P2-110D source gap PlayBook / Verifier readback 正式站 `100%`;P2-110E AwoooP Work Items owner review 正式站 `100%`;P2-410 action audit ledger production API `100%`;報表產品化總控 `94%` | 是,僅限資料源 truthfulness、全 0 判讀、Reports 首屏總控、no-send preview、資產沉澱、PlayBook / Verifier 缺口處置板、AwoooP Work Items owner review、audit event template 與下一步工作項 | `ac325852` / deploy marker `a4b30964` 已修正週報 Git 活動讀取失敗時假性輸出 `0`;`6d4fa7bf` / `5e849225` / `63a75f77` 已把 `/zh-TW/reports` 改成 `報表 / 告警 AI 接管總控`;`27d9f394` / deploy marker `d8862123` 新增 `agent-report-source-health`;`a46e31ba` / `48e06c6a` / deploy marker `3057342a` 已讓 weekly preview 回傳 source `2/5`、confidence `40`、三個 `report-source-gap:*` 與 KM / PlayBook / Verifier 沉澱;`77fe2a85` / deploy marker `29fe6ec8` 已讓 daily / monthly preview 也回傳同一 source health、formatted preview 與 KM / PlayBook / 腳本 / 排程 / Verifier 沉澱;`7e03b923` / deploy marker `c7c0d874` 已新增 SRE 戰情室 digest preview,回傳 live send allowed `0`、runtime gate `0` 與同一批沉澱;`6ab640e4` / deploy marker `049dc0a8` 已讓 `agent-report-source-health` 與 `/zh-TW/reports` 顯示三張 source gap PlayBook / Verifier 處置卡;`ca04b49d` / deploy marker `c33dd9a6` 已讓 `/zh-TW/awooop/work-items` 顯示 source `2/5`、資料缺口 `3`、PlayBook 草案 `3`、Verifier 計畫 `3`、owner review `3`、腳本 readback、排程 no-send 與 runtime gate `0`;P2-410 feature commit `e13f716c` / deploy marker `38e60192` 已讓 `/api/v1/agents/agent-action-audit-ledger` 正式回讀 report source gap 與 SRE digest no-send preview audit event template;仍需接 governance projection 與 receipt gate,不發 live Telegram、不改排程、不開 runtime gate | -| Telegram 監控告警 / 批准執行真相鏈 | outbound 主鏈路 `100%`;批准後執行止血 `100%`;no-action 人工處置包 D0 `100%`;MCP / PlayBook 修復候選 D6 `90%`;Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡資產沉澱矩陣 `100% / incident focus desktop+mobile 100% / 100% / 100% / 100% / 100% / formatter+deploy 100%`;blocker 語意正確性 `86%`;apply candidate 語意 `100%`;治理長期項 `98%` | 是,僅限候選產生、阻擋原因、人工草案包、AwoooP 工作項可追蹤性、Work Items 詳細接手板、Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡資產沉澱欄與 coverage gap metadata | 已修復 Alertmanager tenant context、既有 approval 收斂告警 recurrence、AI 分析中重複告警 recurrence、no-action approval 誤導執行、可執行修復 execution / KM / verifier 紀錄、no-action 人工處置包、MCP evidence / PlayBook trust 候選產生、通用兜底 / 診斷型 PlayBook 阻擋理由、缺候選時的 PlayBook 草案欄位 / 下一步 / AwoooP work item 入口與詳細處置板、blocked result 的服務 coverage gap / blocking stage / required MCP evidence refs、PostgreSQL 慢查詢告警分類防混線與 database owner-review candidate,以及 Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡的 `KM / PlayBook / 腳本 / 排程 / Verifier` 資產沉澱矩陣;Runs 事故焦點已顯示 Work Item、dry-run、apply candidate、verifier 與下一步資產 ID;status-chain blocker 已把缺失顯示為 `auto_repair_missing` / `verification_missing` / `learning_missing`,不再把未完成 gate 顯示成 `*_recorded`;Ansible check-mode-only 已改顯示為 `apply_candidate_owner_review_ready` 與 `dry_run_passed_apply_candidate_ready`,下一步固定指向 apply gate Work Item、Verifier 與 KM 回寫審查;完整自動修復飛輪仍需用真實告警驗證 approval -> execution -> verifier -> KM / PlayBook trust 全鏈,不調高 runtime gate | +| Telegram 監控告警 / 批准執行真相鏈 | outbound 主鏈路 `100%`;批准後執行止血 `100%`;no-action 人工處置包 D0 `100%`;MCP / PlayBook 修復候選 D6 `92%`;Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡資產沉澱矩陣 `100% / incident focus desktop+mobile 100% / 100% / 100% / 100% / 100% / formatter+deploy 100%`;blocker 語意正確性 `88%`;apply candidate 語意 `100%`;apply gate 閉環準備度正式站 `100%`;治理長期項 `98%` | 是,僅限候選產生、阻擋原因、人工草案包、AwoooP 工作項可追蹤性、Work Items 詳細接手板、Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡資產沉澱欄、coverage gap metadata 與 apply gate 閉環矩陣 | 已修復 Alertmanager tenant context、既有 approval 收斂告警 recurrence、AI 分析中重複告警 recurrence、no-action approval 誤導執行、可執行修復 execution / KM / verifier 紀錄、no-action 人工處置包、MCP evidence / PlayBook trust 候選產生、通用兜底 / 診斷型 PlayBook 阻擋理由、缺候選時的 PlayBook 草案欄位 / 下一步 / AwoooP work item 入口與詳細處置板、blocked result 的服務 coverage gap / blocking stage / required MCP evidence refs、PostgreSQL 慢查詢告警分類防混線與 database owner-review candidate,以及 Approvals / Runs / Alerts / Knowledge Base / Observability / Tenants / Telegram 告警卡的 `KM / PlayBook / 腳本 / 排程 / Verifier` 資產沉澱矩陣;Runs / Work Items 已顯示 Work Item、dry-run、apply candidate、verifier、下一步資產 ID 與 `3/8 ready` apply gate 閉環矩陣;status-chain blocker 已把缺失顯示為 `auto_repair_missing` / `verification_missing` / `learning_missing`,不再把未完成 gate 顯示成 `*_recorded`;Ansible check-mode-only 已改顯示為 `apply_candidate_owner_review_ready` 與 `dry_run_passed_apply_candidate_ready`,下一步固定指向 owner 放行、受控執行、post-apply verifier、KM 與 PlayBook trust 回寫;完整自動修復飛輪仍需用真實告警驗證 approval -> execution -> verifier -> KM / PlayBook trust 全鏈,不調高 runtime gate | ## 2. P0 工作拆解與優先順序 @@ -87,7 +87,7 @@ | P0-6 | Telegram 監控告警 / 通知出口治理 | outbound 主鏈路 100%;靜音 / recurrence slice 88%;通知出口清冊 100%;owner request draft 100%;migration plan draft 100%;防新增旁路 guard 100%;owner response acceptance 100%;告警可讀性防退化 guard 100%;direct Bot API convergence 0% | Alertmanager 缺 project context、既有 approval 收斂告警靜音、AI 分析中重複告警靜音皆已修復並正式 smoke;`TelegramGateway` final-exit formatter 已完成 host / multi-signal 卡片化;direct Bot API egress inventory 固定 workflow 13、ops script 4、API direct 1,並聚成 11 份 owner request 草稿與 3 個遷移波次;no-new-bypass guard 已覆蓋 `sendMessage` / `sendDocument` / `sendPhoto` / `sendMediaGroup` / `editMessageText` 等 9 類 Bot API method;本輪新增 readability guard,鎖住 Prisma / root Node.js / Next build / Wazuh / Kali / Nginx drift 等告警必須轉成脫敏 AI 事件卡,不能把 process list、raw JSON、URL、內網 IP、完整路徑或 token 直接送到 Telegram;owner response acceptance 已補 `message_readability_guard_ref=docs/security/telegram-alert-readability-guard.snapshot.json`,後續 direct egress 遷移審查不得繞過卡片化、脫敏、`runtime_write_gate=0` 與 no-false-green;後續需 owner response 後分批收斂,不得把 API formatter、防新增 guard 或 readability guard 完成誤判成既有旁路已收斂或 delivery receipt 已完成 | API health、Telegram health、API pod Alertmanager smoke、production logs `converged_alert_recurrence_sent`、`telegram-notification-egress-inventory.snapshot.json`、`telegram-notification-egress-owner-request-draft.snapshot.json`、`telegram-notification-egress-migration-plan-draft.snapshot.json`、`telegram-notification-egress-no-new-bypass-guard.snapshot.json`、`telegram-notification-egress-owner-response-acceptance.snapshot.json`、`telegram-alert-readability-guard.snapshot.json` | | P0-7 | Telegram 批准後執行真相鏈止血 | 100% | no-action approval 不再顯示批准 / 執行中;可執行修復 approval 會寫入 `auto_repair_executions`、KM 與 verifier;下一步補 MCP evidence / PlayBook trust 產生真正修復候選 | 目標 pytest `125 passed`、py_compile、guard、production health、API / worker rollout、production pod classifier readback | | P0-8 | Telegram no-action 人工處置包與操作入口 | 100% | no-action 卡片已新增人工處置包、證據補齊清單、AwoooP 修復候選建立步驟、verifier / KM / PlayBook 回寫提醒,並改成 `處置包`、`重診`、`歷史`、`靜默`、`真相鏈`、`Runs` 鍵盤;舊訊息不 retroactive 改寫 | 目標 pytest `64 passed + 44 passed`、py_compile、guard、production health、API / worker rollout、production pod render / keyboard smoke | -| P0-9 | MCP evidence -> PlayBook 修復候選產生 | D6 `90%`;Approvals ledger `100%`;Runs ledger incident focus desktop / mobile `100%`;blocker 語意正確性 `86%`;apply candidate 語意 `100%`;Alerts ledger desktop / mobile `100%` | 已補 webhook fallback 先建立 incident,再收 MCP evidence、查 approved PlayBook、檢查 trust / command safety、產生 medium approval candidate 與 verifier plan;D1 追加通用兜底 PlayBook / 診斷型命令不可誤當修復、阻擋理由繁中化;D2 在缺候選時產生 `repair_candidate_draft_package_v1`、`playbook_draft_required`、下一步與必填欄位;D3 新增 `awooop_repair_candidate_draft_work_item_v1` read-only projection 與 Telegram `工作項目` deeplink;D4 讓 AwoooP Work Items 詳細呈現 PlayBook 草案處置板、必填欄位、阻擋原因、下一步、Runs / 審批連結;D5 新增 `repair_candidate_coverage_gap_v1`,讓 blocked result 帶出 coverage key、target kind、blocking stage、必收 MCP evidence refs、PlayBook template fields 與 runtime 0 / false 邊界;D6 新增 PostgreSQL 慢查詢分類與 database target kind,`PostgreSQLSlowQueries` 不再混成 backup / escrow signal,postgres target 不再預填 K8s 重啟,改成 `database_slow_query_owner_review`、read-only DB evidence、rollback / verifier 與禁止 SQL terminate / DB restart / migration / reindex;Approvals / Runs / Alerts 已新增 `資產沉澱` 欄或焦點矩陣,Runs 事故焦點可直接看到 Work Item、dry-run、apply candidate、verifier、下一步資產 ID 與 KM / PlayBook / 腳本 / 排程 / Verifier 的完成 / 卡點;status-chain blocker 已修正為缺失語意,未完成 auto repair / verifier / learning 不再顯示成已紀錄;下一步要用真實告警驗證 approval -> execution -> verifier -> KM / PlayBook 回寫 | D6 本地 `82 passed`、py_compile、Telegram readability guard、source-control owner response guard、security mirror progress guard 通過。Approvals code `dafe5342` 已隨 deploy marker `42c08ece` 正式站 desktop / mobile smoke;Runs ledger code `11c2b5d4` 已隨 deploy marker `8b6ab87c` 正式站 desktop DOM smoke;Runs focus asset code `8514d936` 已隨 deploy marker `f1a40ae4` 正式站 desktop / mobile smoke;blocker normalization code `4c85db18` 已隨 deploy marker `a592f754` 正式站 API / Runs desktop / mobile smoke;apply candidate code `5ce6fc49` 與 UI follow-up `ef3ee4c4` 已隨 deploy markers `dac6a1de` / `f529030f` 正式站 API / Runs desktop / mobile smoke,`operator_outcome.state=apply_candidate_owner_review_ready`、`completion=dry_run_passed_apply_candidate_ready`、`repair_status=not_executed`、Work Item / apply candidate / verifier ID 可見,舊 raw action / dry-run-only / `*_recorded` 文案未外露;Alerts code `10cd6167` 已隨 deploy marker `d36d764a` 正式站 desktop / mobile DOM smoke;status-chain 後續仍必須看到 tool call、PlayBook id、risk gate、repair candidate、verifier plan;本輪 apply candidate 語意本地 `173 passed`、py_compile、i18n mirror、web typecheck、owner response guard、progress guard 通過 | +| P0-9 | MCP evidence -> PlayBook 修復候選產生 | D6 `92%`;Approvals ledger `100%`;Runs ledger incident focus desktop / mobile `100%`;blocker 語意正確性 `88%`;apply candidate 語意 `100%`;apply gate 閉環準備度 `100%`;Alerts ledger desktop / mobile `100%` | 已補 webhook fallback 先建立 incident,再收 MCP evidence、查 approved PlayBook、檢查 trust / command safety、產生 medium approval candidate 與 verifier plan;D1 追加通用兜底 PlayBook / 診斷型命令不可誤當修復、阻擋理由繁中化;D2 在缺候選時產生 `repair_candidate_draft_package_v1`、`playbook_draft_required`、下一步與必填欄位;D3 新增 `awooop_repair_candidate_draft_work_item_v1` read-only projection 與 Telegram `工作項目` deeplink;D4 讓 AwoooP Work Items 詳細呈現 PlayBook 草案處置板、必填欄位、阻擋原因、下一步、Runs / 審批連結;D5 新增 `repair_candidate_coverage_gap_v1`,讓 blocked result 帶出 coverage key、target kind、blocking stage、必收 MCP evidence refs、PlayBook template fields 與 runtime 0 / false 邊界;D6 新增 PostgreSQL 慢查詢分類與 database target kind,`PostgreSQLSlowQueries` 不再混成 backup / escrow signal,postgres target 不再預填 K8s 重啟,改成 `database_slow_query_owner_review`、read-only DB evidence、rollback / verifier 與禁止 SQL terminate / DB restart / migration / reindex;Approvals / Runs / Alerts 已新增 `資產沉澱` 欄或焦點矩陣,Runs / Work Items 事故焦點可直接看到 Work Item、dry-run、apply candidate、verifier、下一步資產 ID 與 KM / PlayBook / 腳本 / 排程 / Verifier 的完成 / 卡點;本輪新增 apply gate 閉環準備度,讓 check-mode-only 事件直接顯示 MCP、乾跑、候選、owner 放行、受控執行、post-apply verifier、KM 回寫與 PlayBook trust 八格狀態;下一步要用真實告警驗證 owner release -> controlled execution -> verifier -> KM / PlayBook 回寫 | D6 本地 `82 passed`、py_compile、Telegram readability guard、source-control owner response guard、security mirror progress guard 通過。Approvals code `dafe5342` 已隨 deploy marker `42c08ece` 正式站 desktop / mobile smoke;Runs ledger code `11c2b5d4` 已隨 deploy marker `8b6ab87c` 正式站 desktop DOM smoke;Runs focus asset code `8514d936` 已隨 deploy marker `f1a40ae4` 正式站 desktop / mobile smoke;blocker normalization code `4c85db18` 已隨 deploy marker `a592f754` 正式站 API / Runs desktop / mobile smoke;apply candidate code `5ce6fc49` 與 UI follow-up `ef3ee4c4` 已隨 deploy markers `dac6a1de` / `f529030f` 正式站 API / Runs desktop / mobile smoke;apply gate closure code `d798d09e` 已隨 deploy marker `e0fbedfd` 正式站 API / Work Items desktop / mobile smoke,`closure_schema=awooop_apply_gate_closure_readiness_v1`、`3/8 ready`、`blocked=5`、runtime / writes `false`、horizontal overflow `0`、危險執行控制 `0`;Alerts code `10cd6167` 已隨 deploy marker `d36d764a` 正式站 desktop / mobile DOM smoke;status-chain 後續仍必須看到 tool call、PlayBook id、risk gate、repair candidate、verifier plan 與 closure gate | | P0-9a | 日報 / 週報 / 月報資料鏈路 truthfulness | 94% | Weekly report 已修正 Git 活動讀取失敗時假性全 0 的問題;Reports 頁已前移資料可信度、資料源健康矩陣、日週月報 cadence、告警到 AI 接手漏斗、自動化資產沉澱與 Agent 工作量;P2-109 已建立 `agent-report-source-health` / no-send preview read model;P2-110 已讓 weekly preview API 回傳 formatted Telegram HTML、source `2/5`、三個 source gap 與 KM / PlayBook / 腳本 / 排程 / Verifier 沉澱;P2-110B 已讓 daily / monthly preview API 也回傳同一 source health、formatted preview 與 no-send 邊界;P2-110C 已新增 SRE digest preview;P2-110D 已讓 source gap 具備 PlayBook 草案、Verifier 計畫、腳本 readback、排程 no-send 與 owner review 處置板;P2-110E 已把同一批 source gap 接進 AwoooP Work Items owner review;P2-410 production API 已把 report gap 與 SRE digest no-send preview 轉成 audit event template 與 verifier receipt gate;下一步是 P2-410 governance projection 與 P2-411 Event Bus | Feature commit `ac325852`、Reports commits `6d4fa7bf` / `5e849225` / `63a75f77`、P2-109 commit `27d9f394`、P2-110 commits `a46e31ba` / `48e06c6a`、P2-110B commit `77fe2a85`、P2-110C commit `7e03b923`、P2-110D commit `6ab640e4`、P2-110E commit `ca04b49d`、P2-410 commit `e13f716c`、deploy markers `a4b30964` / `4d4c6da3` / `cd1c4407` / `d8862123` / `c922bc1a` / `3057342a` / `29fe6ec8` / `c7c0d874` / `049dc0a8` / `c33dd9a6` / `38e60192`;production `/api/v1/agents/agent-report-source-health`、`/api/v1/stats/daily/preview`、`/api/v1/stats/weekly/preview`、`/api/v1/stats/monthly/preview`、`/api/v1/stats/sre-digest/preview`、`/api/v1/agents/agent-action-audit-ledger`、`/zh-TW/reports` desktop / mobile、`/zh-TW/awooop/work-items` desktop / mobile readback OK;未 live send Telegram、未改排程、未開 runtime gate | | P0-10 | 高價值配置 Gate path coverage、工作樹 preflight、owner packet / coverage snapshot 補強 | 100% | 已將 `k8s/nginx/**`、`scripts/ops/**/*cert*`、`scripts/ops/**/*tls*` 納入 `high-value-config-change-gate.py`,讓 Nginx public gateway 與 DNS / TLS / certbot 既有路徑命中 P0 / C0;預設模式可讀取 staged / unstaged / untracked,避免本地 preflight 漏掉未提交配置;owner packet 與 coverage snapshot 已同步最新 pattern;owner evidence 仍未提供,runtime execution 仍 false | Gate sample:`changed_files=6 matched=6 categories=3 c0=2 c1=0`;工作樹 smoke:臨時 `k8s/nginx/*` 檔命中 C0;owner packet:`packets=3 c0=2 runtime_gate=0`;coverage:`categories=14 c0=8 avg=67 runtime_gate=0`;`py_compile`、snapshot JSON parse、progress guard、owner response guard、doc secret sanity、diff check | | P0-11 | 高價值配置 Owner Packet 前台同步 | local 100%;production 100% | `/zh-TW/iwooos` 與 `/zh-TW/awooop` 已同步 latest owner packet snapshot,顯示 `packet=3 / c0=2`、Nginx public gateway、DNS / TLS / certbot 與 security tooling 影響範圍;request sent、received、accepted、runtime gate 與 action buttons 仍全部為 `0` | Feature commit `e999c16b`、deploy marker `16c6b983`、Gitea code-review `2973` / CD `2972` success;本地與正式 desktop / mobile / in-app browser smoke:IwoooS 與 AwoooP 均 HTTP `200`、必要文字與 boundary keys 可見、水平溢位 `0`、卡片內操作控制 `0`、危險連結 `0`、工作溝通片語命中 `0`;headline 不提高 |