Skip to content

Built-in skip list silently excludes source dirs named deploy/deployment(s) — not overridable via .cbmignore #1184

Open

Description

@sakivks

Summary

The hardcoded directory skip list includes deploy, deployment, and deployments. On repos where deployment logic is the product domain (deploy control planes, CD tooling, IaC orchestrators), this silently drops core source code from the graph, and docs/cbmignore.md states the built-in list is "Not overridable from any ignore file today."

Repro (v0.9.0, darwin-arm64)

Next.js/TypeScript repo with real source at src/lib/deploy/ (23 .ts files) and src/app/api/webhooks/deploy/:

codebase-memory-mcp cli index_repository --repo-path <repo> --mode full

Response:

"excluded":{"dirs":[".claude",".git",".vscode",".superpowers","src/lib/deploy","src/app/api/webhooks/deploy"],"count":6}
  • No .gitignore / nested gitignore / global excludes / .cbmignore match these paths (git check-ignore exits 1).
  • strings on the binary confirms deploy, deployment, deployments in the built-in name list.
  • Symbols from those dirs (verified via search_graph) are absent from the graph.
  • A .cbmignore negation can't rescue them — per docs, negation only overrides the git-global-excludes layer.

Why it matters

Unlike dist/target/vendor, deploy is a common source directory name (deployment engines, deploy/ K8s dirs that the README's own IaC-indexing feature targets). The exclusion is silent unless the user inspects excluded — and it's capped at 25 entries, so on bigger repos it may not even be visible there.

Suggested fixes (any of)

  1. Let .cbmignore negation (!src/lib/deploy/) override the built-in list — most flexible.
  2. Remove deploy/deployment(s) from the always-on list (or demote them to fast/moderate modes only, like docs/examples).
  3. Only skip these names when they contain no parseable source files (heuristic).

Workaround used

Index the excluded dirs as companion projects:

codebase-memory-mcp cli index_repository --repo-path <repo>/src/lib/deploy --name myrepo-deploy-lib --mode full

— works, but loses cross-file edges into the main project graph.

Activity

  1. added this to the 0.9.1-rc milestone on Jul 22, 2026
  2. added
    bugSomething isn't working
    ux/behaviorDisplay bugs, docs, adoption UX
    priority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.
    on Jul 22, 2026
  3. DeusData commented on Jul 22, 2026

    @DeusData
    Owner

    Thanks for the concrete tracked-file reproduction. This is now a high-priority 0.9.1-rc silent-incomplete-index bug under #391. The built-in directory list must not make legitimate source permanently unindexable; the RED case will preserve git-compatible root anchoring and prove that either an explicit include/negation can override the built-in name or the overbroad deploy names are removed from the unconditional set.

  4. DeusData commented on Oct 19, 2026

    @DeusData
    Owner

    Thank you for showing legitimate tracked source under deploy directories. I have no new verified change to the built-in exclusions or include-override behavior to report; the loss of cross-file edges with companion projects remains part of the problem.

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

    bugSomething isn't workingeditor/integrationEditor compatibility and CLI integrationparsing/qualityGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.ux/behaviorDisplay bugs, docs, adoption UX

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions