From d98261e44fd3e65de5a777bf11a777a536d4abb4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 25 Jun 2026 19:54:32 +0800 Subject: [PATCH] docs(logbook): record Approvals decision rail rollout [skip ci] --- docs/LOGBOOK.md | 42 +++++++++++++++++++ ...6-25-awoooi-navigation-ia-consolidation.md | 21 ++++++++-- ...026-06-25-awoooi-product-uiux-inventory.md | 31 ++++++++++---- 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index f83613a9..f5a4eedb 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,45 @@ +## 2026-06-25|AwoooP Approvals 審批決策 handoff rail 正式驗證 + +**背景**:使用者指出批准後仍常卡在 `learning_recorded`、`execution_failed`、`REPAIR_CANDIDATE_MISSING` 或 `manual_required_no_action`,頁面又需要從大量欄位和文字中自行判斷下一步。本輪先把 Approvals 首屏改成審批決策 handoff rail,讓 operator 先看阻塞、證據、接手包與安全閘門,再下鑽表格;真正自動修復閉環仍需下一輪修後端 repair candidate generation。 + +**完成**: +- `/zh-TW/awooop/approvals` 新增 `awooop-approvals-decision-rail`。 +- Rail 顯示 `請求 / 證據 / 決策 / 接手 / 驗證` 流程。 +- 四張判讀卡固定顯示:`阻塞與人工閘門`、`AI 證據可用度`、`接手包與工作項`、`安全閘門仍關閉`。 +- 讀取現有 `awooop_status_chain` 與 `remediation_summary`,判斷 needs human、execution failed / degraded / timeout、learning_recorded、Gate 5 projection、MCP observed、read-only dry-run、no evidence 與逾時。 +- 下鑽入口只導向 Approvals detail、Runs、Work Items 與 Governance,不新增任何 runtime 動作入口。 + +**Commit / Deploy**: +- Code commit:`01a8e9d3 feat(web): add approvals decision handoff rail`。 +- 直接 deploy marker:`cc835df5 chore(cd): deploy 01a8e9d [skip ci]`。 +- 最新 production deploy marker:`66be2576 chore(cd): deploy bfc78d3 [skip ci]`,此部署包含 `01a8e9d3` 與後續 P0 convergence 驗證。 + +**驗證**: +- 本地:`python3 -m json.tool` for `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` 通過。 +- 本地:i18n key / placeholder mirror `I18N_APPROVAL_DECISION_RAIL_OK leaves=13493 mirrorDiff=0 placeholderDiff=0`。 +- 本地:`git diff --check` 通過。 +- 本地:`pnpm --filter @awoooi/web typecheck` 通過。 +- 本地:`source-control-owner-response-guard.py` 與 `security-mirror-progress-guard.py` 通過。 +- 本地 browser:`http://127.0.0.1:3131/zh-TW/awooop/approvals?project_id=awoooi&_v=approvals-rail-local-desktop` 與 mobile smoke 通過;rail visible、flow/cards/boundary 可見、`horizontalOverflow=false`、rail overflow `0`、dangerous direct action labels `[]`。 +- Production desktop:`https://awoooi.wooo.work/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-desktop`。 +- Production mobile:`https://awoooi.wooo.work/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-mobile`。 +- Production desktop:`clientWidth=1434`、`scrollWidth=1434`、`horizontalOverflow=false`、rail overflow `0`、dangerous direct action labels `[]`、內部工作用語外露 `[]`。 +- Production mobile:`clientWidth=384`、`scrollWidth=384`、`horizontalOverflow=false`、rail overflow `0`、dangerous direct action labels `[]`、內部工作用語外露 `[]`。 +- Production API readback:`/api/v1/platform/approvals?project_id=awoooi`、`/api/v1/approvals/pending?project_id=awoooi`、`/api/v1/health` 均回 `200`。 +- `無法載入審批資料` 只存在 Next messages script;visible error count `0`。 +- 截圖:`/tmp/awoooi-approvals-rail-prod-desktop-66be2576.png`、`/tmp/awoooi-approvals-rail-prod-mobile-66be2576.png`。 + +**完成度同步**: +- AwoooP Approvals 可判讀性:`58% -> 66%`。 +- AwoooP 核心頁產品化:`62% -> 65%`。 +- 全站 UI/UX 專業化:`53% -> 55%`。 +- 真正 AI 自動化 runtime 閉環:仍維持 `58-62%`。 +- Production autonomous repair verified success:仍約 `3-5%`,不得因 UI rail 上線而上修。 + +**邊界**:本輪只做 Approvals read-only decision handoff 與 operator 導覽;沒有發 Telegram、沒有套用 PlayBook、沒有執行 Ansible、沒有重啟服務、沒有改 endpoint、沒有切換 provider、沒有讀 secret、沒有新增部署 / 掃描 / 修復 / 刪除 / 重啟 / 執行按鈕,也沒有提高 owner response、runtime gate 或 autonomous repair success。 + +**下一步 P0**:針對 Telegram 最新 `node-exporter-188` 類 `NO_ACTION - REPAIR_CANDIDATE_MISSING`,修後端 repair candidate generation:診斷 PlayBook 必須保留為 MCP evidence collector,另產生 service-specific repair candidate、rollback、verifier、owner review 與 KM / PlayBook / script / schedule 資產 ID,否則 AI Agent 仍會被誤認為只會把問題丟回人工。 + ## 2026-06-25|IwoooS P0 資安事件收斂 Gate 正式部署驗證 **背景**:前一筆 IwoooS P0 Gate 已完成 source-side,但尚未部署與 production readback。本輪補上不含 `[skip ci]` 的前端驗證錨點 commit 觸發 CD,並完成正式站桌機 / 手機只讀驗證。 diff --git a/docs/workplans/2026-06-25-awoooi-navigation-ia-consolidation.md b/docs/workplans/2026-06-25-awoooi-navigation-ia-consolidation.md index 0cf315bd..c2582809 100644 --- a/docs/workplans/2026-06-25-awoooi-navigation-ia-consolidation.md +++ b/docs/workplans/2026-06-25-awoooi-navigation-ia-consolidation.md @@ -1,7 +1,7 @@ # AWOOOI 導航與頁面資訊架構整合決策表 > 日期:2026-06-25(台北時間) -> 基線:`gitea/main=2a9e816a`(deploy `aa70835c`,包含 AwoooP Work Items SOP rail) +> 基線:`gitea/main=5895bd18`(deploy `66be2576`,包含 AwoooP Approvals decision handoff rail 與後續 P0 convergence 驗證) > 目標:把左側導航、AwoooP 二層菜單、頁內 tabs 與重複頁面整合成專業 AI 營運產品資訊架構。 > 邊界:本輪先調整導航曝光與 AwoooP contextual rail;不刪除路由、不改 API、不開 runtime gate。 @@ -32,7 +32,7 @@ | `/awooop` | 保留為 AwoooP command overview | 不刪 | 改成 Situation Strip + Agent Flow + Risk Matrix + Action Rail。 | | `/awooop/work-items` | 保留下鑽 | 不刪 | 改成 operator queue;manual item 必須有 SOP rail。 | | `/awooop/runs` | 保留下鑽 | 不刪 | 改成 execution timeline;raw evidence 進 drawer。 | -| `/awooop/approvals` | 保留下鑽 | 不刪 | 改成 decision tree;stuck approval 要顯示 owner / next action。 | +| `/awooop/approvals` | 保留下鑽 | 不刪 | decision handoff rail 已上線;下一步補 stale approval drawer、owner / rollback / verifier 細節與 legacy alias parity。 | | `/awooop/contracts` | 保留下鑽 | 不刪 | 合約與 gate 改為 matrix,不再純表格。 | | `/awooop/tenants` | 保留並升級 | 不刪 | 變成全產品 coverage heatmap + topology;吸收各產品納管狀態。 | | `/alerts` | 降級為 AwoooP / Observability 下鑽 | 等 AwoooP incident center 完成後 redirect | 告警不再單獨成主頁;與 incident timeline 串接。 | @@ -66,6 +66,7 @@ | `/awooop/tenants` 新增產品納管作戰圖 | 正式站完成 | | `/awooop` 新增 AI 自動化真相帶 | 正式站完成 | | `/awooop/work-items` 新增人工卡點 SOP rail | 正式站完成 | +| `/awooop/approvals` 新增審批決策 handoff rail | 正式站完成 | ## 4.1 2026-06-25 Tenants 作戰圖切片 @@ -116,11 +117,25 @@ | Layout | desktop `clientWidth=1434 scrollWidth=1434`;mobile `clientWidth=384 scrollWidth=384`;`horizontalOverflow=false`;rail overflow `0` | | 邊界 | read-only SOP / operator handoff;不新增部署、掃描、修復、刪除、重啟、Telegram send、PlayBook apply、Ansible apply 或 runtime execution | +## 4.5 2026-06-25 Approvals decision handoff rail + +| 項目 | 結果 | +|---|---| +| Code commit | `01a8e9d3 feat(web): add approvals decision handoff rail` | +| Deploy marker | `66be2576 chore(cd): deploy bfc78d3 [skip ci]`,包含 `01a8e9d3` | +| Production desktop | `/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-desktop` | +| Production mobile | `/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-mobile` | +| 首屏資訊 | 審批決策 Rail、請求 / 證據 / 決策 / 接手 / 驗證流程、阻塞與人工閘門、AI 證據可用度、接手包與工作項、安全閘門仍關閉 | +| Layout | desktop `clientWidth=1434 scrollWidth=1434`;mobile `clientWidth=384 scrollWidth=384`;`horizontalOverflow=false`;rail overflow `0` | +| Error 判讀 | API `/platform/approvals`、`/approvals/pending`、`/health` 均 `200`;`無法載入審批資料` 只存在 Next messages script,visible error count `0` | +| 邊界 | read-only decision handoff;不新增部署、掃描、修復、刪除、重啟、Telegram send、PlayBook apply、Ansible apply、provider switch 或 runtime execution | + ## 5. 下一輪必做 | 優先級 | 工作 | 驗收 | |---|---|---| -| P0 | AwoooP Runs / Work Items / Approvals 共用 Situation Strip / Agent Flow / Action Rail | Overview 與 Work Items 第一刀已完成;下一步讓 Runs / Approvals 也能一眼看懂卡點、owner 與下一步 | +| P0 | AwoooP Runs 共用 Situation Strip / Agent Flow / Action Rail | Overview、Work Items、Approvals 第一刀已完成;下一步讓 Runs 也能一眼看懂卡點、owner、補救試跑、verifier 與下一步 | +| P0 | Repair candidate missing 後端閉環 | `NO_ACTION - REPAIR_CANDIDATE_MISSING` 必須能產生 service-specific repair candidate、rollback、verifier、owner 與資產 ID,不再只丟回人工 | | P0 | Tenants 舊表格 responsive 化 | route / source 已完成卡片化;下一步處理租戶資料表 drawer 與產品 topology drilldown | | P0 | Observability topology | 主機 / 服務 / 網站 / 告警 / SLO 關聯可視化 | | P0 | Knowledge / Automation trust ledger | KM、PlayBook、腳本、排程、dry-run、verifier 有統一沉澱面板 | diff --git a/docs/workplans/2026-06-25-awoooi-product-uiux-inventory.md b/docs/workplans/2026-06-25-awoooi-product-uiux-inventory.md index c7d02f2e..36c09be9 100644 --- a/docs/workplans/2026-06-25-awoooi-product-uiux-inventory.md +++ b/docs/workplans/2026-06-25-awoooi-product-uiux-inventory.md @@ -1,7 +1,7 @@ # AWOOOI 全面工作盤點與產品 UI/UX 專業化推進清單 > 日期:2026-06-25(台北時間) -> 基線:`gitea/main=2a9e816a`(deploy `aa70835c`,包含 AwoooP Work Items SOP rail) +> 基線:`gitea/main=5895bd18`(deploy `66be2576`,包含 AwoooP Approvals decision handoff rail 與後續 P0 convergence 驗證) > 定位:回應「做了很多但使用者看不到成果」的產品真相盤點、頁面優化計畫與 AI 自動化落地路線。 > 邊界:本文件只建立盤點與推進清單;不開 runtime gate、不 SSH、不 active scan、不讀 secret、不發 Telegram、不修改主機或 workflow。 @@ -16,7 +16,7 @@ | AI Agent 只讀治理 / API / gate 契約 | `92%` | 已有很多 snapshot、API、治理頁與邊界顯示,但主要仍是「看得到、不能動」。 | | 完整 AI 自動化產品閉環 | 約 `58-62%` | Sensor / Evidence / Classification / Gate / UI 有雛形;execution、verifier、KM / PlayBook writeback、Telegram live receipt 仍不足。 | | 真正 production autonomous repair | 約 `3-5%` verified success | 多數告警仍落在 manual review、repair candidate missing、general fallback 或 no-action。 | -| 全站專業 UI/UX 產品化 | 約 `53%` | Google Ads 式 shell、主導航整併、Tenants 作戰圖 / mobile responsive 資產卡、AwoooP 首屏 AI 自動化真相帶與 Work Items operator SOP rail 已上線;Runs / Approvals / Observability / Knowledge Base 仍需大幅圖表化與重複頁整併。 | +| 全站專業 UI/UX 產品化 | 約 `55%` | Google Ads 式 shell、主導航整併、Tenants 作戰圖 / mobile responsive 資產卡、AwoooP 首屏 AI 自動化真相帶、Work Items operator SOP rail 與 Approvals decision handoff rail 已上線;Runs / Observability / Knowledge Base 仍需大幅圖表化與重複頁整併。 | | 全產品 / 網站 / 專案納管 | read-only `65%`,runtime `0%` | Tenants API 已列 `16` 個產品面、`31` 條公開路由、`10` 個候選 repo;owner accepted / runtime gate / action buttons 仍全為 `0`。 | 因此下一階段不能再以「新增更多文字卡」為主要進度。必須改成: @@ -65,7 +65,7 @@ | 工作域 | 目前成果 | 缺口 | |---|---|---| -| Incidents / Runs / Approvals / Work Items | 狀態鏈、MCP evidence、repair candidate draft、approval gate、learning record 等資料已可見;Work Items 已新增人工卡點與自動化缺口 SOP rail,能把阻塞、候選、沉澱資產與負責人接手集中判讀 | Runs / Approvals 仍需同樣的 SOP rail;每個 blocked lane 後端仍要補 service-specific PlayBook、safe command route、verifier、rollback 與回寫狀態。 | +| Incidents / Runs / Approvals / Work Items | 狀態鏈、MCP evidence、repair candidate draft、approval gate、learning record 等資料已可見;Work Items 已新增人工卡點與自動化缺口 SOP rail,Approvals 已新增 decision handoff rail,能把阻塞、證據、接手包與安全閘門集中判讀 | Runs 仍需同樣的 SOP rail;每個 blocked lane 後端仍要補 service-specific PlayBook、safe command route、verifier、rollback 與回寫狀態。 | | Telegram 告警 | 已有 no-send / failure-only / AwoooI SRE 戰情室契約與紅線;2026-06-25 已修 `PostgreSQLSlowQueries` 被 backup / escrow token 誤分類的問題 | live send、receipt production write、Bot API、Gateway queue 多數仍 `0`;週報 / 日報出現全 0 代表資料源或報表邏輯未變成有效營運訊號。 | | PlayBook / Ansible / Repair | PlayBook trust、repair candidate、Ansible evidence 已在多處顯示;database target 不再預填 K8s restart,改為 read-only DB evidence + owner review | 多數仍只「建議」或「草案」,缺 service-specific playbook、safe command route、verifier 與 rollback receipt;DB 類事件仍需真實 production formatter / Work Items / Runs readback 驗證。 | | KM / learning | KM / PlayBook / writeback gate 被多次定義 | 使用者在頁面與 TG 看不到完整沉澱結果;KM 頁資料鏈仍需修。 | @@ -151,6 +151,23 @@ Tenants 目前已讀到: 完成度同步:AwoooP Work Items 可判讀性 `84% -> 89%`;AwoooP 核心頁產品化 `59% -> 62%`;全站 UI/UX 專業化 `51% -> 53%`。 +### 2.5.3 AwoooP Approvals 審批決策 handoff rail + +2026-06-25 已完成 `/zh-TW/awooop/approvals` 首屏第一刀,將卡在 `learning_recorded`、`execution_failed`、`manual_required`、逾時、Gate 5 投影與 Legacy HITL 的批准,收斂成 operator 可判讀的 decision handoff rail。 + +| 項目 | 完成 | +|---|---| +| Code commit | `01a8e9d3 feat(web): add approvals decision handoff rail` | +| Deploy marker | `66be2576 chore(cd): deploy bfc78d3 [skip ci]`,包含 `01a8e9d3` | +| 顯示內容 | 審批決策 Rail、請求 / 證據 / 決策 / 接手 / 驗證流程、阻塞與人工閘門、AI 證據可用度、接手包與工作項、安全閘門仍關閉 | +| Production desktop | `/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-desktop` | +| Production mobile | `/zh-TW/awooop/approvals?project_id=awoooi&_v=66be2576-approvals-rail-prod-mobile` | +| Layout | desktop `clientWidth=1434 scrollWidth=1434`;mobile `clientWidth=384 scrollWidth=384`;`horizontalOverflow=false`;rail overflow `0` | +| Error 判讀 | `無法載入審批資料` 僅存在 Next messages script,visible error count `0`;production APIs `/platform/approvals`、`/approvals/pending`、`/health` 均回 `200` | +| 邊界 | 只讀審批判讀與安全導覽;不送 Telegram、不套用 PlayBook、不執行 Ansible、不重啟服務、不切換 provider、不新增部署 / 掃描 / 修復 / 刪除 / 重啟 / 執行按鈕,不提高 runtime gate | + +完成度同步:AwoooP Approvals 可判讀性 `58% -> 66%`;AwoooP 核心頁產品化 `62% -> 65%`;全站 UI/UX 專業化 `53% -> 55%`。 + ## 3. 頁面 UI/UX 現況盤點 2026-06-25 對正式站桌機 / mobile 抽查: @@ -160,7 +177,7 @@ Tenants 目前已讀到: | `/zh-TW/awooop` | Google Ads 式 shell 已存在,AwoooP 概覽與 AI 自動化真相帶可見 | 仍需把 Runs / Work Items / Approvals 的卡點與 owner SOP rail 串回同一首屏;後續要減少下方長文字卡 | P0 | | `/zh-TW/awooop/runs` | Runs 狀態鏈與 provider evidence 可見 | mobile 有長字串、內部 provider URL / key 類資訊外露風險;使用者無法一眼分辨「AI 已做什麼、卡哪裡、下一步誰做」 | P0 | | `/zh-TW/awooop/work-items` | 工作項目、repair candidate 與 operator SOP rail 可見;已能一眼看到人工卡點、候選品質、沉澱資產與負責人接手 | 底部長表格仍需 responsive data grid / drawer 化;每筆 item 還要補更細的 owner、rollback、verifier receipt 與狀態回寫 | P0 | -| `/zh-TW/awooop/approvals` | approval 狀態鏈與 AI evidence 可見 | 卡在 `learning_recorded` / `execution_failed` 時沒有清楚的 next action / owner / rollback / verifier decision tree | P0 | +| `/zh-TW/awooop/approvals` | approval 狀態鏈、AI evidence 與審批決策 handoff rail 可見;已能一眼看到阻塞、證據、接手包與安全閘門 | 表格仍需 drawer 化;後端仍要把 `REPAIR_CANDIDATE_MISSING` 轉成可審核 repair candidate、rollback、verifier 與資產 ID | P0 | | `/zh-TW/awooop/tenants` | 16 產品、31 路由、10 repo 資產可讀;作戰圖與 route/source 手機卡片已上線 | 下一步補產品拓樸 drilldown 與租戶資料表 drawer | P0 | | `/zh-TW/observability` | 有監控面板雛形 | 出現 error / 0% / -- 類狀態,沒有把主機、服務、工具、告警、SLO 串成拓樸與 blast radius | P0 | | `/zh-TW/knowledge-base` | KB 頁存在 | 資訊讀取看起來像全部不見或全 0;需區分 loading、empty、error、stale、blocked、owner required | P0 | @@ -262,7 +279,7 @@ AWOOOI 缺的是: |---|---|---| | P0-UX-001 | 凍結目前資訊架構,不再往頁面塞新文字卡 | 新增 UI 變更需指定進 Situation / Flow / Matrix / Topology / Evidence / Action 其中一層 | | P0-UX-002 | AwoooP Runs 移除 raw internal provider URL / key 顯示 | 正式 DOM 不出現 LAN IP / raw provider endpoint;改顯 provider alias、owner、route order、fallback reason | -| P0-UX-003 | Work Items / Approvals 加人工處置 SOP rail | Work Items 首屏 SOP rail 已上線;下一步 Approvals 與 Runs 要同樣顯示 owner、why blocked、safe next action、evidence missing、rollback / verifier status | +| P0-UX-003 | Work Items / Approvals / Runs 加人工處置 SOP rail | Work Items 與 Approvals 首屏 rail 已上線;下一步 Runs 要同樣顯示 owner、why blocked、safe next action、evidence missing、rollback / verifier status | | P0-UX-004 | Tenants 改成全產品 Coverage Heatmap + Topology | 第一刀已上線;下一步移除舊寬表格依賴,改成 responsive cards / drawer | | P0-UX-005 | Observability 修 `0% / -- / error` 語義 | 所有 0 要分成 no data、not connected、blocked、healthy zero、stale、error | | P0-UX-006 | Knowledge Base 修讀取狀態與沉澱總帳 | 顯示 KM / PlayBook / scripts / schedules / owner / stale / trust score,不再像資料消失 | @@ -344,9 +361,9 @@ AWOOOI 缺的是: | 項目 | 基準完成度 | |---|---:| -| 全站 UI/UX 專業化 | `53%` | +| 全站 UI/UX 專業化 | `55%` | | 導航 / IA 整合 | `64%` | -| AwoooP 操作台產品化 | `62%` | +| AwoooP 操作台產品化 | `65%` | | Tenants 全產品資產中心 | `68%` | | Observability 專業拓樸 / 告警中心 | `38%` | | Knowledge / PlayBook 沉澱可視化 | `34%` |