合并受阻
变更摘要
本 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。


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


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 无交叉)。
可合


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


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 与测试覆盖面未变,可合。
可合


✅ 流水线 5e108623bbb34fb2a33751fc01d226b9 执行成功。
可在 https://gitcode.com/openJiuwen/sciencediscovery/pull/158/check 查看完整构建日志。
在 PR 评论中发送 rerun 可重新触发 CI 流水线。
| 任务名称 | 子任务 | 状态 | 详情 |
|---|---|---|---|
| 代码检查 | SCA(开源合规) | PASSED | 点此跳转 |
| Anti-poison(防投毒) | PASSED | 点此跳转 | |
| CodeCheck(静态检查) | PASSED | 点此跳转 | |
| Blacklist(禁用词) | PASSED | 点此跳转 | |
| UT | host tier | PASSED | 公开日志 |
| guest tier (QEMU TCG sandbox) | PASSED | 公开日志 | |
| ST | - | PASSED | 公开日志 |
| Binary | x86_64 debug package | PASSED | binary · SHA256SUMS |
| aarch64 debug package | PASSED | binary · SHA256SUMS |


✅ 流水线 9e028a6bffb345568ba98d1570b7f498 执行成功。
可在 https://gitcode.com/openJiuwen/sciencediscovery/pull/158/check 查看完整构建日志。
在 PR 评论中发送 rerun 可重新触发 CI 流水线。
| 任务名称 | 子任务 | 状态 | 详情 |
|---|---|---|---|
| 代码检查 | SCA(开源合规) | PASSED | 点此跳转 |
| Anti-poison(防投毒) | PASSED | 点此跳转 | |
| CodeCheck(静态检查) | PASSED | 点此跳转 | |
| Blacklist(禁用词) | PASSED | 点此跳转 | |
| UT | host tier | PASSED | 公开日志 |
| guest tier (QEMU TCG sandbox) | PASSED | 公开日志 | |
| ST | - | PASSED | 公开日志 |
| Binary | x86_64 debug package | PASSED | binary · SHA256SUMS |
| aarch64 debug package | PASSED | binary · SHA256SUMS |


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(「等待您的决定——运行已暂停」),折叠状态下也能看出卡片在等待。.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 分歧)
agent-run-componentization.spec.ts(无@mocked标签,仅在 legacy quarantine 中运行,不参与默认 CI);getByRole("button", { name: "Allow" })的 2 匹配问题预存于 main(改动前后不变),新增<p>hint 不影响任何按钮匹配。Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)