搜索后端统一与只读路径放宽
- 日期:2026-08-06
- 提交:
refactor(search): find 改为单一 Rust backend 并放宽只读路径 - 版本:
0.12.1-alpha.3
此前,find 工具在系统没有 fd 时会尝试下载受管的 fd 二进制,否则退回内置 fallback;而 read / grep / find / list_dir / view_image 等只读工具只能访问当前工作区内的路径,工作区之外一律失败。本次更新将搜索路径访问统一为单一 Rust 后端,并放宽了只读工具的路径边界。
主要变化
-
find改为单一 Rust 后端
find不再依赖系统或受管的fd二进制,统一使用内置的ignore+globset后端实现路径查找。无论环境里有没有fd,find都能一致工作,也少了一项需要下载/授权的二进制。 -
只读工具可访问工作区外已存在路径
read/grep/find/list_dir/view_image等只读工具现在可以访问工作区之外且已存在的路径,不再强制限定在工作区内。write/edit/bash(工作目录)的边界保持不变,仍然只允许在工作区内操作。 -
删除
allow_managed_fd配置
配置项allow_managed_fd已移除,只保留allow_managed_rg。allow_managed_rg现在有三种取值:缺省表示实际需要下载时询问;true允许下载/重建;false禁用受管 rg(此时仍优先使用PATH/bundled 的rg,两者都不可用时退回 Rust 后端)。 -
grep 内置 fallback 流式化
grep的内置 fallback 改用grep-searcher流式实现,并支持外部搜索根目录,搜索大目录时更省内存、更快出结果。
相关说明
- 文件类工具的路径边界与使用建议见文件类工具。
- 若文档中
config.toml示例仍包含allow_managed_fd,以本条目描述为准,后续会同步更新。