From 03e5557f9198ceb680725eb455b69d6416af1cbb Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 25 Jun 2026 11:43:21 +0800 Subject: [PATCH] feat(web): consolidate navigation IA shell --- ...6-25-awoooi-navigation-ia-consolidation.md | 121 +----------------- 1 file changed, 4 insertions(+), 117 deletions(-) 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 8e9fc7cf..93c36a2f 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=5895bd18`(deploy `66be2576`,包含 AwoooP Approvals decision handoff rail 與後續 P0 convergence 驗證) +> 基線:`gitea/main=3466fa995944b25ff627046c40f9121a449538f3` > 目標:把左側導航、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 handoff rail 已上線;下一步補 stale approval drawer、owner / rollback / verifier 細節與 legacy alias parity。 | +| `/awooop/approvals` | 保留下鑽 | 不刪 | 改成 decision tree;stuck approval 要顯示 owner / next action。 | | `/awooop/contracts` | 保留下鑽 | 不刪 | 合約與 gate 改為 matrix,不再純表格。 | | `/awooop/tenants` | 保留並升級 | 不刪 | 變成全產品 coverage heatmap + topology;吸收各產品納管狀態。 | | `/alerts` | 降級為 AwoooP / Observability 下鑽 | 等 AwoooP incident center 完成後 redirect | 告警不再單獨成主頁;與 incident timeline 串接。 | @@ -63,126 +63,13 @@ | Command Palette 空查詢只顯示主工作區與快速動作 | 完成 | | `/knowledge` sidebar 入口改指 `/knowledge-base` | 完成 | | 子頁 deep link 保留 | 完成 | -| `/awooop/tenants` 新增產品納管作戰圖 | 正式站完成 | -| `/awooop` 新增 AI 自動化真相帶 | 正式站完成 | -| `/awooop/work-items` 新增人工卡點 SOP rail | 正式站完成 | -| `/awooop/approvals` 新增審批決策 handoff rail | 正式站完成 | - -## 4.1 2026-06-25 Tenants 作戰圖切片 - -| 項目 | 結果 | -|---|---| -| Code commit | `c07fefbe feat(web): add product command map to tenants` | -| Deploy marker | `3b552100 chore(cd): deploy c07fefb [skip ci]` | -| Production desktop | `/zh-TW/awooop/tenants?_v=3b552100-tenants-command-map-prod-desktop` | -| Production mobile | `/zh-TW/awooop/tenants?_v=3b552100-tenants-command-map-prod-mobile` | -| API truth | tenant `2`、product surfaces `16`、public routes `31`、candidate repos `10`、in-scope repos `9`、owner accepted `0`、執行閘門 `0`、操作入口 `0` | -| UI 驗證 | 桌機 / 手機都可見 `產品納管作戰圖`、`所有網站、專案、產品的同一張地圖`、`產品納管熱力圖`、`可觀測性`、`知識與自動化`、`推版審查` | -| Layout | 桌機 `scrollWidth=1434 clientWidth=1434`;手機 `scrollWidth=384 clientWidth=384`;作戰圖內溢出 `0` | -| 邊界 | 不新增部署、掃描、修復、刪除、重啟或其他危險操作入口;不提升 owner response、執行閘門或 runtime 授權 | - -## 4.2 2026-06-25 Tenants 資產表格響應式切片 - -| 項目 | 結果 | -|---|---| -| Code commit | `d52583d9 feat(web): make tenants asset tables responsive` | -| Deploy marker | `7f44bc3b chore(cd): deploy 20c2c81 [skip ci]`,包含 `d52583d9` | -| Production desktop | `/zh-TW/awooop/tenants?_v=7f44bc3b-tenants-responsive-prod-desktop` | -| Production mobile | `/zh-TW/awooop/tenants?_v=7f44bc3b-tenants-responsive-prod-mobile` | -| Mobile UI | `網站與服務入口`、`脫敏原始碼範圍` 改為卡片視圖;route/source 寬表格在手機隱藏 | -| Layout | 手機 `clientWidth=384`、`scrollWidth=384`、`horizontalOverflow=false`、`overflowing=[]` | -| 邊界 | 不新增任何部署、掃描、修復、刪除、重啟或 runtime execution 入口;仍是 read-only 資產台帳 | - -## 4.3 2026-06-25 AwoooP 首屏 AI 自動化真相帶 - -| 項目 | 結果 | -|---|---| -| Code commit | `092bd376 feat(web): add AwoooP automation truth rail` | -| Deploy marker | `291b6c0c chore(cd): deploy 092bd37 [skip ci]` | -| Production desktop | `/zh-TW/awooop?_v=291b6c0c-truth-rail-prod-desktop` | -| Production mobile | `/zh-TW/awooop?_v=291b6c0c-truth-rail-prod-mobile` | -| 首屏資訊 | `AI 自動化真相`、閉環宣稱、主要卡點、下一步焦點、Runs / 工作項 / 批准下鑽 | -| Layout | desktop `clientWidth=1274 scrollWidth=1274`;mobile `clientWidth=384 scrollWidth=384`;`horizontalOverflow=false` | -| 邊界 | 下鑽是 read-only / operator console 導覽;不新增部署、掃描、修復、刪除、重啟、Telegram send 或 runtime execution | - -## 4.4 2026-06-25 Work Items operator SOP rail - -| 項目 | 結果 | -|---|---| -| Code commit | `aa70835c feat(web): add Work Items operator SOP rail` | -| Deploy marker | `2a9e816a chore(cd): deploy aa70835 [skip ci]` | -| Production desktop | `/zh-TW/awooop/work-items?project_id=awoooi&_v=2a9e816a-work-items-sop-prod-desktop` | -| Production mobile | `/zh-TW/awooop/work-items?project_id=awoooi&_v=2a9e816a-work-items-sop-prod-mobile` | -| 首屏資訊 | 一眼判讀、驗證率、runtime gate、收件 / 證據 / 候選 / 接手 / 驗證流程、四張操作判讀卡 | -| 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 | - -## 4.6 2026-06-25 Repair Candidate Draft Ready owner review 狀態模型 - -| 項目 | 結果 | -|---|---| -| 核心修正 | `node-exporter` / host-service 類 prefilled draft 不再被誤標為 `REPAIR_CANDIDATE_MISSING` | -| 狀態 | `repair_candidate_status=draft_ready_for_owner_review`、`repair_candidate_draft_ready=true` | -| Webhook | `DRAFT_READY - REPAIR_CANDIDATE_OWNER_REVIEW_REQUIRED`,仍是非執行 approval | -| Telegram | 顯示 `repair_candidate_draft_ready_owner_review` 與 `Owner review 處置包` | -| Callback | `ApprovedForOwnerReviewHandoff`、`manual_handoff_kind=repair_candidate_owner_review` | -| Tests | `py_compile` 通過;targeted API tests `21 passed` | -| 邊界 | 不執行主機命令、不發 Telegram、不套用 PlayBook、不跑 Ansible、不開 runtime gate;只是讓 owner review 草案成為可追蹤狀態 | - -## 4.7 2026-06-25 Runs recurrence Work Item 草案狀態 chip - -| 項目 | 結果 | -|---|---| -| UI | `/zh-TW/awooop/runs` recurrence 卡片新增 Work Item status chip | -| 新狀態 | `owner_review_ready`、`draft_ready`、`open`、`blocked`、`closed`、`none`、`unknown` | -| 判讀 | `owner_review_ready` 顯示為「草案待 owner review」,不再和「無修復記錄」混淆 | -| 驗證 | JSON parse、i18n mirror、web typecheck、diff check 通過 | -| 邊界 | 只讀狀態顯示;不新增執行、重啟、Telegram send 或 PlayBook apply 入口 | - -## 4.8 2026-06-25 Ansible check-mode 乾跑 truth-chain 修正 - -| 項目 | 結果 | -|---|---| -| 核心修正 | `INC-20260625-977E5F` 類 Ansible `check_mode` 乾跑不再被 AwoooP / Telegram 誤標為已執行修復 | -| 判定條件 | `check_mode_total>0`、`apply_total=0`、`applied=false`、`controlled_apply=false`、`auto_repair_execution_records=0` | -| 新狀態 | `ansible_check_mode_only`、`dry_run_only_owner_review_required` | -| 下一步 | `owner_review_apply_gate_or_create_verifier_plan` | -| 產品含義 | Runs / Approvals / Telegram 必須把「乾跑完成」與「修復已套用」分成不同階段;後續 Situation Strip 也要把 dry-run、apply、verifier、KM / PlayBook writeback 分層 | -| 驗證 | `py_compile` 通過;targeted API / Telegram tests `150 passed`;diff check 與 security guards 通過 | -| 正式站 | code `d7b3997b`、deploy marker `420b0b18`;`INC-20260625-977E5F` production API 讀回 `ansible_check_mode_only`、`dry_run_completed_no_apply`、`repair_status=not_executed`、`ansible_dry_run_only=true` | -| 邊界 | 不執行 Ansible apply、不新增主機命令、不發 Telegram、不開 runtime gate;本段只修 truth-chain 與 operator outcome 語意 | - -## 4.9 2026-06-25 Runs 資產 ledger 拆出乾跑 / 套用 - -| 項目 | 結果 | -|---|---| -| 核心修正 | `資產沉澱` 不再把 Ansible candidate、check-mode、apply 混成單一「腳本」完成數 | -| 新顯示 | `乾跑`、`套用`、`Verifier` 分開呈現 | -| 判讀 | `ansible_dry_run_only=true` 或 `check_mode_total>0 / apply_total=0` 時,乾跑 ready、套用 blocked / `未套用`、Verifier 顯示卡點 | -| IA 含義 | AwoooP 後續 Runs / Work Items / Approvals 必須共享 dry-run -> owner apply gate -> verifier -> KM / PlayBook writeback 的分層語意 | -| 驗證 | JSON parse、i18n leaf diff `0`、web typecheck、diff check 通過 | -| 邊界 | 不新增 action button、不觸發執行、不套用 PlayBook、不開 runtime gate;只是把狀態從長文字拆成可掃描的資產格 | ## 5. 下一輪必做 | 優先級 | 工作 | 驗收 | |---|---|---| -| P0 | AwoooP Runs 共用 Situation Strip / Agent Flow / Action Rail | Recurrence Work Item status chip、Ansible dry-run truth-chain 與資產 ledger 分層已完成;下一步補首屏 Situation Strip,讓 Runs 一眼看懂卡點、owner、dry-run、apply、verifier 與下一步 | -| P0 | Repair candidate draft readback 串接 | 後端已拆出 `draft_ready_for_owner_review` 與 `ansible_check_mode_only`;下一步 Work Items / KB 顯示草案 ID、owner、rollback、verifier、KM / PlayBook / script / schedule 資產狀態 | -| P0 | Tenants 舊表格 responsive 化 | route / source 已完成卡片化;下一步處理租戶資料表 drawer 與產品 topology drilldown | +| P0 | AwoooP Overview / Runs / Work Items / Approvals 共用 Situation Strip / Agent Flow / Action Rail | desktop / mobile 首屏能一眼看懂卡點與下一步 | +| P0 | Tenants coverage heatmap | 16 產品、31 routes、10 repos、owner / smoke / runtime gate 一張圖看懂 | | P0 | Observability topology | 主機 / 服務 / 網站 / 告警 / SLO 關聯可視化 | | P0 | Knowledge / Automation trust ledger | KM、PlayBook、腳本、排程、dry-run、verifier 有統一沉澱面板 | | P1 | 開始 redirect 舊頁 | 只有在父頁 `?tab=` parity 與 production smoke 通過後執行 |