From aa54058e3157ceb1bbba9227817d0fa5d6e88f2e Mon Sep 17 00:00:00 2001 From: matevip Date: Thu, 23 Jul 2026 11:45:42 +0800 Subject: [PATCH] feat(ui): scope-typed pickers and severity-ceiling hints on the auto-approve grant form --- mateclaw-ui/src/i18n/locales/en-US.ts | 11 ++ mateclaw-ui/src/i18n/locales/zh-CN.ts | 11 ++ .../Security/AutoApproveGrants/index.vue | 130 ++++++++++++++++-- 3 files changed, 144 insertions(+), 8 deletions(-) diff --git a/mateclaw-ui/src/i18n/locales/en-US.ts b/mateclaw-ui/src/i18n/locales/en-US.ts index 3fe464bb..0e4cd306 100644 --- a/mateclaw-ui/src/i18n/locales/en-US.ts +++ b/mateclaw-ui/src/i18n/locales/en-US.ts @@ -4408,6 +4408,17 @@ export default { expireAt: 'Expire at', note: 'Note', password: 'Login password (required for sensitive rules)', + workspaceHint: 'This grant is created in workspace {name} and only matches conversations belonging to it. IM-channel conversations (WeCom / DingTalk / …) follow the channel\'s workspace binding, not the console selection.', + severityHint: 'Only findings with severity ≤ the ceiling are auto-approved; CRITICAL always requires human approval.', + severityLow: 'auto-approve LOW findings only', + severityMedium: 'auto-approve LOW/MEDIUM findings', + severityHigh: 'auto-approve LOW/MEDIUM/HIGH findings', + scopeIdPickAgent: 'Pick an agent…', + scopeIdWorkspaceHint: 'Pick the workspace this grant applies to (must be the workspace the conversation actually belongs to).', + scopeIdAgentHint: 'Applies to every conversation of the selected agent within this workspace.', + scopeIdUserHint: 'USER-scope grants can only target the currently logged-in user.', + scopeIdConversationHint: 'Conversation id, as shown in the audit log "session" column (e.g. wecom:xxx).', + scopeIdConversationPlaceholder: 'e.g. wecom:xxx or a conversation id', }, }, resolution: { diff --git a/mateclaw-ui/src/i18n/locales/zh-CN.ts b/mateclaw-ui/src/i18n/locales/zh-CN.ts index 228e38e2..a126a20d 100644 --- a/mateclaw-ui/src/i18n/locales/zh-CN.ts +++ b/mateclaw-ui/src/i18n/locales/zh-CN.ts @@ -4500,6 +4500,17 @@ export default { expireAt: '过期时间', note: '备注', password: '登录密码(敏感策略需要)', + workspaceHint: '策略将创建在工作区 {name},只对该工作区内的会话生效。IM 渠道(企微/钉钉等)会话所属工作区由渠道配置决定,与控制台当前选择无关。', + severityHint: '只自动放行严重度 ≤ 上限的命中;CRITICAL 永远需要人工审批。', + severityLow: '仅放行低危命中', + severityMedium: '放行低/中危命中', + severityHigh: '放行低/中/高危命中', + scopeIdPickAgent: '选择智能体…', + scopeIdWorkspaceHint: '选择策略生效的工作区(必须与会话实际所属工作区一致)。', + scopeIdAgentHint: '选择智能体后,该智能体在本工作区的所有会话均适用。', + scopeIdUserHint: '只能为当前登录用户创建 USER 范围策略。', + scopeIdConversationHint: '填写会话 ID,可在审计日志的"会话"列查看(如 wecom:xxx)。', + scopeIdConversationPlaceholder: '如 wecom:xxx 或会话 ID', }, }, resolution: { diff --git a/mateclaw-ui/src/views/Security/AutoApproveGrants/index.vue b/mateclaw-ui/src/views/Security/AutoApproveGrants/index.vue index 218ed8cb..3975236d 100644 --- a/mateclaw-ui/src/views/Security/AutoApproveGrants/index.vue +++ b/mateclaw-ui/src/views/Security/AutoApproveGrants/index.vue @@ -181,6 +181,14 @@ {{ t('approval.grant.createWorkspaceWarning') }} + +
+ {{ t('approval.grant.form.workspaceHint', { name: currentWorkspaceLabel }) }} +
@@ -197,14 +205,51 @@
+ + + + +

{{ scopeIdHint }}

@@ -226,10 +271,11 @@
+

{{ t('approval.grant.form.severityHint') }}

@@ -293,7 +339,7 @@