You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Solid arrows = integration order into wave/wave4-search-followups. Dotted = hard dependency. One branch per ticket; this ticket highlighted.
Found via dog-fooding round 2 (2026-06-27, branch wave/wave4-search), tracked under #174 Wave 4. Priority: P0.
Problem: Standalone --ast prints the wrong file paths for matches — results include files that cannot contain the pattern. Acting on these sends an agent to the wrong file (worse than an empty result).
Reproduced decisively in an isolated 2-file repo: function_item > block returned foo.rs (no function) instead of foo/bar.rs (the only file with a function).
Root cause: FileIds are assigned in PathBuf order at index time (walk.rs:428) but resolved through a String/BTreeMap-ordered path list (manifest.sorted_paths) at query time. Path-separator vs string-collation ordering differ, so the Nth match resolves to a different file's path.
Best fix: make FileId assignment and path resolution use the same canonical ordering (pick byte-wise string order, apply on both sides). Add a round-trip test asserting resolve(assign(path)) == path over a corpus with nested directories.
Solid arrows = integration order into
wave/wave4-search-followups. Dotted = hard dependency. One branch per ticket; this ticket highlighted.Found via dog-fooding round 2 (2026-06-27, branch
wave/wave4-search), tracked under #174 Wave 4. Priority: P0.Problem: Standalone
--astprints the wrong file paths for matches — results include files that cannot contain the pattern. Acting on these sends an agent to the wrong file (worse than an empty result).Evidence:
Reproduced decisively in an isolated 2-file repo:
function_item > blockreturnedfoo.rs(no function) instead offoo/bar.rs(the only file with a function).Root cause: FileIds are assigned in
PathBuforder at index time (walk.rs:428) but resolved through aString/BTreeMap-ordered path list (manifest.sorted_paths) at query time. Path-separator vs string-collation ordering differ, so the Nth match resolves to a different file's path.Best fix: make FileId assignment and path resolution use the same canonical ordering (pick byte-wise string order, apply on both sides). Add a round-trip test asserting
resolve(assign(path)) == pathover a corpus with nested directories.Refs: #174.