Repository navigation
feat(settings): 设置 → 权限,查看、删除、手动添加 K-brain 权限规则 - #1102
Merged
AlphaCatMeow merged 1 commit intoNov 1, 2026
Merged
AlphaCatMeow merged 1 commit into
AlphaCatMeow merged 1 commit into
Conversation
- 「智能」分组新增「权限」页:列出所有项目和所选项目的规则(规则、允许/拒绝、 添加时间、来源会话),可删除(先确认),可手动添加允许或拒绝规则。 - 列表与加载它的项目绑定:删除项目规则用规则所在的项目,切换中不显示旧项目的规则。 - 后端无 permission_rules 能力时显示升级提示;只有能访问规则接口的宿主注册此页, WebUI 在 LA-3b 接入。 - 桌面端适配器直连 /v1/permissions/rules,错误只显示 K-brain 返回的原因。 - 规则输入框里输入法确认候选词的回车不提交。 Closes Stack-Cairn#1101 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
审批时选「允许并记住」(#1098)会把规则存进 K-brain,但客户端里看不到也删不掉,只能去手改 JSON 文件。本 PR 是 LA-3a:在设置里加「权限」页,可以查看、删除、手动添加规则。先做桌面端;WebUI 需要经网关转发,在 LA-3b 里做。
Closes #1101
Depends-On: none
Stack-Root: #1102
改动
PermissionRulesSection.tsx(新)ConfirmDeletePopover确认。可以手动添加允许或拒绝规则,选所有项目或本项目,默认是拒绝、所有项目。后端没有permission_rules能力时显示升级提示loaded = {workspace, list})。删除项目规则时带上这条规则所在的项目。切换项目期间不显示旧项目的规则,也不显示它们的删除按钮。添加或删除之后,按当前选中的项目重新加载。每次请求带一个递增编号,只采用最新一次的结果;连接变了的回应也不采用isImeKeyboardEvent判断,WebKit 下输入法确认候选词的那次回车(keyCode 229)不会提交kbrainSettingsAdapter.tsPermissionRule*类型,以及可选方法listPermissionRules、addPermissionRule、deletePermissionRuleSettingsPage.tsxlistPermissionRules时才注册「权限」页,放在「智能」分组的「系统工具」之后;WebUI 目前不提供,所以不会出现空的导航项kbrainSettings.tsGET/POST/DELETE /v1/permissions/rules,snake_case 转成 camelCase,出错时只显示{"error"}里的原因zhCNSettings和enUSSettings各加 22 个 key,两边一致;两个宿主的SectionId都加了permissions契约面
/v1/permissions/rulespermission_rules)截图(调试版真实客户端)
1280,「本项目 · LiveAgent」下是审批时记住的规则:

480,「所有项目」下是手动添加的拒绝规则:

验证
settings/permission-rules:用 jsdom 渲染真实组件,覆盖列表、项目切换、删除、添加、报错、能力位、乱序回应和没有项目的情况,另有桌面端适配器的 URL 和报错测试,共 8 条;settings/permission-rules-registration:注册条件和两种语言的 key,2 条review-la3a-permission-rulesreview-la3a-permission-rules-r2la-full-tests.mjs,8 个批次都跑完crates/agent-gui下重跑能通过biome check --line-ending=lf、check-mirror.mjs、git diff --checknode -e "console.log(6*7)"时按 2 选「本项目」Bash(echo deny-test:*)(所有项目)echo deny-test hello:没有弹审批,命令被这条规则直接拒绝未覆盖:
另外发现、与本 PR 无关:桌面窗口宽 480 时,设置页左侧导航不会收起,内容区只剩约 138px,原有的「系统工具」页也会横向溢出。
🤖 Generated with Claude Code