diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 03187d78..2830f787 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -3149,7 +3149,8 @@ "labels": { "requiredFields": "必填欄位 {count}", "forbiddenFields": "禁止欄位 {count}", - "idempotency": "idempotency key: {value}" + "idempotency": "idempotency key: {value}", + "unassigned": "未指定" }, "agents": { "openclaw": "OpenClaw", @@ -3230,13 +3231,47 @@ "L3_draft_change_after_gate": "L3 批准後草案" }, "approvalGates": { + "alert_rule_write_approval_required": "需 alert rule 寫入批准", + "cluster_write_blocked": "叢集寫入封鎖", + "code_change_required_for_fix": "修復需程式變更", + "cost_data_and_route_approval_required": "需費用資料與路由批准", + "cost_data_and_sanitized_fixture_approval_required": "需費用資料與脫敏 fixture 批准", + "cost_or_runtime_change_approval_required": "需費用或 runtime 變更批准", "read_only_allowed": "只讀允許", "km_write_owner_review_required": "KM 寫入需 owner 審查", "secret_value_handling_forbidden": "機密值處理禁止", "owner_review_required": "需 owner 審查", + "owner_response_required": "需 owner 回覆", + "human_approval_required": "需人工批准", "runtime_worker_gate_required": "需 runtime worker 關卡", "db_migration_required": "需 DB migration 關卡", + "db_migration_approval_required": "需 DB migration 批准", + "dependency_approval_required": "需依賴更新批准", + "external_scan_and_dependency_approval_required": "需外部掃描與依賴批准", + "external_source_approval_required": "需外部來源批准", + "host_update_approval_required": "需主機更新批准", + "image_pull_build_push_approval_required": "需映像 pull / build / push 批准", + "k8s_upgrade_maintenance_window_required": "需 K8s 升級 maintenance window", + "legal_owner_review_required": "需法務 owner 審查", + "maintenance_window_required": "需 maintenance window", + "market_scorecard_and_replay_gate_required": "需市場 scorecard 與 replay 關卡", + "market_scorecard_replay_and_cost_data_approval_required": "需市場 scorecard / replay / 費用資料批准", + "monitoring_route_receiver_write_blocked": "監控 route / receiver 寫入封鎖", + "new_tool_or_secret_approval_required": "需新工具或 secret 批准", + "operator_release_window_required": "需 operator release window", "replay_shadow_canary_gate_required": "需 replay / shadow / canary 關卡", + "restart_or_endpoint_change_requires_approval": "restart 或 endpoint 變更需批准", + "restore_execution_blocked": "restore 執行封鎖", + "restore_or_prune_approval_required": "restore 或 prune 需批准", + "route_receiver_write_blocked": "route / receiver 寫入封鎖", + "ssh_or_host_probe_approval_required": "需 SSH 或主機 probe 批准", + "stateful_upgrade_approval_required": "需 stateful 升級批准", + "telegram_direct_send_blocked": "Telegram 直接發送封鎖", + "telegram_send_or_route_change_requires_approval": "Telegram 發送或路由變更需批准", + "tool_install_or_ci_change_approval_required": "工具安裝或 CI 變更需批准", + "workflow_and_bot_approval_required": "workflow 與 bot 需批准", + "workflow_modification_approval_required": "workflow 修改需批准", + "write_requires_human_gate": "寫入需人工關卡", "cost_data_approval_required": "需費用與資料邊界批准" } }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 03187d78..2830f787 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -3149,7 +3149,8 @@ "labels": { "requiredFields": "必填欄位 {count}", "forbiddenFields": "禁止欄位 {count}", - "idempotency": "idempotency key: {value}" + "idempotency": "idempotency key: {value}", + "unassigned": "未指定" }, "agents": { "openclaw": "OpenClaw", @@ -3230,13 +3231,47 @@ "L3_draft_change_after_gate": "L3 批准後草案" }, "approvalGates": { + "alert_rule_write_approval_required": "需 alert rule 寫入批准", + "cluster_write_blocked": "叢集寫入封鎖", + "code_change_required_for_fix": "修復需程式變更", + "cost_data_and_route_approval_required": "需費用資料與路由批准", + "cost_data_and_sanitized_fixture_approval_required": "需費用資料與脫敏 fixture 批准", + "cost_or_runtime_change_approval_required": "需費用或 runtime 變更批准", "read_only_allowed": "只讀允許", "km_write_owner_review_required": "KM 寫入需 owner 審查", "secret_value_handling_forbidden": "機密值處理禁止", "owner_review_required": "需 owner 審查", + "owner_response_required": "需 owner 回覆", + "human_approval_required": "需人工批准", "runtime_worker_gate_required": "需 runtime worker 關卡", "db_migration_required": "需 DB migration 關卡", + "db_migration_approval_required": "需 DB migration 批准", + "dependency_approval_required": "需依賴更新批准", + "external_scan_and_dependency_approval_required": "需外部掃描與依賴批准", + "external_source_approval_required": "需外部來源批准", + "host_update_approval_required": "需主機更新批准", + "image_pull_build_push_approval_required": "需映像 pull / build / push 批准", + "k8s_upgrade_maintenance_window_required": "需 K8s 升級 maintenance window", + "legal_owner_review_required": "需法務 owner 審查", + "maintenance_window_required": "需 maintenance window", + "market_scorecard_and_replay_gate_required": "需市場 scorecard 與 replay 關卡", + "market_scorecard_replay_and_cost_data_approval_required": "需市場 scorecard / replay / 費用資料批准", + "monitoring_route_receiver_write_blocked": "監控 route / receiver 寫入封鎖", + "new_tool_or_secret_approval_required": "需新工具或 secret 批准", + "operator_release_window_required": "需 operator release window", "replay_shadow_canary_gate_required": "需 replay / shadow / canary 關卡", + "restart_or_endpoint_change_requires_approval": "restart 或 endpoint 變更需批准", + "restore_execution_blocked": "restore 執行封鎖", + "restore_or_prune_approval_required": "restore 或 prune 需批准", + "route_receiver_write_blocked": "route / receiver 寫入封鎖", + "ssh_or_host_probe_approval_required": "需 SSH 或主機 probe 批准", + "stateful_upgrade_approval_required": "需 stateful 升級批准", + "telegram_direct_send_blocked": "Telegram 直接發送封鎖", + "telegram_send_or_route_change_requires_approval": "Telegram 發送或路由變更需批准", + "tool_install_or_ci_change_approval_required": "工具安裝或 CI 變更需批准", + "workflow_and_bot_approval_required": "workflow 與 bot 需批准", + "workflow_modification_approval_required": "workflow 修改需批准", + "write_requires_human_gate": "寫入需人工關卡", "cost_data_approval_required": "需費用與資料邊界批准" } }, diff --git a/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx b/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx index f63a6e4b..83563335 100644 --- a/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx +++ b/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx @@ -1322,7 +1322,9 @@ export function AutomationInventoryTab() { } } - const redisDryRunValueLabel = (group: string, value: string) => { + const redisDryRunValueLabel = (group: string, value?: string) => { + if (!value) return t('redisDryRunGate.labels.unassigned') + try { return t(`redisDryRunGate.${group}.${value}` as never) } catch { @@ -1870,11 +1872,12 @@ export function AutomationInventoryTab() { {target.display_name} - {target.operator_instruction} + {target.verifier_check}