Description 使用环境
macOS 15(darwin 24.6.0, arm64)
ZCode 桌面 3.12.2(build 7410,preview 频道),内置 CLI 0.16.5
问题描述(附本机量化数据)
「始终允许本项目」对 Bash 记录的是整条命令的精确匹配 。本机近几天日志 145 次权限弹窗中 Bash 占 97 次(67%),其中 132 次都选了「始终允许本项目」;默认工作区已积累 322 条 allow 规则,绝大多数是整条命令原文(含多行 python3 -c、复合 && 命令)。参数一变就失配,于是再弹——规则越攒越多,弹窗并没有减少。
引擎本身支持前缀规则,但桌面弹窗没用上 。db 中 ruleset 格式支持 cmd:* 词边界前缀和 glob,suggestedPermissionUpdates 也会生成前缀规则,但桌面弹窗「始终允许」实际落库的大多是精确整串(本机 13 个有规则的项目里只有 2 个存在 :* 规则)。建议弹窗提供「始终允许此类命令(按前缀)」选项,或默认采用前缀规则。
细粒度权限规则没有任何管理入口 。无 /permissions 等价命令、无设置面板,用户无法查看或清理已记住的规则(只能直接改 db.sqlite)。
permission.autoApproveHighRisk 对 Bash 无效 。Bash 工具 needsApproval=true,最终仍走 ask 分支,开关形同虚设。
CLI --help 里的 Bash(git *) 示例没有对应解析器 (残留文案),Claude Code 迁移用户会误以为支持文件级 permissions 规则。
期望表现
「始终允许」默认或可选记录前缀规则(如 git:*);提供查看/编辑/清除已记住规则的 UI 或命令。
autoApproveHighRisk 对 Bash 生效或移除;--help 文案与实际能力一致。
复现步骤
权限档位选「变更前确认」或「自动编辑文件」。
让 agent 执行 git status,弹窗选「始终允许本项目」。
再执行 git log --oneline -5 → 仍然弹窗(上一步记住的是精确整串,未命中)。
日志与数据
~/.zcode/cli/log/zcode-2026-09-1*.jsonl 中 tool.permission.resolved 统计(145 次/工具分布/用户选择分布)。
~/.zcode/cli/db/db.sqlite local_setting 表 namespace=permission 的 ruleset 导出(322 条规则样例可提供)。
Reactions are currently unavailable
You can’t perform that action at this time.
使用环境
问题描述(附本机量化数据)
python3 -c、复合&&命令)。参数一变就失配,于是再弹——规则越攒越多,弹窗并没有减少。cmd:*词边界前缀和 glob,suggestedPermissionUpdates也会生成前缀规则,但桌面弹窗「始终允许」实际落库的大多是精确整串(本机 13 个有规则的项目里只有 2 个存在:*规则)。建议弹窗提供「始终允许此类命令(按前缀)」选项,或默认采用前缀规则。/permissions等价命令、无设置面板,用户无法查看或清理已记住的规则(只能直接改 db.sqlite)。permission.autoApproveHighRisk对 Bash 无效。Bash 工具needsApproval=true,最终仍走 ask 分支,开关形同虚设。--help里的Bash(git *)示例没有对应解析器(残留文案),Claude Code 迁移用户会误以为支持文件级 permissions 规则。期望表现
git:*);提供查看/编辑/清除已记住规则的 UI 或命令。autoApproveHighRisk对 Bash 生效或移除;--help文案与实际能力一致。复现步骤
git status,弹窗选「始终允许本项目」。git log --oneline -5→ 仍然弹窗(上一步记住的是精确整串,未命中)。日志与数据
~/.zcode/cli/log/zcode-2026-09-1*.jsonl中tool.permission.resolved统计(145 次/工具分布/用户选择分布)。~/.zcode/cli/db/db.sqlitelocal_setting表 namespace=permission 的 ruleset 导出(322 条规则样例可提供)。