Default "build" skip hides tracked first-party source, and explore returns unrelated matches instead of saying so #2462
Description
Version: 1.6.2, Windows 11, Claude Code
Our repo (.NET) has a root build/ folder that's real, tracked source: about 86 C# files across several small tool projects (release notes builder, packaging, validators). Their actual build output lives in bin/ and obj/, which are already gitignored. Because build is on the default skip list, none of it was indexed.
That on its own would be easy to spot, but explore didn't tell us anything was missing. A query naming symbols that only exist under build/:
codegraph_explore "ReleaseNotesBuilder Program Main ChangelogParser PersistentData Entry AddFeatures"
returned Main from an unrelated Program.cs elsewhere in the repo plus a C++ Parser class, with no hint that most of the names matched nothing. We only figured it out after querying by file path, which gave "No indexed file uniquely matches". The agent was a few steps into reading the wrong code by then.
Workaround: !/build/ in the root .gitignore, then a full codegraph index. With the negation in .git/info/exclude, codegraph sync reported "Already up to date" and found nothing new; only a full index picked the folder up. include in codegraph.json isn't an option, since the docs say it never resurfaces built-in skipped dirs.
Suggestions:
- Don't apply the
buildskip to a folder that contains tracked project/source files whose output is gitignored, or at least report skipped default dirs with tracked source ininit/status, so people know to opt in. fix(extraction): preserve Java packages named build (#1642) #1998 did the first part for JVM packages namedbuild; the same trap exists for .NET and others. - Extend the fix(explore): explain empty results with bounded lexical diagnostics (#1904) #2026 miss diagnostics to partial misses: when identifier-like query words match nothing, say so even if other results are returned.
- Have
syncnotice newly un-ignored paths after an ignore-file change, or say that a fullindexis needed.
Activity
fix(explore): names the query spells that the index never saw are sai…
fix(explore): names the query spells that the index never saw are sai…
colbymchenry commentedon Oct 22, 2026
Thanks for the detailed report; the exact query made this easy to pin down.
#2789 is merged to
main.codegraph_explorenow says plainly when names you asked for aren't in the index. Your query now opens with "Not in the index:ReleaseNotesBuilder,ChangelogParser,PersistentData,AddFeatures" and points tocodegraph statusand the.gitignorere-include. Before, it answered with an unrelatedMainandParser.The root
build/folder is still skipped by default, so re-including it with!/build/in.gitignoreremains the way to index it; your repo already has that line. On currentmain,codegraph syncpicks up that change without a full re-index. The fix ships in the next release.fix(explore): names the query spells that the index never saw are sai…