Skip to content

Default "build" skip hides tracked first-party source, and explore returns unrelated matches instead of saying so #2462

Closed

Description

@tippmar-nr

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:

  1. Don't apply the build skip to a folder that contains tracked project/source files whose output is gitignored, or at least report skipped default dirs with tracked source in init/status, so people know to opt in. fix(extraction): preserve Java packages named build (#1642) #1998 did the first part for JVM packages named build; the same trap exists for .NET and others.
  2. 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.
  3. Have sync notice newly un-ignored paths after an ignore-file change, or say that a full index is needed.

Activity

  1. added 2 commits that reference this issue on Oct 22, 2026
    bb72ca6
    268691c
  2. colbymchenry commented on Oct 22, 2026

    @colbymchenry
    Owner

    Thanks for the detailed report; the exact query made this easy to pin down.

    #2789 is merged to main. codegraph_explore now 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 to codegraph status and the .gitignore re-include. Before, it answered with an unrelated Main and Parser.

    The root build/ folder is still skipped by default, so re-including it with !/build/ in .gitignore remains the way to index it; your repo already has that line. On current main, codegraph sync picks up that change without a full re-index. The fix ships in the next release.

  3. added a commit that references this issue on Oct 22, 2026
    214ef50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions