@ file picker doesn't surface deeply nested files — only shallow-path files appear in results
Summary
When using the @ file picker in Claude Code to reference files, deeply nested files are consistently absent from search results even when the query exactly matches the filename. Only files at shallow directory depths appear.
Steps to Reproduce
- Have a project with two files sharing a common filename prefix:
test/meditation_multi_track_audio_manager_test.dart(depth 2)lib/home/screens/meditation_session_screen/providers/meditation_multi_track_audio_manager.dart(depth 6)
- Type
@meditation_multiin the Claude chat input - Observe that only the test file (shallow path) appears — the source file (deep path) does not appear at all
Expected Behavior
Both files should appear in results. The source file meditation_multi_track_audio_manager.dart is a more exact match (shorter filename) and should rank higher than the test file, not be absent entirely.
This is particularly surprising because:
- There is no
.claudeignorefile - The file is git-tracked
- The file appears in
.repo-map/index.json - The Claude Code CLI (
claude) handles this correctly — it surfaces deeply nested files as expected
Actual Behavior
Only the shallow-depth file appears in the @ picker dropdown. The user is forced to type the full path prefix (@providers/meditation_multi) or the complete filename to find the source file — defeating the purpose of fuzzy search.
Environment
- Claude Code desktop app
- Project: Flutter monorepo with ~300+ Dart files across 6+ directory levels
- Branch: worktree checkout
Impact
This forces users to know the exact directory path of files they want to reference, which is impractical in large projects with deep module structures. The CLI behavior (which works correctly) sets the right expectation — the desktop app should match it.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗