fix(web): 清理治理頁殘留英文狀態文案
Some checks failed
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m36s
CD Pipeline / build-and-deploy (push) Successful in 5m46s
CD Pipeline / post-deploy-checks (push) Successful in 1m32s
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-19 03:19:02 +08:00
parent de3d210c53
commit a5cdd8c227
3 changed files with 149 additions and 118 deletions

View File

@@ -3885,51 +3885,51 @@
}
},
"receiptOwnerReview": {
"title": "P2-406B Receipt Readback Owner Review",
"subtitle": "{current} → {next}Owner gates {gates};關閉中的 runtime 操作 {blocked}。",
"title": "P2-406B 回執讀回負責人審查",
"subtitle": "{current} → {next}負責人關卡 {gates};關閉中的執行期操作 {blocked}。",
"source": "{generated} · {current} → {next}",
"badges": {
"room": "戰情室 {room}",
"owner": "receipt owner {owner}",
"canary": "canary approved {value}"
"owner": "回執負責人 {owner}",
"canary": "金絲雀批准 {value}"
},
"metrics": {
"overall": "完成度",
"sources": "來源讀回",
"cadences": "報告節奏",
"gates": "Owner gates",
"checks": "Receipt checks",
"gates": "負責人關卡",
"checks": "回執檢查",
"approvals": "待批准",
"liveWrites": "Live writes"
"liveWrites": "正式寫入"
},
"sections": {
"ownerGates": "Owner review gates",
"receiptPlan": "Receipt readback plan",
"boundaries": "仍維持關閉的 live 操作"
"ownerGates": "負責人審查關卡",
"receiptPlan": "回執讀回計畫",
"boundaries": "仍維持關閉的正式操作"
},
"labels": {
"owner": "Owner",
"owner": "負責人",
"requiredFields": "必填欄位",
"acceptance": "驗收",
"blockedActions": "阻擋操作",
"evidence": "證據",
"arbiter": "arbiter {value}",
"receiptOwner": "receipt {value}",
"replayOwner": "replay {value}",
"env": "env {value}",
"cadenceDetail": "owner {owner} · {state} · confidence {confidence}",
"arbiter": "仲裁者 {value}",
"receiptOwner": "回執 {value}",
"replayOwner": "重放 {value}",
"env": "環境 {value}",
"cadenceDetail": "負責人 {owner} · {state} · 信心 {confidence}",
"boundaryClosed": "保持 false / 0",
"boundaryOpen": "異常開啟",
"truthBlockers": "truth blockers {count}",
"driftCandidates": "drift candidates {count}"
"truthBlockers": "真相阻擋 {count}",
"driftCandidates": "漂移候選 {count}"
},
"boundaries": {
"gateway": "Gateway queue write",
"telegram": "Telegram 發",
"gateway": "Gateway 佇列寫入",
"telegram": "Telegram 發",
"botApi": "Bot API 呼叫",
"receipt": "Receipt 正式寫入",
"receipt": "回執正式寫入",
"production": "正式寫入",
"secret": "Secret / 付費 / 主機 / kubectl"
"secret": "機密 / 付費 / 主機 / kubectl"
},
"riskTiers": {
"low": "低風險",
@@ -3940,7 +3940,7 @@
},
"reportNoWriteAnalysis": {
"title": "P2-407 AI 報表 無寫入 分析",
"subtitle": "{current} → {next};分析建議 {recommendations};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};分析建議 {recommendations};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "已提交快照",
"room": "戰情室 {room}",
@@ -3966,7 +3966,7 @@
"labels": {
"score": "分數 {score}",
"approvalRequired": "批准 {value}",
"gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}",
"gateDetail": "負責人 {owner} · 欄位 {fields} · 驗收 {checks}",
"generated": "產生於 {generated}",
"env": "環境 {value}",
"redaction": "脫敏 {value}"
@@ -3980,7 +3980,7 @@
},
"lowMediumWhitelist": {
"title": "P2-408 中 / 低風險白名單",
"subtitle": "{current} → {next};候選 {candidates};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};候選 {candidates};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "無正式執行白名單",
"room": "戰情室 {room}",
@@ -4000,13 +4000,13 @@
"sections": {
"candidates": "中 / 低風險候選",
"ownerGates": "負責人關卡",
"verifiers": "Dry-run 驗證器",
"verifiers": "乾跑驗證器",
"truth": "白名單真相"
},
"labels": {
"verifier": "驗證器 {value}",
"rollback": "回滾 {value}",
"gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}",
"gateDetail": "負責人 {owner} · 欄位 {fields} · 驗收 {checks}",
"generated": "產生於 {generated}",
"env": "環境 {value}",
"redaction": "脫敏 {value}"
@@ -4023,13 +4023,13 @@
},
"statuses": {
"candidate_only_no_live_execution": "僅候選",
"dry_run_ready_no_live_execution": "dry-run 就緒",
"dry_run_ready_no_live_execution": "乾跑就緒",
"owner_review_required_no_live_execution": "需負責人審查"
}
},
"highRiskOwnerQueue": {
"title": "P2-409 高風險 Owner Review Queue",
"subtitle": "{current} → {next};佇列 {queue};阻擋中的 runtime 操作 {blocked}。",
"title": "P2-409 高風險負責人審查佇列",
"subtitle": "{current} → {next};佇列 {queue};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "高風險暫停",
"room": "戰情室 {room}",
@@ -4054,10 +4054,10 @@
},
"labels": {
"packet": "封包 {value}",
"fields": "owner 欄位 {count}",
"fields": "負責人欄位 {count}",
"highRoute": "高風險路由",
"criticalRoute": "關鍵路由",
"ownerRequired": "需要 owner {value}",
"ownerRequired": "需要負責人 {value}",
"verbalApproval": "口頭批准 {value}",
"telegram": "Telegram 政策",
"telegramDetail": "正式動作 {count}",
@@ -4085,7 +4085,7 @@
},
"actionAuditLedger": {
"title": "P2-410 AI Agent 行動審計帳本",
"subtitle": "{current} → {next}audit event {events};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next}審計事件 {events};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "不可變無寫入帳本",
"immutable": "事件模板 {count}",
@@ -4110,14 +4110,14 @@
"truth": "帳本真相"
},
"labels": {
"fields": "audit 欄位 {count}",
"fields": "審計欄位 {count}",
"sideEffects": "副作用 {count}",
"auditDb": "Audit DB 寫入",
"timelineKm": "Timeline / KM 寫入",
"telegram": "Telegram 發送",
"writeTotal": "正式寫入總數 {count}",
"playbook": "PlayBook trust {value}",
"queueBot": "queue {queue} / bot {bot}",
"queueBot": "佇列 {queue} / Bot {bot}",
"generated": "產生於 {generated}",
"redaction": "脫敏 {value}",
"ownerAccepted": "負責人已接受 {count}"
@@ -4131,20 +4131,20 @@
"devops": "DevOps"
},
"riskTiers": {
"low": "low",
"medium": "medium",
"high": "high",
"critical": "critical"
"low": "低風險",
"medium": "中風險",
"high": "高風險",
"critical": "關鍵風險"
},
"stages": {
"candidate_classification": "candidate classification",
"dry_run_hold": "dry-run hold",
"owner_queue_pause": "owner queue pause",
"runtime_action_rejection": "runtime rejection",
"work_item_owner_review": "work item review",
"no_send_preview": "無發送 preview",
"notification_egress_guard": "egress guard",
"writeback_blocked": "writeback blocked"
"candidate_classification": "候選分類",
"dry_run_hold": "乾跑暫停",
"owner_queue_pause": "負責人佇列暫停",
"runtime_action_rejection": "執行期拒收",
"work_item_owner_review": "工作項負責人審查",
"no_send_preview": "無發送預覽",
"notification_egress_guard": "通知出口防護",
"writeback_blocked": "回寫已阻擋"
}
},
"actionOwnerEventBus": {
@@ -4219,34 +4219,34 @@
},
"hostRunawayAiops": {
"title": "P3-009 Host Runaway AIOps 閉環",
"subtitle": "{current} → {next};閉環階段 {stages};阻擋 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};閉環階段 {stages};阻擋執行期操作 {blocked}。",
"source": "{generated} · {current} → {next}",
"badges": {
"host": "host {host}",
"deploy": "deploy {marker}",
"runtime": "runtime writes {value}"
"host": "主機 {host}",
"deploy": "部署標記 {marker}",
"runtime": "執行期寫入 {value}"
},
"metrics": {
"overall": "完成度",
"stages": "閉環階段",
"alertLanes": "告警 lane",
"alertLanes": "告警分流",
"assets": "資產回寫",
"liveWrites": "Live writes",
"orphans": "Orphan groups"
"liveWrites": "正式寫入",
"orphans": "孤兒群組"
},
"sections": {
"loopStages": "Monitor / Alert / PlayBook / KM 閉環",
"alertLanes": "告警分流 lane",
"boundaries": "仍維持關閉的 runtime 操作"
"alertLanes": "告警分流",
"boundaries": "仍維持關閉的執行期操作"
},
"labels": {
"owner": "Owner",
"owner": "負責人",
"evidence": "證據",
"blockedActions": "阻擋操作",
"boundaryClosed": "保持 false / 0",
"boundaryOpen": "異常開啟",
"monitorUp": "monitor_up={value}",
"ciContainers": "CI containers={count}"
"monitorUp": "監控狀態={value}",
"ciContainers": "CI 容器={count}"
},
"boundaries": {
"runtime": "Runtime remediation",

View File

@@ -3885,51 +3885,51 @@
}
},
"receiptOwnerReview": {
"title": "P2-406B Receipt Readback Owner Review",
"subtitle": "{current} → {next}Owner gates {gates};關閉中的 runtime 操作 {blocked}。",
"title": "P2-406B 回執讀回負責人審查",
"subtitle": "{current} → {next}負責人關卡 {gates};關閉中的執行期操作 {blocked}。",
"source": "{generated} · {current} → {next}",
"badges": {
"room": "戰情室 {room}",
"owner": "receipt owner {owner}",
"canary": "canary approved {value}"
"owner": "回執負責人 {owner}",
"canary": "金絲雀批准 {value}"
},
"metrics": {
"overall": "完成度",
"sources": "來源讀回",
"cadences": "報告節奏",
"gates": "Owner gates",
"checks": "Receipt checks",
"gates": "負責人關卡",
"checks": "回執檢查",
"approvals": "待批准",
"liveWrites": "Live writes"
"liveWrites": "正式寫入"
},
"sections": {
"ownerGates": "Owner review gates",
"receiptPlan": "Receipt readback plan",
"boundaries": "仍維持關閉的 live 操作"
"ownerGates": "負責人審查關卡",
"receiptPlan": "回執讀回計畫",
"boundaries": "仍維持關閉的正式操作"
},
"labels": {
"owner": "Owner",
"owner": "負責人",
"requiredFields": "必填欄位",
"acceptance": "驗收",
"blockedActions": "阻擋操作",
"evidence": "證據",
"arbiter": "arbiter {value}",
"receiptOwner": "receipt {value}",
"replayOwner": "replay {value}",
"env": "env {value}",
"cadenceDetail": "owner {owner} · {state} · confidence {confidence}",
"arbiter": "仲裁者 {value}",
"receiptOwner": "回執 {value}",
"replayOwner": "重放 {value}",
"env": "環境 {value}",
"cadenceDetail": "負責人 {owner} · {state} · 信心 {confidence}",
"boundaryClosed": "保持 false / 0",
"boundaryOpen": "異常開啟",
"truthBlockers": "truth blockers {count}",
"driftCandidates": "drift candidates {count}"
"truthBlockers": "真相阻擋 {count}",
"driftCandidates": "漂移候選 {count}"
},
"boundaries": {
"gateway": "Gateway queue write",
"telegram": "Telegram 發",
"gateway": "Gateway 佇列寫入",
"telegram": "Telegram 發",
"botApi": "Bot API 呼叫",
"receipt": "Receipt 正式寫入",
"receipt": "回執正式寫入",
"production": "正式寫入",
"secret": "Secret / 付費 / 主機 / kubectl"
"secret": "機密 / 付費 / 主機 / kubectl"
},
"riskTiers": {
"low": "低風險",
@@ -3940,7 +3940,7 @@
},
"reportNoWriteAnalysis": {
"title": "P2-407 AI 報表 無寫入 分析",
"subtitle": "{current} → {next};分析建議 {recommendations};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};分析建議 {recommendations};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "已提交快照",
"room": "戰情室 {room}",
@@ -3966,7 +3966,7 @@
"labels": {
"score": "分數 {score}",
"approvalRequired": "批准 {value}",
"gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}",
"gateDetail": "負責人 {owner} · 欄位 {fields} · 驗收 {checks}",
"generated": "產生於 {generated}",
"env": "環境 {value}",
"redaction": "脫敏 {value}"
@@ -3980,7 +3980,7 @@
},
"lowMediumWhitelist": {
"title": "P2-408 中 / 低風險白名單",
"subtitle": "{current} → {next};候選 {candidates};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};候選 {candidates};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "無正式執行白名單",
"room": "戰情室 {room}",
@@ -4000,13 +4000,13 @@
"sections": {
"candidates": "中 / 低風險候選",
"ownerGates": "負責人關卡",
"verifiers": "Dry-run 驗證器",
"verifiers": "乾跑驗證器",
"truth": "白名單真相"
},
"labels": {
"verifier": "驗證器 {value}",
"rollback": "回滾 {value}",
"gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}",
"gateDetail": "負責人 {owner} · 欄位 {fields} · 驗收 {checks}",
"generated": "產生於 {generated}",
"env": "環境 {value}",
"redaction": "脫敏 {value}"
@@ -4023,13 +4023,13 @@
},
"statuses": {
"candidate_only_no_live_execution": "僅候選",
"dry_run_ready_no_live_execution": "dry-run 就緒",
"dry_run_ready_no_live_execution": "乾跑就緒",
"owner_review_required_no_live_execution": "需負責人審查"
}
},
"highRiskOwnerQueue": {
"title": "P2-409 高風險 Owner Review Queue",
"subtitle": "{current} → {next};佇列 {queue};阻擋中的 runtime 操作 {blocked}。",
"title": "P2-409 高風險負責人審查佇列",
"subtitle": "{current} → {next};佇列 {queue};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "高風險暫停",
"room": "戰情室 {room}",
@@ -4054,10 +4054,10 @@
},
"labels": {
"packet": "封包 {value}",
"fields": "owner 欄位 {count}",
"fields": "負責人欄位 {count}",
"highRoute": "高風險路由",
"criticalRoute": "關鍵路由",
"ownerRequired": "需要 owner {value}",
"ownerRequired": "需要負責人 {value}",
"verbalApproval": "口頭批准 {value}",
"telegram": "Telegram 政策",
"telegramDetail": "正式動作 {count}",
@@ -4085,7 +4085,7 @@
},
"actionAuditLedger": {
"title": "P2-410 AI Agent 行動審計帳本",
"subtitle": "{current} → {next}audit event {events};阻擋中的 runtime 操作 {blocked}。",
"subtitle": "{current} → {next}審計事件 {events};阻擋中的執行期操作 {blocked}。",
"badges": {
"mode": "不可變無寫入帳本",
"immutable": "事件模板 {count}",
@@ -4110,14 +4110,14 @@
"truth": "帳本真相"
},
"labels": {
"fields": "audit 欄位 {count}",
"fields": "審計欄位 {count}",
"sideEffects": "副作用 {count}",
"auditDb": "Audit DB 寫入",
"timelineKm": "Timeline / KM 寫入",
"telegram": "Telegram 發送",
"writeTotal": "正式寫入總數 {count}",
"playbook": "PlayBook trust {value}",
"queueBot": "queue {queue} / bot {bot}",
"queueBot": "佇列 {queue} / Bot {bot}",
"generated": "產生於 {generated}",
"redaction": "脫敏 {value}",
"ownerAccepted": "負責人已接受 {count}"
@@ -4131,20 +4131,20 @@
"devops": "DevOps"
},
"riskTiers": {
"low": "low",
"medium": "medium",
"high": "high",
"critical": "critical"
"low": "低風險",
"medium": "中風險",
"high": "高風險",
"critical": "關鍵風險"
},
"stages": {
"candidate_classification": "candidate classification",
"dry_run_hold": "dry-run hold",
"owner_queue_pause": "owner queue pause",
"runtime_action_rejection": "runtime rejection",
"work_item_owner_review": "work item review",
"no_send_preview": "無發送 preview",
"notification_egress_guard": "egress guard",
"writeback_blocked": "writeback blocked"
"candidate_classification": "候選分類",
"dry_run_hold": "乾跑暫停",
"owner_queue_pause": "負責人佇列暫停",
"runtime_action_rejection": "執行期拒收",
"work_item_owner_review": "工作項負責人審查",
"no_send_preview": "無發送預覽",
"notification_egress_guard": "通知出口防護",
"writeback_blocked": "回寫已阻擋"
}
},
"actionOwnerEventBus": {
@@ -4219,34 +4219,34 @@
},
"hostRunawayAiops": {
"title": "P3-009 Host Runaway AIOps 閉環",
"subtitle": "{current} → {next};閉環階段 {stages};阻擋 runtime 操作 {blocked}。",
"subtitle": "{current} → {next};閉環階段 {stages};阻擋執行期操作 {blocked}。",
"source": "{generated} · {current} → {next}",
"badges": {
"host": "host {host}",
"deploy": "deploy {marker}",
"runtime": "runtime writes {value}"
"host": "主機 {host}",
"deploy": "部署標記 {marker}",
"runtime": "執行期寫入 {value}"
},
"metrics": {
"overall": "完成度",
"stages": "閉環階段",
"alertLanes": "告警 lane",
"alertLanes": "告警分流",
"assets": "資產回寫",
"liveWrites": "Live writes",
"orphans": "Orphan groups"
"liveWrites": "正式寫入",
"orphans": "孤兒群組"
},
"sections": {
"loopStages": "Monitor / Alert / PlayBook / KM 閉環",
"alertLanes": "告警分流 lane",
"boundaries": "仍維持關閉的 runtime 操作"
"alertLanes": "告警分流",
"boundaries": "仍維持關閉的執行期操作"
},
"labels": {
"owner": "Owner",
"owner": "負責人",
"evidence": "證據",
"blockedActions": "阻擋操作",
"boundaryClosed": "保持 false / 0",
"boundaryOpen": "異常開啟",
"monitorUp": "monitor_up={value}",
"ciContainers": "CI containers={count}"
"monitorUp": "監控狀態={value}",
"ciContainers": "CI 容器={count}"
},
"boundaries": {
"runtime": "Runtime remediation",

View File

@@ -1,3 +1,34 @@
## 2026-06-19治理頁 P2-406BP3-009 可見狀態文案再收斂
**背景**:正式治理頁在 P2-407P2-411 可見 smoke 後,仍發現同一段 automation inventory 與相鄰卡片有 `Owner gates``Receipt checks``Owner Review Queue``audit event``runtime 操作``Dry-run 驗證器``Live writes` 等半英文狀態詞。依文件語言鐵律、前台繁中規則與「不要把工作視窗對話內容放上頁面」要求,本輪只收斂使用者會看到的固定文案,不新增任何 runtime 能力。
**完成內容**
- `apps/web/messages/zh-TW.json` 收斂 P2-406B、P2-407、P2-408、P2-409、P2-410、P3-009 的 title、subtitle、badge、metric、section、label、risk tier 與 stage。
- `apps/web/messages/en.json` 已同步為同一份繁中鏡像,維持目前 `zh-TW` 與 mirror 內容一致。
- 將 `owner / receipt / runtime / queue / audit / dry-run / live write` 類可見狀態詞改成負責人、回執、執行期、佇列、審計、乾跑、正式寫入等繁中語意。
- 未修改 API、schema、snapshot、worker、Telegram sender、Bot API、Gateway queue、DB、KM、PlayBook、主機、K8s、Nginx 或 workflow。
**本地驗證**
- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` JSON parse 通過。
- `WEB_MESSAGES_MIRROR_OK`
- P2-406BP3-009 目標段落殘留字串檢查通過:`Owner Review Queue``Owner gates``Receipt checks``Live writes``Owner review gates``Receipt readback plan``Dry-run 驗證器``dry-run 就緒``audit event``runtime 操作` 等皆未命中。
- `SECURITY_MIRROR_PROGRESS_GUARD_OK`
- `TELEGRAM_ALERT_READABILITY_GUARD_OK tests=10 ai_lanes=6 host_lanes=6 runtime_gate=0`
- `IWOOOS_CONFIG_CONTROL_GUARD_OK`
- `DOC_SECRET_SANITY_OK scanned_files=934`
- `git diff --check` 通過。
- `pnpm --filter @awoooi/web typecheck` 因隔離 worktree 未安裝 `node_modules``tsc` 不存在而未執行完成;本段只改 JSON 文案與 LOGBOOK待 Gitea CD 乾淨環境補驗。
**完成度同步**
- 治理頁 P2-406BP3-009 可見狀態文案本地收斂:`100%`
- 正式部署與 production desktop / mobile readback`0%`,待本次推版與 CD 完成。
- IwoooS headline仍維持 `64%`active runtime gate 仍 `0`
- Owner response accepted、event bus publish、audit DB write、timeline write、KM write、PlayBook trust write、Gateway queue write、Telegram send、Bot API call、worker dispatch、receipt production write、host write、kubectl action、destructive operation全部仍 `0 / false`
**下一步**:推送 Gitea main等待 code-review / CD / post-deploy checks取得 deploy marker 後重跑 `/zh-TW/governance?tab=automation-inventory` desktop / mobile production smoke確認無水平溢出、無工作視窗片語、P2-407P2-411 主要區塊可見且目標英文 drift 為 `0`
**邊界**:這是前端可見文案與鏡像同步,不代表 Wazuh、Kali、Nginx drift、Telegram 告警或 AI Agent runtime remediation 已經啟用任何主機、firewall、Nginx、Docker、K8s、active response 或 active scan 仍需獨立 owner gate、維護窗口、rollback owner 與驗證。
## 2026-06-19P2-411 治理頁可見文案繁中收斂
**背景**P2-411 正式 API 已可讀回,但 governance automation inventory 桌機 smoke 發現同頁既有卡片仍有 `No-write``No-send``live total``Verifier gates``owner accepted` 等舊英文可見文案。依全站繁中鐵律與「不得顯示工作視窗對話內容」要求,本輪把治理頁會露出的固定狀態短語收斂為繁中,保留 `Telegram``Bot API``runtime``Gateway``OpenClaw``Hermes``NemoTron` 等必要技術名詞。