已开启
fix(web): 权限审批卡片补充每项决定的作用域说明(Issue #95) #158
fix(web): 权限审批卡片补充每项决定的作用域说明(Issue #95) #158
已开启
hugoxk创建于 10 天前
hugoxk
10 天前

What type of PR is this?

/kind bug


What does this PR do / why do we need it:

修复 Issue #95:运行中权限审批卡片文案费解,「始终允许匹配项」缺少范围说明,等待/拒绝后果未说明。

问题分析:

Agent 执行数据分析时弹出权限卡片,三个按钮「仅允许一次」「允许同类操作」「拒绝」缺乏作用域说明:用户不知道「同类操作」的匹配范围是当前会话还是全局、「仅允许一次」用完是否还会问、「拒绝」后 Agent 会不会卡住。卡片的等待态也没说明「运行已暂停」。

服务端授权语义(确认后按实际写文案):

  • allow_once:scope: "once",一次使用,匹配后消耗
  • allow_matching:scope: "session",绑定 sessionId;同时自动批量放行队列中所有匹配 action+matcherResource 的待审批请求
  • deny:Agent 收到拒绝信号,跳过此步骤,继续处理其他工作

改动:

  • PermissionDecisionActions 在按钮下方新增作用域说明段落(en + zh-CN),每条一句说明精确效果与作用范围:「仅放行本次调用;下一次同类调用仍会询问」「当前会话内同类型调用不再询问;其他类型的操作仍会弹出」「跳过此步骤;Agent 将收到拒绝信号并继续处理其他工作」。
  • PermissionCards 的卡片标题旁添加等待徽章 permissions.waiting(「等待您的决定——运行已暂停」),折叠状态下也能看出卡片在等待。
  • 新增 CSS:.permission-decision-actions 增加 flex-wrap,.permission-action-hint 独占一行(flex-basis: 100%);.permission-card-waiting 内联警告色文字。

Which issue(s) this PR fixes:

Fixes #95


Test Plan and Test result:What scenarios were tested, and what were the verification results(Function, performance, reliability, etc.):

验证提交:4118a80(5 files, +54/-1,单 commit,已 rebase 至最新 upstream/main 153d725,杜绝 reviewer 提示的 behind 分歧)

  • 卡片渲染断言(en + zh-CN):等待文字、三条作用域说明、无裸枚举 token
  • 原有权限按钮/折叠/行为断言均不变(791 passed / 0 failed)
  • Web typecheck:通过,0 错误;vite build:通过
  • E2E:本机 macOS 无 bubblewrap 沙箱,mocked 浏览器层 BLOCKED;已人工核查受影响的 agent-run-componentization.spec.ts(无 @mocked 标签,仅在 legacy quarantine 中运行,不参与默认 CI);getByRole("button", { name: "Allow" }) 的 2 匹配问题预存于 main(改动前后不变),新增 <p> hint 不影响任何按钮匹配。

Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)

likedislike
合并受阻
Hhugoxk
10 天前 关联了issue:[Feature]: 运行中权限审批卡片文案费解,「始终允许匹配项」缺少范围说明
atomgit-bot
atomgit-bot
10 天前 评论:

变更摘要

本 PR 修复 Issue #95 中权限审批卡片文案不清晰的问题。核心改动围绕 apps/web 的权限审批卡片:在 PermissionDecisionActions 中为三个决定按钮补充作用域说明,明确 allow_once、allow_matching、deny 各自的实际效果与生效范围;在 PermissionCards 卡片标题旁新增等待徽章以提示「运行已暂停」;同步在 i18n/messages.ts 中补齐 en 与 zh-CN 文案,并新增对应 CSS 样式使说明段落独占一行。整体仅涉及前端展示文案与样式,不改变服务端授权语义。

主要改动

  • 按钮作用域说明段落: PermissionDecisionActions 在三个按钮下方新增 permission-action-hint 段落,逐条给出「仅允许一次 / 允许同类操作 / 拒绝」的精确效果与作用范围(如「仅放行本次调用」对应 once、「当前会话内同类型调用不再询问」对应 session、「跳过此步骤并继续处理其他工作」对应 deny)。
  • 等待状态徽章: PermissionCards 在卡片标题的 eyebrow 内新增 permission-card-waiting 徽章,展示 permissions.waiting(「等待您的决定——运行已暂停」),使折叠状态下也能看出卡片处于等待。
  • 国际化文案新增: i18n/messages.ts 为 en 与 zh-CN 各新增 permissions.waiting 及 permissions.allowOnceHelp、permissions.allowMatchingHelp、permissions.denyHelp 四条文案,用于承载等待提示与作用域说明。
  • 样式调整: styles/timeline.css 新增 .permission-card-waiting(内联警告色文字)与 .permission-action-hint(flex-basis: 100% 独占一行、line-height: 1.5),并为 .permission-decision-actions 增加 flex-wrap 以支持说明换行。
  • 测试覆盖: Permissions.test.tsx 新增用例,针对 en 与 zh-CN 渲染结果断言等待文字与三条作用域说明,并校验中文文案不泄漏 allow_matching、scope: "session" 等裸枚举 token。
likedislike
不准确?
atomgit-bot
atomgit-bot
10 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
openJiuwen-bot成员
10 天前 评论:

欢迎来到 openJiuwen 社区

Hey @hugoxk , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

likedislike
atomgit-bot
atomgit-bot
10 天前 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
OopenJiuwen-bot成员
10 天前 添加了label:openJiuwen-cla/yes
Hhugoxk
10 天前 修改了pull request 的描述
openJiuwen-bot成员
10 天前 评论:

The pipeline(pipeline number:158) is running. Please wait a moment...

likedislike
OopenJiuwen-bot成员
10 天前 添加了label:ci-running
wang_cheng_zhao成员
10 天前 评论:

AI 自动检视,仅供参考,问题都需要人工评估分析.

针对 Issue #95:权限审批卡片原先只有「仅允许一次 / 允许同类操作 / 拒绝」三个按钮,没有说明各自作用域,折叠态也看不出运行在等决策。本 PR 相对最新 origin/main 五文件、+54/−1、ahead 1 / behind 7,改动集中在文案、等待徽标、CSS 与单测,无无关夹带。

对照 store.decidePermissionRequest:allow_once 不落 grant、仅放行当前请求;allow_matching 写入 scope: "session" 并批量结算同 session、同 action+matcher 的 pending;deny 记拒绝后 Agent 侧抛权限错误并继续——en / zh-CN 的 help 文案与上述语义一致,按钮旁也没有漏出 allow_matching / session 等裸枚举。等待徽标挂在 PermissionCards 标题行,折叠时仍可读;说明段落复用 PermissionDecisionActions,时间线与远程计算入口会一起受益。单测用 LocaleProvider 覆盖了两种 locale 的等待文案与三条 scope 说明,体量与文案改动匹配。合入前建议 rebase 一下落后的 7 个 main 提交(多为 CI/Docker/文档,与本 diff 无交叉)。

可合

likedislike
Hhugoxk
10 天前 审查状态已重置,审查人: hong-ye-zhou,yi-zhang95,wang_cheng_zhao
Hhugoxk
10 天前 强制推送  8 个提交:153d7255-7 commits from branch main,4118a801-fix(web): clarify each permission-decision button's scope on the card
OopenJiuwen-bot成员
10 天前 删除了label:openJiuwen-cla/yes
OopenJiuwen-bot成员
10 天前 添加了label:openJiuwen-cla/yes
openJiuwen-bot成员
10 天前 评论:

CLA 签署成功

hugoxk, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
Hhugoxk
10 天前 修改了pull request 的描述
openJiuwen-bot成员
10 天前 评论:

The pipeline(pipeline number:158) is running. Please wait a moment...

likedislike
wang_cheng_zhao成员
10 天前 评论:

上一轮检视:https://gitcode.com/openJiuwen/sciencediscovery/pull/158?ref=&did=31f4ff2380f44961cef5d14732c2c4851f859723#tid-190583247

AI 自动检视,仅供参考,问题都需要人工评估分析

本轮相对上一轮 HEAD(04d23dde → 4118a801)是一次 rebase 到最新 origin/main 的强制更新:权限相关 5 个文件的 patch 内容与 Round-1 完全一致(patch-id 相同),没有新增功能或文案改动。相对 origin/main 的三点 diff 仍是同一批变更:PermissionDecisionActions 作用域说明、waiting 角标、en/zh-CN 文案,以及对应单测。当前已与 main 齐平(behind=0,ahead=1),上一轮提到的落后 7 提交已消化。

做法是否合理:文案仍与 decidePermissionRequest 语义对齐——allow_once 仅本次、不建 Grant;allow_matching 为本 Session + 批量放行同类(action + matcherResource);deny 跳过并让 Agent 继续。i18n 与测试覆盖面未变,可合。

可合

likedislike
openJiuwen-bot成员
10 天前 评论:

✅ 流水线 5e108623bbb34fb2a33751fc01d226b9 执行成功。

可在 https://gitcode.com/openJiuwen/sciencediscovery/pull/158/check 查看完整构建日志。

在 PR 评论中发送 rerun 可重新触发 CI 流水线。

任务名称子任务状态详情
代码检查SCA(开源合规)PASSED点此跳转
Anti-poison(防投毒)PASSED点此跳转
CodeCheck(静态检查)PASSED点此跳转
Blacklist(禁用词)PASSED点此跳转
UThost tierPASSED公开日志
guest tier (QEMU TCG sandbox)PASSED公开日志
ST-PASSED公开日志
Binaryx86_64 debug packagePASSEDbinary · SHA256SUMS
aarch64 debug packagePASSEDbinary · SHA256SUMS
likedislike
OopenJiuwen-bot成员
10 天前 添加了label:ci-successful
OopenJiuwen-bot成员
10 天前 删除了label:ci-running
openJiuwen-bot成员
10 天前 评论:

✅ 流水线 9e028a6bffb345568ba98d1570b7f498 执行成功。

可在 https://gitcode.com/openJiuwen/sciencediscovery/pull/158/check 查看完整构建日志。

在 PR 评论中发送 rerun 可重新触发 CI 流水线。

任务名称子任务状态详情
代码检查SCA(开源合规)PASSED点此跳转
Anti-poison(防投毒)PASSED点此跳转
CodeCheck(静态检查)PASSED点此跳转
Blacklist(禁用词)PASSED点此跳转
UThost tierPASSED公开日志
guest tier (QEMU TCG sandbox)PASSED公开日志
ST-PASSED公开日志
Binaryx86_64 debug packagePASSEDbinary · SHA256SUMS
aarch64 debug packagePASSEDbinary · SHA256SUMS
likedislike