From e51d2594e1ab0cdaed49056c3606ed809541b604 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 26 Jun 2026 18:24:29 +0800 Subject: [PATCH] fix(web): align agent autonomy copy --- apps/web/messages/en.json | 34 +++++++++++++++++----------------- apps/web/messages/zh-TW.json | 34 +++++++++++++++++----------------- docs/LOGBOOK.md | 22 ++++++++++++++++++++++ 3 files changed, 56 insertions(+), 34 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 63f6485e..94e719fb 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -273,8 +273,8 @@ "detail": "驗證 marker、路由、回滾與 verifier receipt。" }, "ownerGate": { - "title": "Owner Gate", - "detail": "高風險進人工接受;結果回寫 KM / PlayBook。" + "title": "受控執行 Gate", + "detail": "低 / 中 / 高風險命中 allowlist + check-mode 後進 controlled apply;結果回寫 KM / PlayBook。" } } }, @@ -993,9 +993,9 @@ "nextActionReady": "runtime 已可跑 check-mode;下一步補齊更多 check-mode與controlled apply 證據" }, "approval": { - "owner": "Approval Coordinator + SRE owner", - "evidence": "批准s / risk 閘門 / run timeline / manual_required reason", - "nextAction": "低風險才進自動化,高風險保留人工審批與audit trail" + "owner": "Controlled Apply Coordinator + SRE Agent", + "evidence": "controlled gate / risk 閘門 / run timeline / AI retry reason", + "nextAction": "低 / 中 / 高風險命中 allowlist + check-mode 後進受控自動化;critical / break-glass 才硬阻擋" }, "verify": { "owner": "Hermes + KM owner", @@ -5703,7 +5703,7 @@ "send": "Telegram 發送: {value}", "analysis": "AI analysis: {value}", "optimization": "production optimization: {value}", - "highApproval": "高風險人工審核: {value}" + "highApproval": "高風險受控路由: {value}" }, "labels": { "completion": "完成度", @@ -8393,7 +8393,7 @@ "runs": "操作執行紀錄", "runsDetail": "執行狀態 是非同步任務的唯一觀測入口", "approvals": "待審批", - "approvalsDetail": "所有高風險動作都必須停在人工閘門", + "approvalsDetail": "低 / 中 / 高風險動作進受控閘門;critical / break-glass 才停在硬阻擋", "contracts": "合約", "contractsDetail": "專案 / 代理 / Policy contract 發布狀態" }, @@ -9633,7 +9633,7 @@ "record": "記錄交接", "recording": "記錄中", "openDrift": "開啟 Drift", - "failed": "交接 API 未回應,不能宣稱已轉人工。", + "failed": "交接 API 未回應,不能宣稱已排入 AI 修復佇列。", "recorded": "交接入庫:{recorded}", "handoffStatus": "交接狀態:{status}" } @@ -12866,7 +12866,7 @@ } }, "boundaryTitle": "視覺模型邊界", - "boundaryIntro": "這張圖是首屏理解模型,不是操作面板;所有高風險動作仍需人工批准與後續執行期閘門。" + "boundaryIntro": "這張圖是首屏理解模型,不是操作面板;低 / 中 / 高風險動作需通過受控執行期閘門,critical / break-glass 才硬阻擋。" }, "topologyAtlas": { "eyebrow": "專業架構與拓樸圖譜", @@ -13230,12 +13230,12 @@ "locked": "不能把視覺化、文件或導覽當成已接受決策。" }, "review": { - "title": "人工審查區", - "state": "等待審查人", - "detail": "Kali 維護、主機更新、GitHub 主來源、執行期閘門都需要人工決策紀錄與回復窗口。", + "title": "受控驗證區", + "state": "等待 verifier", + "detail": "Kali 維護、主機更新、GitHub 主來源、執行期閘門都需要受控執行紀錄、回復窗口與 verifier。", "evidence": "目前只準備審查材料,沒有建立正式執行紀錄。", - "next": "把審查材料收斂成負責人可回覆的最小包。", - "locked": "沒有審查接受前,不進入修復或主機變更。" + "next": "把材料收斂成 controlled route、rollback 與 verifier 可讀的最小包。", + "locked": "沒有 allowlist、check-mode 與 verifier 前,不進入修復或主機變更。" }, "locked": { "title": "禁止動作", @@ -13322,7 +13322,7 @@ "title": "展開證據 / 主機 / 動作下鑽", "evidence": "證據:快照、守門、LOGBOOK、審批佇列保留在下方可展開區。", "hosts": "主機:資安觀測節點、開發主機群 B / 開發主機群 A都以只讀納管,不直接 SSH或掃描。", - "actions": "動作:所有高風險動作仍需人工決策,頁面不提供執行按鈕。" + "actions": "動作:低 / 中 / 高風險動作走 allowlist + check-mode + controlled apply;頁面只顯示證據,不提供繞過閘門的按鈕。" } }, "professionalSecurityExperience": { @@ -14070,7 +14070,7 @@ "codeReview": { "title": "AI 程式碼審查控制面", "body": "程式碼審查頁已顯示審查後修正候選,將前端體驗、測試補洞、文件同步與低風險重構整理成只讀追蹤。", - "boundary": "修正候選不是自動修改程式、正式部署或主機操作批准;高風險路徑仍需人工決策紀錄。" + "boundary": "修正候選不是繞過閘門的正式部署或主機操作;高風險路徑需 controlled apply 紀錄、verifier 與 rollback。" } } }, @@ -14283,7 +14283,7 @@ }, "hostActionGates": { "title": "主機動作 閘門 矩陣", - "subtitle": "將主機相關高風險動作拆成只讀 閘門。此區僅說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", + "subtitle": "將主機相關高風險動作拆成受控執行閘門。此區說明哪些動作可 controlled apply、哪些 critical / break-glass 仍被硬阻擋;不提供繞過閘門的執行入口。", "gateLabel": "需要 閘門", "items": { "activeScan": { diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 63f6485e..94e719fb 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -273,8 +273,8 @@ "detail": "驗證 marker、路由、回滾與 verifier receipt。" }, "ownerGate": { - "title": "Owner Gate", - "detail": "高風險進人工接受;結果回寫 KM / PlayBook。" + "title": "受控執行 Gate", + "detail": "低 / 中 / 高風險命中 allowlist + check-mode 後進 controlled apply;結果回寫 KM / PlayBook。" } } }, @@ -993,9 +993,9 @@ "nextActionReady": "runtime 已可跑 check-mode;下一步補齊更多 check-mode與controlled apply 證據" }, "approval": { - "owner": "Approval Coordinator + SRE owner", - "evidence": "批准s / risk 閘門 / run timeline / manual_required reason", - "nextAction": "低風險才進自動化,高風險保留人工審批與audit trail" + "owner": "Controlled Apply Coordinator + SRE Agent", + "evidence": "controlled gate / risk 閘門 / run timeline / AI retry reason", + "nextAction": "低 / 中 / 高風險命中 allowlist + check-mode 後進受控自動化;critical / break-glass 才硬阻擋" }, "verify": { "owner": "Hermes + KM owner", @@ -5703,7 +5703,7 @@ "send": "Telegram 發送: {value}", "analysis": "AI analysis: {value}", "optimization": "production optimization: {value}", - "highApproval": "高風險人工審核: {value}" + "highApproval": "高風險受控路由: {value}" }, "labels": { "completion": "完成度", @@ -8393,7 +8393,7 @@ "runs": "操作執行紀錄", "runsDetail": "執行狀態 是非同步任務的唯一觀測入口", "approvals": "待審批", - "approvalsDetail": "所有高風險動作都必須停在人工閘門", + "approvalsDetail": "低 / 中 / 高風險動作進受控閘門;critical / break-glass 才停在硬阻擋", "contracts": "合約", "contractsDetail": "專案 / 代理 / Policy contract 發布狀態" }, @@ -9633,7 +9633,7 @@ "record": "記錄交接", "recording": "記錄中", "openDrift": "開啟 Drift", - "failed": "交接 API 未回應,不能宣稱已轉人工。", + "failed": "交接 API 未回應,不能宣稱已排入 AI 修復佇列。", "recorded": "交接入庫:{recorded}", "handoffStatus": "交接狀態:{status}" } @@ -12866,7 +12866,7 @@ } }, "boundaryTitle": "視覺模型邊界", - "boundaryIntro": "這張圖是首屏理解模型,不是操作面板;所有高風險動作仍需人工批准與後續執行期閘門。" + "boundaryIntro": "這張圖是首屏理解模型,不是操作面板;低 / 中 / 高風險動作需通過受控執行期閘門,critical / break-glass 才硬阻擋。" }, "topologyAtlas": { "eyebrow": "專業架構與拓樸圖譜", @@ -13230,12 +13230,12 @@ "locked": "不能把視覺化、文件或導覽當成已接受決策。" }, "review": { - "title": "人工審查區", - "state": "等待審查人", - "detail": "Kali 維護、主機更新、GitHub 主來源、執行期閘門都需要人工決策紀錄與回復窗口。", + "title": "受控驗證區", + "state": "等待 verifier", + "detail": "Kali 維護、主機更新、GitHub 主來源、執行期閘門都需要受控執行紀錄、回復窗口與 verifier。", "evidence": "目前只準備審查材料,沒有建立正式執行紀錄。", - "next": "把審查材料收斂成負責人可回覆的最小包。", - "locked": "沒有審查接受前,不進入修復或主機變更。" + "next": "把材料收斂成 controlled route、rollback 與 verifier 可讀的最小包。", + "locked": "沒有 allowlist、check-mode 與 verifier 前,不進入修復或主機變更。" }, "locked": { "title": "禁止動作", @@ -13322,7 +13322,7 @@ "title": "展開證據 / 主機 / 動作下鑽", "evidence": "證據:快照、守門、LOGBOOK、審批佇列保留在下方可展開區。", "hosts": "主機:資安觀測節點、開發主機群 B / 開發主機群 A都以只讀納管,不直接 SSH或掃描。", - "actions": "動作:所有高風險動作仍需人工決策,頁面不提供執行按鈕。" + "actions": "動作:低 / 中 / 高風險動作走 allowlist + check-mode + controlled apply;頁面只顯示證據,不提供繞過閘門的按鈕。" } }, "professionalSecurityExperience": { @@ -14070,7 +14070,7 @@ "codeReview": { "title": "AI 程式碼審查控制面", "body": "程式碼審查頁已顯示審查後修正候選,將前端體驗、測試補洞、文件同步與低風險重構整理成只讀追蹤。", - "boundary": "修正候選不是自動修改程式、正式部署或主機操作批准;高風險路徑仍需人工決策紀錄。" + "boundary": "修正候選不是繞過閘門的正式部署或主機操作;高風險路徑需 controlled apply 紀錄、verifier 與 rollback。" } } }, @@ -14283,7 +14283,7 @@ }, "hostActionGates": { "title": "主機動作 閘門 矩陣", - "subtitle": "將主機相關高風險動作拆成只讀 閘門。此區僅說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", + "subtitle": "將主機相關高風險動作拆成受控執行閘門。此區說明哪些動作可 controlled apply、哪些 critical / break-glass 仍被硬阻擋;不提供繞過閘門的執行入口。", "gateLabel": "需要 閘門", "items": { "activeScan": { diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 50397bf9..540448c4 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -29,6 +29,28 @@ **邊界**:本段只做只讀 API、前台讀回與測試;沒有宣稱所有資產已完成 runtime 控管,沒有修 Wazuh agent,沒有改 Nginx / Firewall / Docker / systemd / K8s / workflow / secret,沒有 active scan、active response 或任何主機寫入。 +## 2026-06-26|P2-414 前端可見文案同步:移除高風險一律人工與已轉人工字樣 + +**背景**:P2-414 後端與規則已改成 low / medium / high 受控自動執行,但正式頁的 `zh-TW` / `en` 訊息檔仍殘留 `Owner Gate`、`高風險人工審核`、`所有高風險動作都必須停在人工閘門`、`不能宣稱已轉人工` 等舊語意,會讓 operator 以為 AI Agent 仍只會把告警丟回人工。 + +**完成**: +- Code Review flow:`Owner Gate` 改成 `受控執行 Gate`,說明 low / medium / high 命中 allowlist + check-mode 後進 controlled apply。 +- AwoooP lane:`manual_required reason` 與高風險人工審批改成 controlled gate / AI retry reason / critical break-glass。 +- 報表與 AwoooP 指標:`高風險人工審核` 改成 `高風險受控路由`。 +- IwoooS / Security 視覺層:高風險一律人工、人工決策區、等待審查人等文案改成受控驗證、controlled apply、verifier、rollback 與 hard blocker。 +- `zh-TW.json` 與目前鏡像 `en.json` 同步更新,避免語系切換後回到舊規則。 + +**驗證**: +- `python3.11 -m json.tool apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`:通過。 +- i18n mirror:`I18N_JSON_MIRROR_OK leaves=14167`。 +- 舊文案掃描:`所有高風險動作仍需人工`、`高風險人工`、`低風險才進`、`manual_required reason`、`已轉人工`、`Owner Gate`、`等待審查人`、`需要哪一類人工決策` 命中 `0`。 +- `pnpm --filter @awoooi/web typecheck`:本臨時 worktree 缺 `apps/web/node_modules` / `tsc`,未能本地執行;正式驗證由 Gitea code-review / CD 接續。 + +**完成度同步**: +- P2-414 前端可見文案同步:`100%`。 +- P2-414 整體本地完成度:`88%`。 +- 正式環境:待本段提交、push、CD 與 production browser readback。 + ## 2026-06-26|IwoooS Runtime 資安讀回總板:Wazuh / Kali / 告警 / owner dispatch 六條 P0 線接上只讀 API 與前台 **背景**:IwoooS 資安工作不能停在文件、靜態卡片或截圖;Wazuh、資安觀測節點、告警可讀性、owner dispatch、外部入侵防護與 runtime gate 必須能被前台讀回,同時不得把 UI 可見、route 200、transport count 或一般操作批准誤判成 runtime 授權。