Skip to content

feat:为本地文件工具扩展 Bash 模式与权限守卫#66

Merged
lloydzhou merged 6 commits into
mainfrom
feat/native-file-tool-bash-mode
Jul 14, 2026
Merged

feat:为本地文件工具扩展 Bash 模式与权限守卫#66
lloydzhou merged 6 commits into
mainfrom
feat/native-file-tool-bash-mode

Conversation

@lloydzhou

Copy link
Copy Markdown
Owner

背景

BASH_AGENT_BASH_MODE 此前仅限制 Bash 工具。本次将同一权限模型扩展至本地文件工具,确保 Bash、Go、Rust、C 四个运行时对文件访问采用一致的分类和拒绝策略。

变更内容

  • ReadWriteEditGlobGrep 接入 BASH_AGENT_BASH_MODE 权限校验。
  • 复用 Bash 命令分类器:
    • ReadGrepGlob 使用读取探针。
    • WriteEdit 使用写入探针。
  • 对空路径统一按当前工作区处理。
  • 对无路径的 Glob 增加失败关闭保护:
    • 模式为绝对路径时,按系统读取检查。
    • 模式含 .. 路径段时,按系统读取检查。
  • 非法权限模式统一规范为 0000,保持失败关闭。
  • 原生文件工具拒绝时复用 Bash 相同的安全策略错误文案。
  • 同步四端帮助文本、中文与英文 README、权限策略文档及工具文档。
  • 新增 Bash、Go、Rust、C 的分类与端到端覆盖,验证工作区允许、系统读取拒绝、外部写入拒绝、缺少写权限拒绝、默认路径行为、危险 Glob 模式和非法模式失败关闭。

行为示例

默认模式 0467 下:

  • 允许读取工作区文件。
  • 拒绝读取 /etc/hosts 等系统文件。
  • 拒绝向工作区外的普通路径写入。
  • Glob 未指定路径且模式为 /etc/*../* 时拒绝执行。

验证

  • git diff --check
  • make test-c-classify:36 通过,0 失败
  • make test-go:通过
  • cargo test --manifest-path rust/Cargo.toml native_file_mode_guard_matches_bash:通过
  • Bash、Go、Rust、C 集成测试:均为 192 通过,0 失败

@lloydzhou lloydzhou changed the title feat: 将 Bash 权限模式扩展至本地文件工具 feat:为本地文件工具扩展 Bash 模式与权限守卫 Jul 14, 2026
@lloydzhou
lloydzhou merged commit 4fc2ec6 into main Jul 14, 2026
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant