mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
553db8def1
I have read the CLA Document and I hereby sign the CLA Closes #4452 This fixes a usability issue where users with symlinked folders in their working directory couldn't search those files using the `@` file search feature. ## Rationale The "bug" was in the file search implementation in `codex-rs/file-search/src/lib.rs`. The `WalkBuilder` was using default settings which don't follow symlinks, causing two related issues: 1. Partial search results: The `@` search would find symlinked directories but couldn't find files inside them 2. Inconsistent behavior: Users expect symlinked folders to behave like regular folders in search results. ## Root cause The `ignore` crate's `WalkBuilder` defaults to `.follow_links(false)` [[source](https://github.com/BurntSushi/ripgrep/blob/9802945e6342ec284633924cb7d8d3ce67204995/crates/ignore/src/walk.rs#L532)], so when traversing the file system, it would: - Detect symlinked directories as directory entries - But not traverse into them to index their contents - The `get_file_path` function would then filter out actual directories, leaving only the symlinked folder itself as a result Fix: Added `.follow_links(true)` to the `WalkBuilder` configuration, making the file search follow symlinks and index their contents just like regular directories. This change maintains backward compatibility since symlink following is generally expected behavior for file search tools, and it aligns with how users expect the `@` search feature to work. Co-authored-by: Eric Traut <etraut@openai.com>
553db8def1
ยท
2025-11-03 20:28:33 -08:00
History
codex_file_search
Fast fuzzy file search tool for Codex.
Uses https://crates.io/crates/ignore under the hood (which is what ripgrep uses) to traverse a directory (while honoring .gitignore, etc.) to produce the list of files to search and then uses https://crates.io/crates/nucleo-matcher to fuzzy-match the user supplied PATTERN against the corpus.