From 950bf696ad1f35fc53f35fb46156ccdf21ea841f Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 1 Jul 2026 13:20:34 +0800 Subject: [PATCH] fix(ui): reframe awooop decisions as controlled automation --- apps/web/messages/en.json | 238 +++++++++--------- apps/web/messages/zh-TW.json | 238 +++++++++--------- .../web/src/app/[locale]/awooop/runs/page.tsx | 6 +- docs/LOGBOOK.md | 17 ++ 4 files changed, 258 insertions(+), 241 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index c4dbce63..5b1f005c 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -2229,7 +2229,7 @@ "quality": { "title": "資料品質軌道", "scope": "目前列表", - "reviewBacklog": "待審核", + "reviewBacklog": "待受控覆核", "freshWithin7d": "7 天內更新", "incidentLinked": "事故關聯", "signalRich": "訊號完整", @@ -2320,7 +2320,7 @@ "metric": { "staleRatio": "陳舊比例", "staleTotal": "陳舊 KM", - "ownerPending": "待審核", + "ownerPending": "待受控覆核", "readyBlocked": "可處理 / 阻塞", "completed": "已完成" }, @@ -2630,7 +2630,7 @@ "dispositions": "處置紀錄", "auto": "AI / 冷啟動接手", "human": "AI 補齊處置", - "waiting": "待審核工作" + "waiting": "待受控覆核工作" }, "assets": { "title": "自動化資產沉澱", @@ -2641,12 +2641,12 @@ "agentsDetail": "OpenClaw、Hermes、NemoTron 工作量。", "workload": "工作完成", "workloadDetail": "已完成 / 總工作量。", - "waiting": "待審核", + "waiting": "待受控覆核", "waitingDetail": "未過 allowlist / check-mode / verifier 的工作不能自動執行。" }, "agents": { "title": "AI Agent 分工與工作量", - "subtitle": "把每個 Agent 的角色、完成量、待審核與 live runtime 計數放在同一列,避免只看到泛泛的 AI 成效百分比。", + "subtitle": "把每個 Agent 的角色、完成量、待受控覆核與 live runtime 計數放在同一列,避免只看到泛泛的 AI 成效百分比。", "empty": "尚未讀到 Agent 工作狀態" }, "chip": { @@ -2656,7 +2656,7 @@ "sourceReady": "來源 {ok}/{total}", "live": "live {count}", "workDone": "工作 {done}/{total}", - "approval": "待審核 {count}" + "approval": "待受控覆核 {count}" } }, "apm": { @@ -2979,7 +2979,7 @@ "ragConf": "RAG 信心", "execSuccess": "執行成功", "avgDuration": "平均耗時", - "pendingApproval": "待審核", + "pendingApproval": "待受控覆核", "alertRadar": "告警雷達", "chainTitle": "神經傳導路徑", "nodeDone": "完成", @@ -2991,7 +2991,7 @@ "kpiTotalExec": "總執行次數", "kpiPlaybooks": "Playbooks", "kpiAvgDuration": "平均修復時間", - "kpiPendingAppr": "待審核授權", + "kpiPendingAppr": "待受控覆核授權", "trendUp": "↑ {n}% 本週", "trendDown": "↓ {n}s 本週", "schemeBreakdown": "執行路徑分佈", @@ -3021,7 +3021,7 @@ "noHistory": "尚無修復紀錄", "noActiveAlerts": "目前無活躍告警", "noPlaybooks": "尚無 Playbook 紀錄", - "noApprovals": "目前無待審核項目", + "noApprovals": "目前無待受控覆核項目", "noApprovalsDesc": "所有授權請求已處理完畢", "chainAlert": "告警觸發", "chainRAG": "OpenClaw RAG 診斷", @@ -3037,7 +3037,7 @@ "relatedServices": "相關服務", "dataImpact": "資料影響", "dryRunChecks": "Dry-Run 檢查", - "approvalQueueCount": "共 {count} 個待審核項目", + "approvalQueueCount": "共 {count} 個待受控覆核項目", "dispositionBreakdown": "告警處置分佈", "dispositionAuto": "自動修復", "dispositionHuman": "人工審核", @@ -5991,7 +5991,7 @@ "agents": "Agent 數", "workload": "工作量", "done": "已完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "recommendations": "AI 建議", "approval": "需審核", "autoEnabled": "自動執行", @@ -6013,12 +6013,12 @@ "liveDelivery": "實發 {count}", "workUnits": "工作單位 {count}", "doneRatio": "完成比例", - "doneDetail": "{done}/{total} 已完成;{approval} 待審核", + "doneDetail": "{done}/{total} 已完成;{approval} 待受控覆核", "targets": "佈建目標 {count}", "capabilities": "可委派能力 {count}", "reportSections": "報告章節 {count}", "ownedRecommendations": "分析建議 {count}", - "waitingApproval": "待審核 {count}", + "waitingApproval": "待受控覆核 {count}", "liveRuntime": "24h runtime 作業 {count}", "approvalRequired": "需審核: {value}" }, @@ -6041,7 +6041,7 @@ "heroMetrics": { "visibleReports": "報告可見", "workload": "工作量完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "liveTelegram": "live Telegram", "liveOptimization": "live 優化" }, @@ -6050,7 +6050,7 @@ "reportDetail": "章節 {sections};圖表 {charts};工作量 {work};live {live}", "nextGate": "下一關:{gate}", "agentWorkload": "工作量完成", - "agentDetail": "{done}/{total} 已完成;{approval} 待審核;24h live {live}" + "agentDetail": "{done}/{total} 已完成;{approval} 待受控覆核;24h live {live}" }, "truthTitle": "報告完成狀態", "boundaryTitle": "live 啟用邊界", @@ -6061,7 +6061,7 @@ "charts": "圖表", "workload": "工作量", "done": "已完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "liveDelivery": "live 發送", "liveOptimization": "live 優化" }, @@ -6082,7 +6082,7 @@ "completion": "完成度", "reportDetail": "章節 {sections};圖表 {charts};工作量 {work};live {live}", "workDone": "工作完成", - "agentDetail": "{done}/{total} 已完成;{approval} 待審核;24h live {live}", + "agentDetail": "{done}/{total} 已完成;{approval} 待受控覆核;24h live {live}", "sections": "報告章節 {count}", "recommendations": "分析建議 {count}" }, @@ -8592,10 +8592,10 @@ "linkedRuns": "Run 連結", "linkedRunsDetail": "未連結事件:{unlinked}", "openWork": "待處理工作", - "openWorkDetail": "無修復 {gap} / controlled gate {manual} / 修復失敗 {failed}", + "openWorkDetail": "無修復 {gap} / AI 受控佇列 {manual} / 修復失敗 {failed}", "sourceDecision": "來源決策", - "sourceDecisionNone": "無待審", - "sourceDecisionDetail": "已記錄審核:{recorded}", + "sourceDecisionNone": "無待受控覆核", + "sourceDecisionDetail": "已記錄受控覆核:{recorded}", "latest": "最新事件", "latestDetail": "共 {groups} 個 recurrence group" }, @@ -8614,8 +8614,8 @@ "runsDetail": "未連結事件:{unlinked}", "approvals": "檢查 controlled gate", "approvalsDetail": "{count} 個 controlled gate 待 AI policy / verifier 判定", - "sourceReviews": "審核來源配對", - "sourceReviewsDetail": "{count} 個 來源 review 待決策" + "sourceReviews": "覆核來源配對", + "sourceReviewsDetail": "{count} 個來源待 AI 受控覆核" } }, "visualOps": { @@ -8655,7 +8655,7 @@ }, "workItems": { "label": "工作項", - "detail": "把 manual/no-action 轉成 owner SOP rail。" + "detail": "把 no-action / AI 受控 hold 轉成 SOP rail。" }, "approvals": { "label": "批准", @@ -8738,7 +8738,7 @@ "executionUnverified": "已執行但未驗證", "executionFailed": "執行失敗", "manualRequiredNoAction": "AI 受控補齊:NO_ACTION", - "approvalRequired": "等待審批", + "approvalRequired": "等待 AI 受控決策", "observedNotExecuted": "已觀測但未執行", "receivedOnly": "僅收到告警" }, @@ -8767,7 +8767,7 @@ "tenantsDetail": "{active} 個啟用,{shadow} 個 shadow", "runs": "操作執行紀錄", "runsDetail": "執行狀態 是非同步任務的唯一觀測入口", - "approvals": "待審批", + "approvals": "AI 受控決策", "approvalsDetail": "低 / 中 / 高風險動作進受控閘門;critical / break-glass 才停在硬阻擋", "contracts": "合約", "contractsDetail": "專案 / 代理 / Policy contract 發布狀態" @@ -8781,7 +8781,7 @@ "route": "流向:Run 監控 / 事件詳情" }, "approval": { - "title": "AI 受控閘門", + "title": "AI 受控隊列", "signal": "低 / 中 / 高風險待 AI policy / verifier 判定", "owner": "負責:AI policy + SRE break-glass reviewer", "route": "流向:審批佇列" @@ -8815,7 +8815,7 @@ "next": { "title": "下一步操作", "item1": "查看 Run 監控與provider fallback", - "item2": "處理等待審批的高風險操作", + "item2": "處理等待 AI 受控決策的高風險操作", "item3": "審查 Contract lifecycle", "item4": "查看 AwoooP 工作鏈路地圖" }, @@ -9053,7 +9053,7 @@ "label": "一眼判讀", "blocked": { "title": "目前仍有 AI 受控卡點,不能宣稱全自動閉環", - "detail": "先看阻塞工作項與 AI 受控閘門,再補 PlayBook、Verifier、rollback 與 controlled review。" + "detail": "先看阻塞工作項與 AI 受控佇列,再補 PlayBook、Verifier、rollback 與受控覆核。" }, "inProgress": { "title": "自動化資產正在補齊,仍需追蹤候選品質", @@ -9078,8 +9078,8 @@ "detail": "待處理、缺口與失敗修復" }, "owner": { - "title": "接手", - "detail": "AI 受控閘門與受控 review" + "title": "受控處置", + "detail": "AI 受控佇列與受控覆核" }, "verifier": { "title": "驗證", @@ -9089,7 +9089,7 @@ "cards": { "blockers": { "title": "阻塞與 AI 受控隊列", - "detail": "阻塞工作項 {workItems};AI 受控閘門 {manual};資產阻塞 {assets}。", + "detail": "阻塞工作項 {workItems};AI 受控佇列 {manual};資產阻塞 {assets}。", "action": "查看工作項" }, "candidates": { @@ -9103,9 +9103,9 @@ "action": "查看總帳" }, "owners": { - "title": "負責人接手", - "detail": "AI 受控閘門 {manual};來源審查 {source};已記錄 {recorded}。", - "action": "查看審查" + "title": "AI 受控處置", + "detail": "AI 受控佇列 {manual};來源覆核 {source};已記錄 {recorded}。", + "action": "查看覆核" } } }, @@ -9118,7 +9118,7 @@ "blockedLabel": "卡點 {count}", "nextAction": "下一步:{value}", "metrics": { - "manual": "AI 受控閘門", + "manual": "AI 受控佇列", "gap": "自動化缺口", "verified": "已驗證修復", "runtime": "Runtime gate" @@ -9185,7 +9185,7 @@ }, "km": { "title": "KM", - "detail": "草稿、審核、回測" + "detail": "草稿、AI 受控覆核、回測" }, "playbook": { "title": "PlayBook", @@ -9208,7 +9208,7 @@ }, "playbook": { "title": "PlayBook", - "detail": "OpenClaw 修復候選、服務專屬策略、trust 與 AI 受控閘門。", + "detail": "OpenClaw 修復候選、服務專屬策略、trust 與 AI 受控隊列。", "next": "下一步:把通用兜底改成服務專屬 PlayBook,補 rollback 與適用條件。" }, "script": { @@ -9370,17 +9370,17 @@ "gates": { "sourceDossier": "入站告警必須能查到 received / incident_linked / 來源 refs", "autoRepair": "必須同時有 auto_repair、verification_result=success與KM 回寫", - "recurrenceWorkItems": "Run 完成無修復、修復失敗與 AI 受控閘門必須進入可追蹤工作項", + "recurrenceWorkItems": "Run 完成無修復、修復失敗與 AI 受控佇列必須進入可追蹤工作項", "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook候選與是否可自動修復", "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程無發送與 AI 受控 review;不得把全 0 當健康或自動執行授權", "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", "remediationQueue": "每筆 degraded / failed / timeout都必須映射到重跑、重驗、Ticket或 AI 受控檢查", "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL或舊快照", - "callbackOwnerReview": "Telegram 詳情 / 歷史若未連到 KM owner-review,必須變成可追蹤工作項", + "callbackOwnerReview": "Telegram 詳情 / 歷史若未連到 KM 受控覆核,必須變成可追蹤工作項", "callbackTraceRecoveryBacklog": "Callback trace 缺口必須顯示復原訊號、24h decay與backlog 下一步", "ciSecretHygiene": "workflow不可再把 機密設定 掛在 step env / action input;歷史 log 需另做輪換與保留期治理", "governanceDispatch": "治理告警必須進 dispatch,並標示 skipped / pending / repaired", - "knowledgeHealthcheck": "knowledge_degradation 必須顯示 Hermes / OpenClaw / ElephantAlpha 分工、目前階段與owner 審核點", + "knowledgeHealthcheck": "knowledge_degradation 必須顯示 Hermes / OpenClaw / ElephantAlpha 分工、目前階段與 AI 受控覆核點", "frontendConsole": "已完成與推進中的工作必須能從前端直接追蹤", "mcpGateway": "MCP 使用必須看得到 agent、tool、scope與blocked 原因", "timelineContract": "Incident、Approval、Evidence、KM、時間線不得互相矛盾", @@ -9391,10 +9391,10 @@ "evidence": { "channelEvents": "最近 Alertmanager 通道事件:{count}", "autoRepair": "已驗證自動修復:{verified}/{evaluated}", - "recurrenceWorkItems": "重複告警待處理:{open};無修復:{gap};修復失敗:{failed};AI 受控閘門:{manual};來源待審:{source}", + "recurrenceWorkItems": "重複告警待處理:{open};無修復:{gap};修復失敗:{failed};AI 受控佇列:{manual};來源待覆核:{source}", "recurrenceLatest": "最新:{alert} / {incident}", "recurrenceReason": "原因:{reason}", - "recurrenceSourceReviewRecorded": "來源審核已寫入歷史:{count}", + "recurrenceSourceReviewRecorded": "來源覆核已寫入歷史:{count}", "recurrenceSourceApplied": "來源配對已套用:{count}", "recurrenceEmpty": "近期重複告警尚無待處理工作項", "aiRouteRepairWorkItem": "AI route:{lane};目前 {selected};目標 {target};阻塞 {blockers} 項", @@ -9431,7 +9431,7 @@ "remediationQueue": "補救工作:{total};AI可接手:{ready};AI補齊:{human}", "telegramCallbacks": "目前修補 Telegram callback 查詢鏈與歷史摘要", "telegramCallbacksLive": "只讀 callback toast 400 已非致命;詳情 / 歷史改由 DB 真相鏈 回覆", - "callbackOwnerReview": "Callback owner-review 缺口:{open} 個 open;callback evidence:{total}", + "callbackOwnerReview": "Callback 受控覆核缺口:{open} 個 open;callback evidence:{total}", "callbackOwnerReviewLatest": "最新:{incident} / {action}", "callbackOwnerReviewQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", "callbackOwnerReviewNext": "下一步:{next}", @@ -9453,9 +9453,9 @@ "governanceUnavailable": "治理事件 API 目前無法回應;待派送:{queued}", "governanceQueueMissing": "治理 dispatch 表尚未就緒;未解治理告警:{unresolved}", "knowledgeHealthcheck": "KM healthcheck 派工:{total};目前階段:{stage}", - "knowledgeOwner": "主責:{lead};受控覆核:{human}", + "knowledgeOwner": "主責:{lead};AI 受控覆核:{human}", "knowledgeNext": "下一步:{action}", - "knowledgeDrafts": "KM 審核草稿:{drafts};重複草稿:{duplicates}", + "knowledgeDrafts": "KM 受控覆核草稿:{drafts};重複草稿:{duplicates}", "knowledgeStaleCandidates": "陳舊 KM 優先清單:{total} 筆;最高 {top} / {tier}", "knowledgeCompletionQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", "knowledgeCompletionLatest": "最新 completion:{entry} / {readiness};下一步 {next}", @@ -9546,10 +9546,10 @@ }, "knowledgeGovernance": { "title": "KM 健康檢查派工", - "subtitle": "追蹤 knowledge_degradation 從偵測、Hermes 反查、草稿、owner 審核到 stale ratio 回測的狀態", + "subtitle": "追蹤 knowledge_degradation 從偵測、Hermes 反查、草稿、AI 受控覆核到 stale ratio 回測的狀態", "total": "總數 {count}", "active": "執行中 {count}", - "review": "需審核 {count}", + "review": "待受控覆核 {count}", "drafts": "草稿 {count}", "duplicates": "重複 {count}", "unavailable": "governance queue API 尚未回應,不能判定 KM healthcheck 是否已派工。", @@ -9562,14 +9562,14 @@ "support": "支援:{agents}", "worker": "Worker 狀態:{status}", "draft": "KM 草稿:{id}", - "duplicateWarning": "同事件另有 {count} 份重複草稿;新 worker 已改用 governance_event 去重,舊資料需 owner 合併或封存。", + "duplicateWarning": "同事件另有 {count} 份重複草稿;新 worker 已改用 governance_event 去重,舊資料需 AI 受控合併或封存。", "draftsUnavailable": "knowledge API 尚未回應,暫時無法確認 KM 草稿與重複草稿數。", "draftsEmpty": "目前沒有 Hermes KM healthcheck review 草稿。", "draftSectionTitle": "KM 草稿去重視圖", "draftGroup": "同事件草稿 {count} 份;重複 {duplicates} 份", "archiveProposal": "封存候選:{count} 份重複草稿", "ownerAction": "Owner 動作:{action}", - "readOnlyPlan": "讀取不寫入:{writes};未審核不封存:{blocked}", + "readOnlyPlan": "讀取不寫入:{writes};未完成受控覆核不封存:{blocked}", "staleCandidates": { "title": "陳舊 KM 優先處理清單", "total": "陳舊 {count}", @@ -9583,10 +9583,10 @@ "refs": "Incident:{incident};PlayBook:{playbook};Approval:{approval}", "noSources": "尚無 Incident / Sentry / SigNoz / PlayBook 關聯", "openKnowledge": "開啟 KM", - "queueReview": "排入審核", + "queueReview": "排入 AI 受控覆核", "queueingReview": "排入中", "queueFailed": "排入 AI 受控 review 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", - "queueResult": "審核狀態:{status};Dispatch:{dispatch};Event:{event}", + "queueResult": "受控覆核狀態:{status};Dispatch:{dispatch};Event:{event}", "ownerReviewState": "Controlled review:{status};階段:{stage};Dispatch:{dispatch}", "guardrail": "防護:讀取不寫入={writes};受控覆核={review}", "queueStatuses": { @@ -9596,12 +9596,12 @@ }, "operationRail": { "title": "Controlled Review 操作軌道", - "subtitle": "把陳舊 KM 從偵測、審核、乾跑、確認、寫回到比例回測收斂成一條可掃描流程。", + "subtitle": "把陳舊 KM 從偵測、AI 受控覆核、乾跑、確認、寫回到比例回測收斂成一條可掃描流程。", "nextAction": "建議下一步", "guardrailTitle": "寫入防護", "metric": { "ratio": "陳舊比例", - "pending": "待審核", + "pending": "待受控覆核", "completed": "已完成", "remaining": "距門檻", "threshold": "門檻 {threshold}", @@ -9627,7 +9627,7 @@ }, "detail": { "detected": "目前 {ratio};門檻 {threshold}", - "ownerReview": "{count} 筆等待 owner 審核", + "ownerReview": "{count} 筆等待 AI 受控覆核", "dryRun": "{ready} 筆可乾跑;{blocked} 筆卡住", "ownerConfirm": "確認後才允許寫回,避免 AI 固化錯誤知識", "writeback": "{count} 筆已有 completion audit", @@ -9636,18 +9636,18 @@ }, "next": { "waitData": "等待治理資料回填", - "clearBlocked": "先處理 blocked owner-review", + "clearBlocked": "先處理 blocked 受控覆核", "previewReady": "先對 ready item 做單筆乾跑", - "waitOwner": "等待 owner 補齊審核內容", - "queueReview": "先把高優先陳舊 KM 排入審核", - "stable": "目前沒有待處理 owner-review" + "waitOwner": "等待 AI 補齊覆核內容", + "queueReview": "先把高優先陳舊 KM 排入 AI 受控覆核", + "stable": "目前沒有待處理受控覆核" }, "nextDetail": { "waitData": "completion queue 尚未回應;先刷新或檢查 API 狀態。", "clearBlocked": "blocked item 需要先補 owner note、dispatch或必要欄位。", "previewReady": "先按單筆乾跑取得 plan fingerprint,再由 owner 確認寫回。", - "waitOwner": "已排入審核但還不能寫回;需要 owner 補內容或確認策略。", - "queueReview": "stale candidate 還沒進 owner-review;先用批次乾跑或單筆排入審核。", + "waitOwner": "已排入受控覆核但還不能寫回;需要 AI 補內容或確認策略。", + "queueReview": "stale candidate 還沒進 AI 受控覆核;先用批次乾跑或單筆排入覆核。", "stable": "目前 completion queue 沒有待處理項;持續看 stale ratio 是否低於門檻。" }, "guardrail": { @@ -9666,7 +9666,7 @@ "noBlockers": "卡點:無;可先做 乾跑預覽。", "writeGateDetail": "後端會拒絕缺 fingerprint或未 owner_approved的寫入;讀取與乾跑不會改 KM。", "step": { - "dispatch": "排入審核", + "dispatch": "排入受控覆核", "dryRun": "乾跑預覽", "confirm": "Owner 確認", "recheck": "比例回測" @@ -9690,10 +9690,10 @@ "ownerReviewInbox": { "title": "Controlled review 工作台", "subtitle": "顯示已排入 waiting_owner_review的 P0/P1 KM,逐筆乾跑與確認完成。", - "total": "待審 {count}", + "total": "待受控覆核 {count}", "returned": "顯示 {count}", - "unavailable": "owner-review inbox API 尚未回應;目前只能從候選清單逐筆操作。", - "empty": "目前沒有 pending owner-review KM。", + "unavailable": "受控覆核 inbox API 尚未回應;目前只能從候選清單逐筆操作。", + "empty": "目前沒有 pending 受控覆核 KM。", "meta": "陳舊 {days} 天;分數 {score};瀏覽 {views}", "state": "狀態:{status};階段:{stage}", "batch": "Batch:{batch}" @@ -9713,7 +9713,7 @@ "currentRatio": "目前陳舊比例", "currentCount": "陳舊 / 總數", "ownerReviews": "Controlled review", - "ownerReviewCounts": "待審 {pending} / 完成 {completed}", + "ownerReviewCounts": "待受控覆核 {pending} / 完成 {completed}", "latestDelta": "最新變化", "delta": "陳舊 {stale} / 比例 {ratio}", "auditTotal": "Completion audit {count}", @@ -9732,7 +9732,7 @@ "pending": "待處理 dispatch {count}", "guardrail": "讀取不寫入={writes};受控覆核={review};批次寫入={batch}", "unavailable": "completion queue API 尚未回應;目前只能從 AI 受控 review 工作台逐筆確認。", - "empty": "目前沒有 owner-review completion 工作項。", + "empty": "目前沒有受控覆核 completion 工作項。", "state": "分流:{readiness};階段:{stage}", "next": "下一步:{action};結果:{outcome}", "required": "需要欄位:{fields}", @@ -9763,7 +9763,7 @@ }, "batchActions": { "title": "批次處理 P0 / P1 陳舊 KM", - "subtitle": "先乾跑鎖定最新 P0 / P1候選,再批次建立 owner-review dispatch;不會直接寫入 KM。", + "subtitle": "先乾跑鎖定最新 P0 / P1 候選,再批次建立受控覆核 dispatch;不會直接寫入 KM。", "preview": "乾跑批次", "previewing": "乾跑中", "confirm": "批次排入", @@ -9771,19 +9771,19 @@ "previewFailed": "批次乾跑失敗;請重新整理後確認 stale candidates API 是否可用。", "confirmFailed": "批次排入失敗;後端可能偵測到候選清單或dispatch 狀態已變更。", "missingPreviewFingerprint": "缺少批次乾跑 plan fingerprint;請先重新執行乾跑。", - "summary": "候選 {candidates};將排入 {queued};已在審核 {already};略過 {skipped};寫 KM:{writesKm};寫稽核:{writesAudit}", + "summary": "候選 {candidates};將排入 {queued};已在受控覆核 {already};略過 {skipped};寫 KM:{writesKm};寫稽核:{writesAudit}", "planFingerprint": "Batch plan fingerprint:{fingerprint}", - "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在審核 {already};略過 {skipped}", + "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在受控覆核 {already};略過 {skipped}", "statuses": { "dry_run": "批次乾跑完成", "queued": "批次已排入 AI 受控 review", - "noop_already_queued": "全部已在審核或已處理", + "noop_already_queued": "全部已在受控覆核或已處理", "unknown": "批次狀態待確認" }, "itemStatuses": { "would_queue": "將排入", "queued": "已排入", - "already_queued": "已在審核", + "already_queued": "已在受控覆核", "skipped": "略過", "unknown": "待確認" } @@ -9795,7 +9795,7 @@ "confirming": "寫入中", "previewFailed": "乾跑預覽失敗;請重新整理後確認 AI 受控 review dispatch仍有效。", "confirmFailed": "確認完成失敗;後端可能偵測到 KM或dispatch 狀態已變更。", - "missingDispatch": "缺少 owner-review dispatch;請先排入審核。", + "missingDispatch": "缺少受控覆核 dispatch;請先排入 AI 受控覆核。", "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", "previewResult": "乾跑結果:{outcome};寫 KM:{writesKm};寫稽核:{writesAudit}", "planFingerprint": "Plan fingerprint:{fingerprint}", @@ -9803,7 +9803,7 @@ "snapshot": "目前 stale {stale} / total {total};ratio {ratio};門檻 {threshold}", "statuses": { "dry_run": "乾跑完成", - "completed": "審核完成", + "completed": "受控覆核完成", "already_completed": "已完成,無需重複處理", "unknown": "狀態待確認" }, @@ -9815,7 +9815,7 @@ }, "actions": { "refresh_with_evidence": "依 Incident / Sentry / SigNoz / PlayBook 證據刷新", - "owner_review": "交由 owner 審核內容", + "owner_review": "交由 AI 受控覆核內容", "archive_or_supersede": "封存或以新條目取代" }, "correlationSources": { @@ -9833,9 +9833,9 @@ "sentry_context": "含 Sentry 脈絡", "signoz_context": "含 SigNoz 脈絡", "anti_pattern_priority": "Anti-Pattern 優先", - "auto_runbook_review_needed": "自動 Runbook 待審", + "auto_runbook_review_needed": "自動 Runbook 待受控覆核", "ai_extracted_needs_owner_check": "AI 萃取需覆核", - "already_waiting_review": "已在審核狀態", + "already_waiting_review": "已在受控覆核狀態", "viewed_by_operator": "近期有人查看", "older_than_30_days": "超過 30 天", "stale_by_age": "超過陳舊門檻", @@ -9844,8 +9844,8 @@ }, "openEventHistory": "開啟事件歷史", "ownerActions": { - "owner_review_canonical_then_archive_duplicates": "審核 canonical 草稿後封存 duplicates", - "review_canonical_and_archive_duplicate_drafts": "審核 canonical 並封存重複草稿", + "owner_review_canonical_then_archive_duplicates": "受控覆核 canonical 草稿後封存 duplicates", + "review_canonical_and_archive_duplicate_drafts": "受控覆核 canonical 並封存重複草稿", "unknown": "待補 owner 動作" }, "archiveHistory": { @@ -9910,19 +9910,19 @@ "batch_owner_review_previewed": "批次 AI 受控 review 已乾跑", "batch_owner_review_queued": "批次已排入 AI 受控 review", "batch_noop_already_queued": "批次無需重複排入", - "waiting_owner_review": "等待 owner 審核", - "owner_updates_or_archives_km": "Owner 更新或封存 KM", - "km_writeback_after_approval": "審核後寫回 KM", - "km_archive_after_approval": "審核後封存 KM", - "km_supersede_after_approval": "審核後以新 KM 取代", + "waiting_owner_review": "等待 AI 受控覆核", + "owner_updates_or_archives_km": "AI 受控更新或封存 KM", + "km_writeback_after_approval": "覆核後寫回 KM", + "km_archive_after_approval": "覆核後封存 KM", + "km_supersede_after_approval": "覆核後以新 KM 取代", "stale_ratio_recheck": "回測 stale ratio", "owner_approved_duplicate_archive": "Owner 已批准封存重複草稿", - "km_duplicate_archive_after_owner_approval": "Owner 審核後封存重複草稿", + "km_duplicate_archive_after_owner_approval": "AI 受控覆核後封存重複草稿", "km_governance_rechecked": "KM 治理已回測", "km_governance_close_or_continue": "關閉或繼續治理", "needs_manual_km_triage": "需要 AI 整理 KM", "cancelled": "已取消", - "queued_for_review": "等待治理審核", + "queued_for_review": "等待治理受控覆核", "dispatched": "已派遣", "executing": "執行中", "completed": "已完成", @@ -10162,7 +10162,7 @@ "type": "PlayBook", "owner": "OpenClaw", "visibility": "Work Items:服務專屬步驟、trust policy、適用條件。", - "status": "待審核" + "status": "待受控覆核" }, "script": { "type": "Script / Ansible", @@ -10204,15 +10204,15 @@ }, "chainHint": "下方完整 status-chain 與 incident timeline 會用同一個 Incident 查詢;如果仍沒有資料,代表資料鏈路還沒把這筆告警完整串上。", "openRuns": "打開 Runs", - "openApprovals": "打開審批" + "openApprovals": "打開 AI 受控決策" }, "recurrence": { "title": "重複告警工作項", - "subtitle": "把 run_completed_no_repair、修復失敗與 AI 受控閘門接成可追蹤 work item", + "subtitle": "把 run_completed_no_repair、修復失敗與 AI 受控隊列接成可追蹤 work item", "open": "待處理 {count}", "automationGap": "無修復 {count}", "failed": "修復失敗 {count}", - "sourceReview": "來源待審 {count}", + "sourceReview": "來源待受控覆核 {count}", "sourceApplied": "已套用 {count}", "unavailable": "recurrence API 尚未回應,不能判定工作項狀態。", "empty": "近期重複告警沒有待處理工作項。", @@ -10227,8 +10227,8 @@ "detail": "參照={refs};Sentry={sentry};SigNoz={signoz};事件={event}", "statuses": { "applied": "已套用", - "reviewed": "審核已記錄", - "review": "待審核配對", + "reviewed": "覆核已記錄", + "review": "待受控覆核配對", "evidence": "來源證據已到", "provider": "供應者已接收", "waiting": "等待來源" @@ -10238,7 +10238,7 @@ "repair": "修復狀態:{status}", "reason": "原因:{reason}", "nextStep": "下一步:{step}", - "sourceReviewDecision": "來源審核:{decision} / {status}", + "sourceReviewDecision": "來源覆核:{decision} / {status}", "sourceApplyStatus": "來源套用:{status} / {event}", "openRun": "開啟 Run", "openRuns": "回 Run 監控", @@ -10263,7 +10263,7 @@ "writes": "寫入:incident={incident};autoRepair={autoRepair};ticket={ticket}", "sourceWrites": "來源事件回寫:{source}", "history": "試跑入庫:{recorded}", - "sourceReviewResult": "來源審核:{decision} / {status} / Incident {incident}", + "sourceReviewResult": "來源覆核:{decision} / {status} / Incident {incident}", "sourceApplyResult": "來源配對套用:{status} / {event}", "handoffStatus": "交接:{kind} / {status}", "externalTicket": "外部 Ticket 建立:{created}", @@ -10325,7 +10325,7 @@ "auto_repair_succeeded_unverified": "修復待驗證", "auto_repair_failed": "修復失敗", "auto_repair_recorded": "修復已記錄", - "manual_gate": "需 AI 受控閘門", + "manual_gate": "需 AI 受控隊列", "investigating": "調查中", "run_completed_no_repair": "Run 完成無修復", "source_correlation_review": "來源證據待配對", @@ -10358,7 +10358,7 @@ "review_approval": "處理審批", "wait_for_run_completion": "等待 Run 完成", "create_repair_ticket": "建立修復 Ticket", - "review_provider_source_match": "審核來源與Incident 配對", + "review_provider_source_match": "覆核來源與 Incident 配對", "verify_source_match_in_status_chain": "到狀態鏈驗證來源配對", "verify_source_link_in_status_chain": "到狀態鏈驗證來源連結事件", "monitor_for_new_provider_evidence": "等待新的 Provider 證據", @@ -10417,7 +10417,7 @@ "mcpCount": "MCP 調查 {count} 次", "route": "MCP:{route}", "emptyShort": "尚未連到 AI 證據", - "manualGate": "下一步:AI 受控審批", + "manualGate": "下一步:AI 受控決策", "filters": { "label": "AI 證據篩選", "all": "所有 AI 證據", @@ -10451,8 +10451,8 @@ "mcpObservedDetail": "列表已連到 MCP / 自建 MCP 調查證據", "readOnly": "只讀試跑", "readOnlyDetail": "最新證據顯示 AI 已試跑且未寫狀態", - "manualGate": "AI 受控閘門", - "manualGateDetail": "AI 已停在 controlled gate,需 policy / verifier / approve 判定", + "manualGate": "AI 受控隊列", + "manualGateDetail": "AI 已停在 controlled gate,需 policy / verifier / controlled apply 判定", "writeObserved": "寫入旗標", "writeObservedDetail": "需確認是否為預期自動修復結果", "callbackObserved": "TG Callback", @@ -10505,7 +10505,7 @@ "duplicates": "重複事件", "linkedRuns": "已連 Run", "autoRepair": "自動修復", - "sourceReview": "來源待審", + "sourceReview": "來源待覆核", "openWorkItems": "待處理項" }, "details": { @@ -10515,13 +10515,13 @@ "limit": "最近 {count} 筆視窗", "verifiedRepair": "{count} 組已驗證修復", "sourceReview": "{count} 組 Sentry / SignOz 來源需 AI 輔助配對", - "manualGates": "{count} 組 AI 受控閘門" + "manualGates": "{count} 組 AI 受控隊列" }, "states": { "pending": "待執行", "running": "執行中", "waiting_tool": "等待工具", - "waiting_approval": "等待審批", + "waiting_approval": "等待 AI 受控決策", "completed": "已完成", "failed": "失敗", "cancelled": "已取消", @@ -10534,7 +10534,7 @@ "auto_repair_succeeded_unverified": "修復待驗證", "auto_repair_failed": "修復失敗", "auto_repair_recorded": "修復已記錄", - "manual_gate": "需 AI 受控閘門", + "manual_gate": "需 AI 受控隊列", "investigating": "調查中", "run_completed_no_repair": "Run 完成無修復", "source_correlation_review": "來源證據待配對", @@ -10715,7 +10715,7 @@ "title": "KM Controlled Review", "status": "狀態:{status}", "counts": "ready {ready} / blocked {blocked} / completed {completed} / failed {failed}", - "guardrail": "Guardrail:writes_on_read={writesOnRead};batch_writes_allowed={batchWrite};manual_review_required={manualReview}", + "guardrail": "受控邊界:writes_on_read={writesOnRead};batch_writes_allowed={batchWrite};controlled_review_required={manualReview}", "related": "{entryId} · {readiness} · {nextAction}", "noRelated": "本 Incident 尚未對到 controlled-review completion item。", "fetchFailed": "KM controlled-review 摘要讀取失敗:{reason}", @@ -11083,7 +11083,7 @@ "learning": "KM / 學習", "learningValue": "KM {km};自動修復 {autoRepair}", "learningDetail": "驗證={verification};下一步={nextStep}", - "handoff": "人工 / 下一步", + "handoff": "AI 受控 / 下一步", "handoffDetail": "原因={reason};下一步={nextAction}" }, "source": { @@ -11110,7 +11110,7 @@ "status": { "ready": "已接收", "waiting": "等待資料", - "needsReview": "待審核", + "needsReview": "待受控覆核", "applied": "已套用" } }, @@ -11643,7 +11643,7 @@ "actions": { "repair_alert_intake_or_outbound_mirror": "修復告警入庫或出站鏡像", "route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway 與證據收集器", - "resolve_pending_or_expired_human_gate": "處理待處理 / 已過期 AI 受控閘門", + "resolve_pending_or_expired_human_gate": "處理待處理 / 已過期 AI 受控隊列", "record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成 AI 補齊無動作", "write_auto_repair_execution_or_blocker_reason": "寫入自動修復執行或阻塞原因", "run_post_execution_verification": "執行事後驗證並保存結果", @@ -11673,7 +11673,7 @@ }, "runRefs": { "mirrorRunState": "AwoooP 執行監控可以理解資安鏡像,但只能當只讀候選。", - "readOnlyDryRun": "若未來產生試跑證據,也必須維持只讀與 AI 受控閘門語義。", + "readOnlyDryRun": "若未來產生試跑證據,也必須維持只讀與 AI 受控隊列語義。", "ownerResponse": "負責人回覆已收到 / 已接受仍為 0,任何執行進一步行動都要等待負責人脫敏證據收件。", "activeGates": "主動執行期閘門仍為 0,不從執行監控頁開閘門或建立動作按鈕。" } @@ -11854,7 +11854,7 @@ "title": "審批佇列", "urgentCount": "{count} 緊急", "loading": "載入中...", - "pendingRefresh": "{count} 筆待審 · 上次更新 {time}", + "pendingRefresh": "{count} 筆 AI 受控列 · 上次更新 {time}", "autoRefresh": "每 10 秒自動刷新", "refreshNow": "立即刷新", "loadFailed": "無法載入審批資料", @@ -11935,7 +11935,7 @@ "blocked": "有卡點需 AI 補齊", "degraded": "資料載入需復核", "watching": "等待 AI 受控決策", - "clear": "目前無待審" + "clear": "目前無待受控決策" }, "status": { "loading": "資料刷新", @@ -12009,7 +12009,7 @@ } }, "badges": { - "humanGate": "AI 受控閘門", + "humanGate": "AI 受控隊列", "gate5Projection": "Gate 5 投影", "executorHandoffPending": "等待 executor handoff" }, @@ -12044,7 +12044,7 @@ }, "empty": { "title": "審批佇列為空", - "subtitle": "目前沒有待審批的執行項目" + "subtitle": "目前沒有等待 AI 受控決策的執行項目" }, "incidentFocus": { "title": "焦點 Incident 審批真相鏈", @@ -12058,7 +12058,7 @@ "flowTitle": "處理流程", "handoffTitle": "審批與 AI 受控接手", "timelineEmpty": "尚未取得 Incident timeline。", - "linkedExplanation": "此 Incident 已有 批准 / timeline 關聯;若下方待審清單為空,代表它可能已完成、過期、拒絕,或已轉成驗證後 AI 補齊接手。", + "linkedExplanation": "此 Incident 已有受控決策 / timeline 關聯;若下方 AI 受控清單為空,代表它可能已完成、過期、拒絕,或已轉成 verifier / rollback / AI 補齊。", "unlinkedExplanation": "目前沒有對應 批准 id;這代表此 Incident不是等待批准的狀態,應從 Work Items / Runs 追下一步。", "needsHuman": { "yes": "需要 AI 補齊", @@ -12073,7 +12073,7 @@ }, "handoff": { "approvalIds": "Approval IDs", - "pendingRows": "待審列", + "pendingRows": "AI 受控列", "pendingRowsValue": "AwoooP {platform} / Legacy {legacy}", "nextAction": "下一步", "reason": "原因" @@ -12408,7 +12408,7 @@ }, "observe": { "title": "觀察中", - "detail": "目前尚未進入 AI 受控閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "detail": "目前尚未進入 AI 受控隊列或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", "primary": "回執行監控" }, "evidence": { @@ -12490,7 +12490,7 @@ "success": "成功", "timeout": "已超時", "warning": "警告", - "waitingApproval": "等待審批" + "waitingApproval": "等待 AI 受控決策" } }, "approvalDecision": { @@ -12620,7 +12620,7 @@ "runId": "執行 ID:", "approve": { "title": "確認核准", - "body": "核准後,執行會從 AI 受控閘門恢復,繼續交由 Runtime / MCP 閘道 執行。", + "body": "受控決策通過後,執行會從 AI 受控隊列恢復,繼續交由 Runtime / MCP 閘道執行。", "warning": "此決策會寫入執行狀態、批准 token與稽核軌跡。", "confirm": "確認核准" }, @@ -12802,7 +12802,7 @@ }, "observe": { "title": "觀察中", - "detail": "目前尚未進入 AI 受控閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "detail": "目前尚未進入 AI 受控隊列或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", "primary": "回 Run 監控" }, "evidence": { @@ -12832,7 +12832,7 @@ "success": "成功", "timeout": "已超時", "warning": "警告", - "waitingApproval": "等待審批" + "waitingApproval": "等待 AI 受控決策" } }, "approvalDecision": { @@ -12898,7 +12898,7 @@ "runId": "Run ID:", "approve": { "title": "確認核准", - "body": "核准後,執行會從 AI 受控閘門恢復執行,繼續交由 Runtime / MCP 閘道 執行。", + "body": "受控決策通過後,執行會從 AI 受控隊列恢復執行,繼續交由 Runtime / MCP 閘道執行。", "warning": "此決策會寫入 執行狀態、批准 token與稽核軌跡。", "confirm": "確認核准" }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index b7159dce..cde2db52 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -2229,7 +2229,7 @@ "quality": { "title": "資料品質軌道", "scope": "目前列表", - "reviewBacklog": "待審核", + "reviewBacklog": "待受控覆核", "freshWithin7d": "7 天內更新", "incidentLinked": "事故關聯", "signalRich": "訊號完整", @@ -2320,7 +2320,7 @@ "metric": { "staleRatio": "陳舊比例", "staleTotal": "陳舊 KM", - "ownerPending": "待審核", + "ownerPending": "待受控覆核", "readyBlocked": "可處理 / 阻塞", "completed": "已完成" }, @@ -2630,7 +2630,7 @@ "dispositions": "處置紀錄", "auto": "AI / 冷啟動接手", "human": "AI 補齊處置", - "waiting": "待審核工作" + "waiting": "待受控覆核工作" }, "assets": { "title": "自動化資產沉澱", @@ -2641,12 +2641,12 @@ "agentsDetail": "OpenClaw、Hermes、NemoTron 工作量。", "workload": "工作完成", "workloadDetail": "已完成 / 總工作量。", - "waiting": "待審核", + "waiting": "待受控覆核", "waitingDetail": "未過 allowlist / check-mode / verifier 的工作不能自動執行。" }, "agents": { "title": "AI Agent 分工與工作量", - "subtitle": "把每個 Agent 的角色、完成量、待審核與 live runtime 計數放在同一列,避免只看到泛泛的 AI 成效百分比。", + "subtitle": "把每個 Agent 的角色、完成量、待受控覆核與 live runtime 計數放在同一列,避免只看到泛泛的 AI 成效百分比。", "empty": "尚未讀到 Agent 工作狀態" }, "chip": { @@ -2656,7 +2656,7 @@ "sourceReady": "來源 {ok}/{total}", "live": "live {count}", "workDone": "工作 {done}/{total}", - "approval": "待審核 {count}" + "approval": "待受控覆核 {count}" } }, "apm": { @@ -2979,7 +2979,7 @@ "ragConf": "RAG 信心", "execSuccess": "執行成功", "avgDuration": "平均耗時", - "pendingApproval": "待審核", + "pendingApproval": "待受控覆核", "alertRadar": "告警雷達", "chainTitle": "神經傳導路徑", "nodeDone": "完成", @@ -2991,7 +2991,7 @@ "kpiTotalExec": "總執行次數", "kpiPlaybooks": "Playbooks", "kpiAvgDuration": "平均修復時間", - "kpiPendingAppr": "待審核授權", + "kpiPendingAppr": "待受控覆核授權", "trendUp": "↑ {n}% 本週", "trendDown": "↓ {n}s 本週", "schemeBreakdown": "執行路徑分佈", @@ -3021,7 +3021,7 @@ "noHistory": "尚無修復紀錄", "noActiveAlerts": "目前無活躍告警", "noPlaybooks": "尚無 Playbook 紀錄", - "noApprovals": "目前無待審核項目", + "noApprovals": "目前無待受控覆核項目", "noApprovalsDesc": "所有授權請求已處理完畢", "chainAlert": "告警觸發", "chainRAG": "OpenClaw RAG 診斷", @@ -3037,7 +3037,7 @@ "relatedServices": "相關服務", "dataImpact": "資料影響", "dryRunChecks": "Dry-Run 檢查", - "approvalQueueCount": "共 {count} 個待審核項目", + "approvalQueueCount": "共 {count} 個待受控覆核項目", "dispositionBreakdown": "告警處置分佈", "dispositionAuto": "自動修復", "dispositionHuman": "人工審核", @@ -5991,7 +5991,7 @@ "agents": "Agent 數", "workload": "工作量", "done": "已完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "recommendations": "AI 建議", "approval": "需審核", "autoEnabled": "自動執行", @@ -6013,12 +6013,12 @@ "liveDelivery": "實發 {count}", "workUnits": "工作單位 {count}", "doneRatio": "完成比例", - "doneDetail": "{done}/{total} 已完成;{approval} 待審核", + "doneDetail": "{done}/{total} 已完成;{approval} 待受控覆核", "targets": "佈建目標 {count}", "capabilities": "可委派能力 {count}", "reportSections": "報告章節 {count}", "ownedRecommendations": "分析建議 {count}", - "waitingApproval": "待審核 {count}", + "waitingApproval": "待受控覆核 {count}", "liveRuntime": "24h runtime 作業 {count}", "approvalRequired": "需審核: {value}" }, @@ -6041,7 +6041,7 @@ "heroMetrics": { "visibleReports": "報告可見", "workload": "工作量完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "liveTelegram": "live Telegram", "liveOptimization": "live 優化" }, @@ -6050,7 +6050,7 @@ "reportDetail": "章節 {sections};圖表 {charts};工作量 {work};live {live}", "nextGate": "下一關:{gate}", "agentWorkload": "工作量完成", - "agentDetail": "{done}/{total} 已完成;{approval} 待審核;24h live {live}" + "agentDetail": "{done}/{total} 已完成;{approval} 待受控覆核;24h live {live}" }, "truthTitle": "報告完成狀態", "boundaryTitle": "live 啟用邊界", @@ -6061,7 +6061,7 @@ "charts": "圖表", "workload": "工作量", "done": "已完成", - "waitingApproval": "待審核", + "waitingApproval": "待受控覆核", "liveDelivery": "live 發送", "liveOptimization": "live 優化" }, @@ -6082,7 +6082,7 @@ "completion": "完成度", "reportDetail": "章節 {sections};圖表 {charts};工作量 {work};live {live}", "workDone": "工作完成", - "agentDetail": "{done}/{total} 已完成;{approval} 待審核;24h live {live}", + "agentDetail": "{done}/{total} 已完成;{approval} 待受控覆核;24h live {live}", "sections": "報告章節 {count}", "recommendations": "分析建議 {count}" }, @@ -8592,10 +8592,10 @@ "linkedRuns": "Run 連結", "linkedRunsDetail": "未連結事件:{unlinked}", "openWork": "待處理工作", - "openWorkDetail": "無修復 {gap} / controlled gate {manual} / 修復失敗 {failed}", + "openWorkDetail": "無修復 {gap} / AI 受控佇列 {manual} / 修復失敗 {failed}", "sourceDecision": "來源決策", - "sourceDecisionNone": "無待審", - "sourceDecisionDetail": "已記錄審核:{recorded}", + "sourceDecisionNone": "無待受控覆核", + "sourceDecisionDetail": "已記錄受控覆核:{recorded}", "latest": "最新事件", "latestDetail": "共 {groups} 個 recurrence group" }, @@ -8614,8 +8614,8 @@ "runsDetail": "未連結事件:{unlinked}", "approvals": "檢查 controlled gate", "approvalsDetail": "{count} 個 controlled gate 待 AI policy / verifier 判定", - "sourceReviews": "審核來源配對", - "sourceReviewsDetail": "{count} 個 來源 review 待決策" + "sourceReviews": "覆核來源配對", + "sourceReviewsDetail": "{count} 個來源待 AI 受控覆核" } }, "visualOps": { @@ -8655,7 +8655,7 @@ }, "workItems": { "label": "工作項", - "detail": "把 manual/no-action 轉成 owner SOP rail。" + "detail": "把 no-action / AI 受控 hold 轉成 SOP rail。" }, "approvals": { "label": "批准", @@ -8738,7 +8738,7 @@ "executionUnverified": "已執行但未驗證", "executionFailed": "執行失敗", "manualRequiredNoAction": "AI 受控補齊:NO_ACTION", - "approvalRequired": "等待審批", + "approvalRequired": "等待 AI 受控決策", "observedNotExecuted": "已觀測但未執行", "receivedOnly": "僅收到告警" }, @@ -8767,7 +8767,7 @@ "tenantsDetail": "{active} 個啟用,{shadow} 個 shadow", "runs": "操作執行紀錄", "runsDetail": "執行狀態 是非同步任務的唯一觀測入口", - "approvals": "待審批", + "approvals": "AI 受控決策", "approvalsDetail": "低 / 中 / 高風險動作進受控閘門;critical / break-glass 才停在硬阻擋", "contracts": "合約", "contractsDetail": "專案 / 代理 / Policy contract 發布狀態" @@ -8781,7 +8781,7 @@ "route": "流向:Run 監控 / 事件詳情" }, "approval": { - "title": "AI 受控閘門", + "title": "AI 受控隊列", "signal": "低 / 中 / 高風險待 AI policy / verifier 判定", "owner": "負責:AI policy + SRE break-glass reviewer", "route": "流向:審批佇列" @@ -8815,7 +8815,7 @@ "next": { "title": "下一步操作", "item1": "查看 Run 監控與provider fallback", - "item2": "處理等待審批的高風險操作", + "item2": "處理等待 AI 受控決策的高風險操作", "item3": "審查 Contract lifecycle", "item4": "查看 AwoooP 工作鏈路地圖" }, @@ -9053,7 +9053,7 @@ "label": "一眼判讀", "blocked": { "title": "目前仍有 AI 受控卡點,不能宣稱全自動閉環", - "detail": "先看阻塞工作項與 AI 受控閘門,再補 PlayBook、Verifier、rollback 與 controlled review。" + "detail": "先看阻塞工作項與 AI 受控佇列,再補 PlayBook、Verifier、rollback 與受控覆核。" }, "inProgress": { "title": "自動化資產正在補齊,仍需追蹤候選品質", @@ -9078,8 +9078,8 @@ "detail": "待處理、缺口與失敗修復" }, "owner": { - "title": "接手", - "detail": "AI 受控閘門與受控 review" + "title": "受控處置", + "detail": "AI 受控佇列與受控覆核" }, "verifier": { "title": "驗證", @@ -9089,7 +9089,7 @@ "cards": { "blockers": { "title": "阻塞與 AI 受控隊列", - "detail": "阻塞工作項 {workItems};AI 受控閘門 {manual};資產阻塞 {assets}。", + "detail": "阻塞工作項 {workItems};AI 受控佇列 {manual};資產阻塞 {assets}。", "action": "查看工作項" }, "candidates": { @@ -9103,9 +9103,9 @@ "action": "查看總帳" }, "owners": { - "title": "負責人接手", - "detail": "AI 受控閘門 {manual};來源審查 {source};已記錄 {recorded}。", - "action": "查看審查" + "title": "AI 受控處置", + "detail": "AI 受控佇列 {manual};來源覆核 {source};已記錄 {recorded}。", + "action": "查看覆核" } } }, @@ -9118,7 +9118,7 @@ "blockedLabel": "卡點 {count}", "nextAction": "下一步:{value}", "metrics": { - "manual": "AI 受控閘門", + "manual": "AI 受控佇列", "gap": "自動化缺口", "verified": "已驗證修復", "runtime": "Runtime gate" @@ -9185,7 +9185,7 @@ }, "km": { "title": "KM", - "detail": "草稿、審核、回測" + "detail": "草稿、AI 受控覆核、回測" }, "playbook": { "title": "PlayBook", @@ -9208,7 +9208,7 @@ }, "playbook": { "title": "PlayBook", - "detail": "OpenClaw 修復候選、服務專屬策略、trust 與 AI 受控閘門。", + "detail": "OpenClaw 修復候選、服務專屬策略、trust 與 AI 受控隊列。", "next": "下一步:把通用兜底改成服務專屬 PlayBook,補 rollback 與適用條件。" }, "script": { @@ -9370,17 +9370,17 @@ "gates": { "sourceDossier": "入站告警必須能查到 received / incident_linked / 來源 refs", "autoRepair": "必須同時有 auto_repair、verification_result=success與KM 回寫", - "recurrenceWorkItems": "Run 完成無修復、修復失敗與 AI 受控閘門必須進入可追蹤工作項", + "recurrenceWorkItems": "Run 完成無修復、修復失敗與 AI 受控佇列必須進入可追蹤工作項", "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook候選與是否可自動修復", "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程無發送與 AI 受控 review;不得把全 0 當健康或自動執行授權", "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", "remediationQueue": "每筆 degraded / failed / timeout都必須映射到重跑、重驗、Ticket或 AI 受控檢查", "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL或舊快照", - "callbackOwnerReview": "Telegram 詳情 / 歷史若未連到 KM owner-review,必須變成可追蹤工作項", + "callbackOwnerReview": "Telegram 詳情 / 歷史若未連到 KM 受控覆核,必須變成可追蹤工作項", "callbackTraceRecoveryBacklog": "Callback trace 缺口必須顯示復原訊號、24h decay與backlog 下一步", "ciSecretHygiene": "workflow不可再把 機密設定 掛在 step env / action input;歷史 log 需另做輪換與保留期治理", "governanceDispatch": "治理告警必須進 dispatch,並標示 skipped / pending / repaired", - "knowledgeHealthcheck": "knowledge_degradation 必須顯示 Hermes / OpenClaw / ElephantAlpha 分工、目前階段與owner 審核點", + "knowledgeHealthcheck": "knowledge_degradation 必須顯示 Hermes / OpenClaw / ElephantAlpha 分工、目前階段與 AI 受控覆核點", "frontendConsole": "已完成與推進中的工作必須能從前端直接追蹤", "mcpGateway": "MCP 使用必須看得到 agent、tool、scope與blocked 原因", "timelineContract": "Incident、Approval、Evidence、KM、時間線不得互相矛盾", @@ -9391,10 +9391,10 @@ "evidence": { "channelEvents": "最近 Alertmanager 通道事件:{count}", "autoRepair": "已驗證自動修復:{verified}/{evaluated}", - "recurrenceWorkItems": "重複告警待處理:{open};無修復:{gap};修復失敗:{failed};AI 受控閘門:{manual};來源待審:{source}", + "recurrenceWorkItems": "重複告警待處理:{open};無修復:{gap};修復失敗:{failed};AI 受控佇列:{manual};來源待覆核:{source}", "recurrenceLatest": "最新:{alert} / {incident}", "recurrenceReason": "原因:{reason}", - "recurrenceSourceReviewRecorded": "來源審核已寫入歷史:{count}", + "recurrenceSourceReviewRecorded": "來源覆核已寫入歷史:{count}", "recurrenceSourceApplied": "來源配對已套用:{count}", "recurrenceEmpty": "近期重複告警尚無待處理工作項", "aiRouteRepairWorkItem": "AI route:{lane};目前 {selected};目標 {target};阻塞 {blockers} 項", @@ -9431,7 +9431,7 @@ "remediationQueue": "補救工作:{total};AI可接手:{ready};AI補齊:{human}", "telegramCallbacks": "目前修補 Telegram callback 查詢鏈與歷史摘要", "telegramCallbacksLive": "只讀 callback toast 400 已非致命;詳情 / 歷史改由 DB 真相鏈 回覆", - "callbackOwnerReview": "Callback owner-review 缺口:{open} 個 open;callback evidence:{total}", + "callbackOwnerReview": "Callback 受控覆核缺口:{open} 個 open;callback evidence:{total}", "callbackOwnerReviewLatest": "最新:{incident} / {action}", "callbackOwnerReviewQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", "callbackOwnerReviewNext": "下一步:{next}", @@ -9453,9 +9453,9 @@ "governanceUnavailable": "治理事件 API 目前無法回應;待派送:{queued}", "governanceQueueMissing": "治理 dispatch 表尚未就緒;未解治理告警:{unresolved}", "knowledgeHealthcheck": "KM healthcheck 派工:{total};目前階段:{stage}", - "knowledgeOwner": "主責:{lead};受控覆核:{human}", + "knowledgeOwner": "主責:{lead};AI 受控覆核:{human}", "knowledgeNext": "下一步:{action}", - "knowledgeDrafts": "KM 審核草稿:{drafts};重複草稿:{duplicates}", + "knowledgeDrafts": "KM 受控覆核草稿:{drafts};重複草稿:{duplicates}", "knowledgeStaleCandidates": "陳舊 KM 優先清單:{total} 筆;最高 {top} / {tier}", "knowledgeCompletionQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", "knowledgeCompletionLatest": "最新 completion:{entry} / {readiness};下一步 {next}", @@ -9546,10 +9546,10 @@ }, "knowledgeGovernance": { "title": "KM 健康檢查派工", - "subtitle": "追蹤 knowledge_degradation 從偵測、Hermes 反查、草稿、owner 審核到 stale ratio 回測的狀態", + "subtitle": "追蹤 knowledge_degradation 從偵測、Hermes 反查、草稿、AI 受控覆核到 stale ratio 回測的狀態", "total": "總數 {count}", "active": "執行中 {count}", - "review": "需審核 {count}", + "review": "待受控覆核 {count}", "drafts": "草稿 {count}", "duplicates": "重複 {count}", "unavailable": "governance queue API 尚未回應,不能判定 KM healthcheck 是否已派工。", @@ -9562,14 +9562,14 @@ "support": "支援:{agents}", "worker": "Worker 狀態:{status}", "draft": "KM 草稿:{id}", - "duplicateWarning": "同事件另有 {count} 份重複草稿;新 worker 已改用 governance_event 去重,舊資料需 owner 合併或封存。", + "duplicateWarning": "同事件另有 {count} 份重複草稿;新 worker 已改用 governance_event 去重,舊資料需 AI 受控合併或封存。", "draftsUnavailable": "knowledge API 尚未回應,暫時無法確認 KM 草稿與重複草稿數。", "draftsEmpty": "目前沒有 Hermes KM healthcheck review 草稿。", "draftSectionTitle": "KM 草稿去重視圖", "draftGroup": "同事件草稿 {count} 份;重複 {duplicates} 份", "archiveProposal": "封存候選:{count} 份重複草稿", "ownerAction": "Owner 動作:{action}", - "readOnlyPlan": "讀取不寫入:{writes};未審核不封存:{blocked}", + "readOnlyPlan": "讀取不寫入:{writes};未完成受控覆核不封存:{blocked}", "staleCandidates": { "title": "陳舊 KM 優先處理清單", "total": "陳舊 {count}", @@ -9583,10 +9583,10 @@ "refs": "Incident:{incident};PlayBook:{playbook};Approval:{approval}", "noSources": "尚無 Incident / Sentry / SigNoz / PlayBook 關聯", "openKnowledge": "開啟 KM", - "queueReview": "排入審核", + "queueReview": "排入 AI 受控覆核", "queueingReview": "排入中", "queueFailed": "排入 AI 受控 review 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", - "queueResult": "審核狀態:{status};Dispatch:{dispatch};Event:{event}", + "queueResult": "受控覆核狀態:{status};Dispatch:{dispatch};Event:{event}", "ownerReviewState": "Controlled review:{status};階段:{stage};Dispatch:{dispatch}", "guardrail": "防護:讀取不寫入={writes};受控覆核={review}", "queueStatuses": { @@ -9596,12 +9596,12 @@ }, "operationRail": { "title": "Controlled Review 操作軌道", - "subtitle": "把陳舊 KM 從偵測、審核、乾跑、確認、寫回到比例回測收斂成一條可掃描流程。", + "subtitle": "把陳舊 KM 從偵測、AI 受控覆核、乾跑、確認、寫回到比例回測收斂成一條可掃描流程。", "nextAction": "建議下一步", "guardrailTitle": "寫入防護", "metric": { "ratio": "陳舊比例", - "pending": "待審核", + "pending": "待受控覆核", "completed": "已完成", "remaining": "距門檻", "threshold": "門檻 {threshold}", @@ -9627,7 +9627,7 @@ }, "detail": { "detected": "目前 {ratio};門檻 {threshold}", - "ownerReview": "{count} 筆等待 owner 審核", + "ownerReview": "{count} 筆等待 AI 受控覆核", "dryRun": "{ready} 筆可乾跑;{blocked} 筆卡住", "ownerConfirm": "確認後才允許寫回,避免 AI 固化錯誤知識", "writeback": "{count} 筆已有 completion audit", @@ -9636,18 +9636,18 @@ }, "next": { "waitData": "等待治理資料回填", - "clearBlocked": "先處理 blocked owner-review", + "clearBlocked": "先處理 blocked 受控覆核", "previewReady": "先對 ready item 做單筆乾跑", - "waitOwner": "等待 owner 補齊審核內容", - "queueReview": "先把高優先陳舊 KM 排入審核", - "stable": "目前沒有待處理 owner-review" + "waitOwner": "等待 AI 補齊覆核內容", + "queueReview": "先把高優先陳舊 KM 排入 AI 受控覆核", + "stable": "目前沒有待處理受控覆核" }, "nextDetail": { "waitData": "completion queue 尚未回應;先刷新或檢查 API 狀態。", "clearBlocked": "blocked item 需要先補 owner note、dispatch或必要欄位。", "previewReady": "先按單筆乾跑取得 plan fingerprint,再由 owner 確認寫回。", - "waitOwner": "已排入審核但還不能寫回;需要 owner 補內容或確認策略。", - "queueReview": "stale candidate 還沒進 owner-review;先用批次乾跑或單筆排入審核。", + "waitOwner": "已排入受控覆核但還不能寫回;需要 AI 補內容或確認策略。", + "queueReview": "stale candidate 還沒進 AI 受控覆核;先用批次乾跑或單筆排入覆核。", "stable": "目前 completion queue 沒有待處理項;持續看 stale ratio 是否低於門檻。" }, "guardrail": { @@ -9666,7 +9666,7 @@ "noBlockers": "卡點:無;可先做 乾跑預覽。", "writeGateDetail": "後端會拒絕缺 fingerprint或未 owner_approved的寫入;讀取與乾跑不會改 KM。", "step": { - "dispatch": "排入審核", + "dispatch": "排入受控覆核", "dryRun": "乾跑預覽", "confirm": "Owner 確認", "recheck": "比例回測" @@ -9690,10 +9690,10 @@ "ownerReviewInbox": { "title": "Controlled review 工作台", "subtitle": "顯示已排入 waiting_owner_review的 P0/P1 KM,逐筆乾跑與確認完成。", - "total": "待審 {count}", + "total": "待受控覆核 {count}", "returned": "顯示 {count}", - "unavailable": "owner-review inbox API 尚未回應;目前只能從候選清單逐筆操作。", - "empty": "目前沒有 pending owner-review KM。", + "unavailable": "受控覆核 inbox API 尚未回應;目前只能從候選清單逐筆操作。", + "empty": "目前沒有 pending 受控覆核 KM。", "meta": "陳舊 {days} 天;分數 {score};瀏覽 {views}", "state": "狀態:{status};階段:{stage}", "batch": "Batch:{batch}" @@ -9713,7 +9713,7 @@ "currentRatio": "目前陳舊比例", "currentCount": "陳舊 / 總數", "ownerReviews": "Controlled review", - "ownerReviewCounts": "待審 {pending} / 完成 {completed}", + "ownerReviewCounts": "待受控覆核 {pending} / 完成 {completed}", "latestDelta": "最新變化", "delta": "陳舊 {stale} / 比例 {ratio}", "auditTotal": "Completion audit {count}", @@ -9732,7 +9732,7 @@ "pending": "待處理 dispatch {count}", "guardrail": "讀取不寫入={writes};受控覆核={review};批次寫入={batch}", "unavailable": "completion queue API 尚未回應;目前只能從 AI 受控 review 工作台逐筆確認。", - "empty": "目前沒有 owner-review completion 工作項。", + "empty": "目前沒有受控覆核 completion 工作項。", "state": "分流:{readiness};階段:{stage}", "next": "下一步:{action};結果:{outcome}", "required": "需要欄位:{fields}", @@ -9763,7 +9763,7 @@ }, "batchActions": { "title": "批次處理 P0 / P1 陳舊 KM", - "subtitle": "先乾跑鎖定最新 P0 / P1候選,再批次建立 owner-review dispatch;不會直接寫入 KM。", + "subtitle": "先乾跑鎖定最新 P0 / P1 候選,再批次建立受控覆核 dispatch;不會直接寫入 KM。", "preview": "乾跑批次", "previewing": "乾跑中", "confirm": "批次排入", @@ -9771,19 +9771,19 @@ "previewFailed": "批次乾跑失敗;請重新整理後確認 stale candidates API 是否可用。", "confirmFailed": "批次排入失敗;後端可能偵測到候選清單或dispatch 狀態已變更。", "missingPreviewFingerprint": "缺少批次乾跑 plan fingerprint;請先重新執行乾跑。", - "summary": "候選 {candidates};將排入 {queued};已在審核 {already};略過 {skipped};寫 KM:{writesKm};寫稽核:{writesAudit}", + "summary": "候選 {candidates};將排入 {queued};已在受控覆核 {already};略過 {skipped};寫 KM:{writesKm};寫稽核:{writesAudit}", "planFingerprint": "Batch plan fingerprint:{fingerprint}", - "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在審核 {already};略過 {skipped}", + "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在受控覆核 {already};略過 {skipped}", "statuses": { "dry_run": "批次乾跑完成", "queued": "批次已排入 AI 受控 review", - "noop_already_queued": "全部已在審核或已處理", + "noop_already_queued": "全部已在受控覆核或已處理", "unknown": "批次狀態待確認" }, "itemStatuses": { "would_queue": "將排入", "queued": "已排入", - "already_queued": "已在審核", + "already_queued": "已在受控覆核", "skipped": "略過", "unknown": "待確認" } @@ -9795,7 +9795,7 @@ "confirming": "寫入中", "previewFailed": "乾跑預覽失敗;請重新整理後確認 AI 受控 review dispatch仍有效。", "confirmFailed": "確認完成失敗;後端可能偵測到 KM或dispatch 狀態已變更。", - "missingDispatch": "缺少 owner-review dispatch;請先排入審核。", + "missingDispatch": "缺少受控覆核 dispatch;請先排入 AI 受控覆核。", "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", "previewResult": "乾跑結果:{outcome};寫 KM:{writesKm};寫稽核:{writesAudit}", "planFingerprint": "Plan fingerprint:{fingerprint}", @@ -9803,7 +9803,7 @@ "snapshot": "目前 stale {stale} / total {total};ratio {ratio};門檻 {threshold}", "statuses": { "dry_run": "乾跑完成", - "completed": "審核完成", + "completed": "受控覆核完成", "already_completed": "已完成,無需重複處理", "unknown": "狀態待確認" }, @@ -9815,7 +9815,7 @@ }, "actions": { "refresh_with_evidence": "依 Incident / Sentry / SigNoz / PlayBook 證據刷新", - "owner_review": "交由 owner 審核內容", + "owner_review": "交由 AI 受控覆核內容", "archive_or_supersede": "封存或以新條目取代" }, "correlationSources": { @@ -9833,9 +9833,9 @@ "sentry_context": "含 Sentry 脈絡", "signoz_context": "含 SigNoz 脈絡", "anti_pattern_priority": "Anti-Pattern 優先", - "auto_runbook_review_needed": "自動 Runbook 待審", + "auto_runbook_review_needed": "自動 Runbook 待受控覆核", "ai_extracted_needs_owner_check": "AI 萃取需覆核", - "already_waiting_review": "已在審核狀態", + "already_waiting_review": "已在受控覆核狀態", "viewed_by_operator": "近期有人查看", "older_than_30_days": "超過 30 天", "stale_by_age": "超過陳舊門檻", @@ -9844,8 +9844,8 @@ }, "openEventHistory": "開啟事件歷史", "ownerActions": { - "owner_review_canonical_then_archive_duplicates": "審核 canonical 草稿後封存 duplicates", - "review_canonical_and_archive_duplicate_drafts": "審核 canonical 並封存重複草稿", + "owner_review_canonical_then_archive_duplicates": "受控覆核 canonical 草稿後封存 duplicates", + "review_canonical_and_archive_duplicate_drafts": "受控覆核 canonical 並封存重複草稿", "unknown": "待補 owner 動作" }, "archiveHistory": { @@ -9910,19 +9910,19 @@ "batch_owner_review_previewed": "批次 AI 受控 review 已乾跑", "batch_owner_review_queued": "批次已排入 AI 受控 review", "batch_noop_already_queued": "批次無需重複排入", - "waiting_owner_review": "等待 owner 審核", - "owner_updates_or_archives_km": "Owner 更新或封存 KM", - "km_writeback_after_approval": "審核後寫回 KM", - "km_archive_after_approval": "審核後封存 KM", - "km_supersede_after_approval": "審核後以新 KM 取代", + "waiting_owner_review": "等待 AI 受控覆核", + "owner_updates_or_archives_km": "AI 受控更新或封存 KM", + "km_writeback_after_approval": "覆核後寫回 KM", + "km_archive_after_approval": "覆核後封存 KM", + "km_supersede_after_approval": "覆核後以新 KM 取代", "stale_ratio_recheck": "回測 stale ratio", "owner_approved_duplicate_archive": "Owner 已批准封存重複草稿", - "km_duplicate_archive_after_owner_approval": "Owner 審核後封存重複草稿", + "km_duplicate_archive_after_owner_approval": "AI 受控覆核後封存重複草稿", "km_governance_rechecked": "KM 治理已回測", "km_governance_close_or_continue": "關閉或繼續治理", "needs_manual_km_triage": "需要 AI 整理 KM", "cancelled": "已取消", - "queued_for_review": "等待治理審核", + "queued_for_review": "等待治理受控覆核", "dispatched": "已派遣", "executing": "執行中", "completed": "已完成", @@ -10162,7 +10162,7 @@ "type": "PlayBook", "owner": "OpenClaw", "visibility": "Work Items:服務專屬步驟、trust policy、適用條件。", - "status": "待審核" + "status": "待受控覆核" }, "script": { "type": "Script / Ansible", @@ -10204,15 +10204,15 @@ }, "chainHint": "下方完整 status-chain 與 incident timeline 會用同一個 Incident 查詢;如果仍沒有資料,代表資料鏈路還沒把這筆告警完整串上。", "openRuns": "打開 Runs", - "openApprovals": "打開審批" + "openApprovals": "打開 AI 受控決策" }, "recurrence": { "title": "重複告警工作項", - "subtitle": "把 run_completed_no_repair、修復失敗與 AI 受控閘門接成可追蹤 work item", + "subtitle": "把 run_completed_no_repair、修復失敗與 AI 受控隊列接成可追蹤 work item", "open": "待處理 {count}", "automationGap": "無修復 {count}", "failed": "修復失敗 {count}", - "sourceReview": "來源待審 {count}", + "sourceReview": "來源待受控覆核 {count}", "sourceApplied": "已套用 {count}", "unavailable": "recurrence API 尚未回應,不能判定工作項狀態。", "empty": "近期重複告警沒有待處理工作項。", @@ -10227,8 +10227,8 @@ "detail": "參照={refs};Sentry={sentry};SigNoz={signoz};事件={event}", "statuses": { "applied": "已套用", - "reviewed": "審核已記錄", - "review": "待審核配對", + "reviewed": "覆核已記錄", + "review": "待受控覆核配對", "evidence": "來源證據已到", "provider": "供應者已接收", "waiting": "等待來源" @@ -10238,7 +10238,7 @@ "repair": "修復狀態:{status}", "reason": "原因:{reason}", "nextStep": "下一步:{step}", - "sourceReviewDecision": "來源審核:{decision} / {status}", + "sourceReviewDecision": "來源覆核:{decision} / {status}", "sourceApplyStatus": "來源套用:{status} / {event}", "openRun": "開啟 Run", "openRuns": "回 Run 監控", @@ -10263,7 +10263,7 @@ "writes": "寫入:incident={incident};autoRepair={autoRepair};ticket={ticket}", "sourceWrites": "來源事件回寫:{source}", "history": "試跑入庫:{recorded}", - "sourceReviewResult": "來源審核:{decision} / {status} / Incident {incident}", + "sourceReviewResult": "來源覆核:{decision} / {status} / Incident {incident}", "sourceApplyResult": "來源配對套用:{status} / {event}", "handoffStatus": "交接:{kind} / {status}", "externalTicket": "外部 Ticket 建立:{created}", @@ -10325,7 +10325,7 @@ "auto_repair_succeeded_unverified": "修復待驗證", "auto_repair_failed": "修復失敗", "auto_repair_recorded": "修復已記錄", - "manual_gate": "需 AI 受控閘門", + "manual_gate": "需 AI 受控隊列", "investigating": "調查中", "run_completed_no_repair": "Run 完成無修復", "source_correlation_review": "來源證據待配對", @@ -10358,7 +10358,7 @@ "review_approval": "處理審批", "wait_for_run_completion": "等待 Run 完成", "create_repair_ticket": "建立修復 Ticket", - "review_provider_source_match": "審核來源與Incident 配對", + "review_provider_source_match": "覆核來源與 Incident 配對", "verify_source_match_in_status_chain": "到狀態鏈驗證來源配對", "verify_source_link_in_status_chain": "到狀態鏈驗證來源連結事件", "monitor_for_new_provider_evidence": "等待新的 Provider 證據", @@ -10417,7 +10417,7 @@ "mcpCount": "MCP 調查 {count} 次", "route": "MCP:{route}", "emptyShort": "尚未連到 AI 證據", - "manualGate": "下一步:AI 受控審批", + "manualGate": "下一步:AI 受控決策", "filters": { "label": "AI 證據篩選", "all": "所有 AI 證據", @@ -10451,8 +10451,8 @@ "mcpObservedDetail": "列表已連到 MCP / 自建 MCP 調查證據", "readOnly": "只讀試跑", "readOnlyDetail": "最新證據顯示 AI 已試跑且未寫狀態", - "manualGate": "AI 受控閘門", - "manualGateDetail": "AI 已停在 controlled gate,需 policy / verifier / approve 判定", + "manualGate": "AI 受控隊列", + "manualGateDetail": "AI 已停在 controlled gate,需 policy / verifier / controlled apply 判定", "writeObserved": "寫入旗標", "writeObservedDetail": "需確認是否為預期自動修復結果", "callbackObserved": "TG Callback", @@ -10505,7 +10505,7 @@ "duplicates": "重複事件", "linkedRuns": "已連 Run", "autoRepair": "自動修復", - "sourceReview": "來源待審", + "sourceReview": "來源待覆核", "openWorkItems": "待處理項" }, "details": { @@ -10515,13 +10515,13 @@ "limit": "最近 {count} 筆視窗", "verifiedRepair": "{count} 組已驗證修復", "sourceReview": "{count} 組 Sentry / SignOz 來源需 AI 輔助配對", - "manualGates": "{count} 組 AI 受控閘門" + "manualGates": "{count} 組 AI 受控隊列" }, "states": { "pending": "待執行", "running": "執行中", "waiting_tool": "等待工具", - "waiting_approval": "等待審批", + "waiting_approval": "等待 AI 受控決策", "completed": "已完成", "failed": "失敗", "cancelled": "已取消", @@ -10534,7 +10534,7 @@ "auto_repair_succeeded_unverified": "修復待驗證", "auto_repair_failed": "修復失敗", "auto_repair_recorded": "修復已記錄", - "manual_gate": "需 AI 受控閘門", + "manual_gate": "需 AI 受控隊列", "investigating": "調查中", "run_completed_no_repair": "Run 完成無修復", "source_correlation_review": "來源證據待配對", @@ -10715,7 +10715,7 @@ "title": "KM Controlled Review", "status": "狀態:{status}", "counts": "ready {ready} / blocked {blocked} / completed {completed} / failed {failed}", - "guardrail": "Guardrail:writes_on_read={writesOnRead};batch_writes_allowed={batchWrite};manual_review_required={manualReview}", + "guardrail": "受控邊界:writes_on_read={writesOnRead};batch_writes_allowed={batchWrite};controlled_review_required={manualReview}", "related": "{entryId} · {readiness} · {nextAction}", "noRelated": "本 Incident 尚未對到 controlled-review completion item。", "fetchFailed": "KM controlled-review 摘要讀取失敗:{reason}", @@ -11083,7 +11083,7 @@ "learning": "KM / 學習", "learningValue": "KM {km};自動修復 {autoRepair}", "learningDetail": "驗證={verification};下一步={nextStep}", - "handoff": "人工 / 下一步", + "handoff": "AI 受控 / 下一步", "handoffDetail": "原因={reason};下一步={nextAction}" }, "source": { @@ -11110,7 +11110,7 @@ "status": { "ready": "已接收", "waiting": "等待資料", - "needsReview": "待審核", + "needsReview": "待受控覆核", "applied": "已套用" } }, @@ -11643,7 +11643,7 @@ "actions": { "repair_alert_intake_or_outbound_mirror": "修復告警入庫或出站鏡像", "route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway 與證據收集器", - "resolve_pending_or_expired_human_gate": "處理待處理 / 已過期 AI 受控閘門", + "resolve_pending_or_expired_human_gate": "處理待處理 / 已過期 AI 受控隊列", "record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成 AI 補齊無動作", "write_auto_repair_execution_or_blocker_reason": "寫入自動修復執行或阻塞原因", "run_post_execution_verification": "執行事後驗證並保存結果", @@ -11673,7 +11673,7 @@ }, "runRefs": { "mirrorRunState": "AwoooP 執行監控可以理解資安鏡像,但只能當只讀候選。", - "readOnlyDryRun": "若未來產生試跑證據,也必須維持只讀與 AI 受控閘門語義。", + "readOnlyDryRun": "若未來產生試跑證據,也必須維持只讀與 AI 受控隊列語義。", "ownerResponse": "負責人回覆已收到 / 已接受仍為 0,任何執行進一步行動都要等待負責人脫敏證據收件。", "activeGates": "主動執行期閘門仍為 0,不從執行監控頁開閘門或建立動作按鈕。" } @@ -11854,7 +11854,7 @@ "title": "審批佇列", "urgentCount": "{count} 緊急", "loading": "載入中...", - "pendingRefresh": "{count} 筆待審 · 上次更新 {time}", + "pendingRefresh": "{count} 筆 AI 受控列 · 上次更新 {time}", "autoRefresh": "每 10 秒自動刷新", "refreshNow": "立即刷新", "loadFailed": "無法載入審批資料", @@ -11935,7 +11935,7 @@ "blocked": "有卡點需 AI 補齊", "degraded": "資料載入需復核", "watching": "等待 AI 受控決策", - "clear": "目前無待審" + "clear": "目前無待受控決策" }, "status": { "loading": "資料刷新", @@ -12009,7 +12009,7 @@ } }, "badges": { - "humanGate": "AI 受控閘門", + "humanGate": "AI 受控隊列", "gate5Projection": "Gate 5 投影", "executorHandoffPending": "等待 executor handoff" }, @@ -12044,7 +12044,7 @@ }, "empty": { "title": "審批佇列為空", - "subtitle": "目前沒有待審批的執行項目" + "subtitle": "目前沒有等待 AI 受控決策的執行項目" }, "incidentFocus": { "title": "焦點 Incident 審批真相鏈", @@ -12058,7 +12058,7 @@ "flowTitle": "處理流程", "handoffTitle": "審批與 AI 受控接手", "timelineEmpty": "尚未取得 Incident timeline。", - "linkedExplanation": "此 Incident 已有 批准 / timeline 關聯;若下方待審清單為空,代表它可能已完成、過期、拒絕,或已轉成驗證後 AI 補齊接手。", + "linkedExplanation": "此 Incident 已有受控決策 / timeline 關聯;若下方 AI 受控清單為空,代表它可能已完成、過期、拒絕,或已轉成 verifier / rollback / AI 補齊。", "unlinkedExplanation": "目前沒有對應 批准 id;這代表此 Incident不是等待批准的狀態,應從 Work Items / Runs 追下一步。", "needsHuman": { "yes": "需要 AI 補齊", @@ -12073,7 +12073,7 @@ }, "handoff": { "approvalIds": "Approval IDs", - "pendingRows": "待審列", + "pendingRows": "AI 受控列", "pendingRowsValue": "AwoooP {platform} / Legacy {legacy}", "nextAction": "下一步", "reason": "原因" @@ -12408,7 +12408,7 @@ }, "observe": { "title": "觀察中", - "detail": "目前尚未進入 AI 受控閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "detail": "目前尚未進入 AI 受控隊列或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", "primary": "回執行監控" }, "evidence": { @@ -12490,7 +12490,7 @@ "success": "成功", "timeout": "已超時", "warning": "警告", - "waitingApproval": "等待審批" + "waitingApproval": "等待 AI 受控決策" } }, "approvalDecision": { @@ -12620,7 +12620,7 @@ "runId": "執行 ID:", "approve": { "title": "確認核准", - "body": "核准後,執行會從 AI 受控閘門恢復,繼續交由 Runtime / MCP 閘道 執行。", + "body": "受控決策通過後,執行會從 AI 受控隊列恢復,繼續交由 Runtime / MCP 閘道執行。", "warning": "此決策會寫入執行狀態、批准 token與稽核軌跡。", "confirm": "確認核准" }, @@ -12802,7 +12802,7 @@ }, "observe": { "title": "觀察中", - "detail": "目前尚未進入 AI 受控閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "detail": "目前尚未進入 AI 受控隊列或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", "primary": "回 Run 監控" }, "evidence": { @@ -12832,7 +12832,7 @@ "success": "成功", "timeout": "已超時", "warning": "警告", - "waitingApproval": "等待審批" + "waitingApproval": "等待 AI 受控決策" } }, "approvalDecision": { @@ -12898,7 +12898,7 @@ "runId": "Run ID:", "approve": { "title": "確認核准", - "body": "核准後,執行會從 AI 受控閘門恢復執行,繼續交由 Runtime / MCP 閘道 執行。", + "body": "受控決策通過後,執行會從 AI 受控隊列恢復執行,繼續交由 Runtime / MCP 閘道執行。", "warning": "此決策會寫入 執行狀態、批准 token與稽核軌跡。", "confirm": "確認核准" }, diff --git a/apps/web/src/app/[locale]/awooop/runs/page.tsx b/apps/web/src/app/[locale]/awooop/runs/page.tsx index fb683f55..7a77c62c 100644 --- a/apps/web/src/app/[locale]/awooop/runs/page.tsx +++ b/apps/web/src/app/[locale]/awooop/runs/page.tsx @@ -729,7 +729,7 @@ const STATE_CONFIG: Record< border: "border-[#d9b36f]", }, waiting_approval: { - label: "等待審批", + label: "等待 AI 受控決策", bg: "bg-[#fff7e8]", text: "text-[#8a5a08]", border: "border-[#d9b36f]", @@ -771,7 +771,7 @@ const LANE_CONFIG: Record< > = { intake: { label: "排程入口", - detail: "等待 worker 接手", + detail: "等待 AI worker 接續", icon: ListChecks, className: "border-[#d8d3c7] bg-white text-[#5f5b52]", }, @@ -782,7 +782,7 @@ const LANE_CONFIG: Record< className: "border-[#9bb6d9] bg-[#eef5ff] text-[#1f5b9b]", }, approval: { - label: "AI 受控閘門", + label: "AI 受控隊列", detail: "等待 policy、check-mode 與 verifier 判定", icon: ShieldCheck, className: "border-[#d9b36f] bg-[#fff7e8] text-[#8a5a08]", diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index b6c8fedb..23369fbc 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -19,6 +19,23 @@ **下一步**: - 回到 ordered P0:重跑 all-host cold-start / SLO scorecard;110 仍是 `harbor_110_remote_ssh_publickey_auth_stalled` + Harbor / registry `502` 主 blocker,若 110 SSH/control path 恢復,第一動作仍是套用新版 systemd exporter 或暫停舊 exporter,再回讀 systemd/logind、Gitea CPU 與 load5/core。 +## 2026-07-01 — 13:35 AwoooP 可見文案改為 AI 受控決策 / 受控隊列 + +**照主線修正的問題**: +- `/zh-TW/awooop/approvals`、Runs、Work Items 與 Alerts redirect 相關 AwoooP 可見文字仍混用「待審批、等待審批、AI 受控閘門、人工 / 下一步、負責人接手」等舊 HITL 語意。 +- 本次只改可見 copy 與 AwoooP Runs hardcoded status label:低 / 中 / 高風險流程改成 `AI 受控決策`、`AI 受控隊列`、`AI 受控覆核`;底層 `manual_review_required` / `owner-review` API 欄位、endpoint slug 與歷史 evidence key 保留為 contract / ledger truth。 +- `awooop.*` message path 針對 `待人工決策 / 阻塞與人工閘門 / 人工接手 / 待審批 / 等待審批 / AI 受控閘門` 的 blocking copy scan 已歸零。 + +**驗證**: +- `python3.11 -m json.tool --indent 2 apps/web/messages/zh-TW.json >/dev/null && python3.11 -m json.tool --indent 2 apps/web/messages/en.json >/dev/null`:通過。 +- `python3.11 scripts/security/awooop-controlled-automation-copy-guard.py`:`AWOOOP_CONTROLLED_AUTOMATION_COPY_GUARD_OK`。 +- `python3.11 scripts/dev/awoooi-navigation-coverage-guard.py`:`AWOOOI_NAVIGATION_COVERAGE_GUARD_OK routes=47 nav_routes=46 nav_label_keys=50`。 +- `git diff --check`:通過。 +- `pnpm --dir apps/web typecheck`:未完成,原因是本機 `node_modules` 缺 `typescript@5.9.3/.../bin/tsc`,不是 TypeScript 編譯錯誤。 +- `python3.11 scripts/security/security-mirror-progress-guard.py`:未完成,既有 blocker `command_palette.product_ia_source: missing 'PRODUCT_NAV_SECTIONS.flatMap(section => section.items)'`。 + +**邊界**:只改 AwoooP 可見文案、Runs status label 與 LOGBOOK;未改 API 欄位 / endpoint slug / runtime gate;未使用 GitHub / `gh` / GitHub API;未 workflow_dispatch;未執行 110 runtime apply。 + ## 2026-07-01 — 13:05 AI Loop current blocker 對齊 publickey offer timeout / load-not-high **照主線修正的問題**: