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
(measured on 0.10.2; cr_store_has_exact_project is unchanged on main and in v0.10.3 as of 2026-08-14)
Platform
Windows (x64)
Install channel
GitHub release archive / install.sh / install.ps1
Binary variant
standard
What happened, and what did you expect?
Cross-repo passes reject perfectly healthy, fully indexed projects — as both source and target — with:
cross-repo source or target project is missing, invalid, or not indexed
cr_store_has_exact_project (src/pipeline/pass_cross_repo.c:123-131) requires the target store's projects table to hold exactly one row for the project. But any project with at least one parse_partial file carries the designed shadow row <name>::missed — the miss-graph that check_index_coverage reads. src/mcp/mcp.c:2414 documents that shadow rows must be ignored by consumers; this code path doesn't.
I expected shadow rows to be filtered here exactly as list_projects already does. This looks like the same bug class as #1044/#1046 (fixed) — a consumer of the projects table that predates the miss-graph and never learned to skip shadows; this is a new site.
Impact measured on a real fleet: 14 of 22 .NET repositories rejected from cross-repo linking. The trigger is chronic for .NET, because stock Visual Studio-generated Dockerfiles produce a permanent parse_partial (#1610), so virtually every .NET repo carries a shadow row at all times. There is no workaround at the tool level: delete_project filters shadow names, and no config key disables the miss-graph — we resorted to deleting the rows with direct SQL, which the next reindex undoes.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "App.dll"]
Index it and confirm the shadow row exists:
codebase-memory-mcp cli index_repository --repo-path /tmp/demo --mode full
# store's projects table now holds "demo" AND "demo::missed"
Run any cross-repo pass with this project as source or target.
Result: cross-repo source or target project is missing, invalid, or not indexed.
Expected: shadow rows ignored (as list_projects does) and the pass runs.
Logs
cross-repo source or target project is missing, invalid, or not indexed
Confirmations
I searched existing issues and this is not a duplicate.
My reproduction uses shareable code (a dummy snippet or a public OSS repository), not proprietary code.
Version
codebase-memory-mcp 0.10.2(measured on 0.10.2;
cr_store_has_exact_projectis unchanged onmainand in v0.10.3 as of 2026-08-14)Platform
Windows (x64)
Install channel
GitHub release archive / install.sh / install.ps1
Binary variant
standard
What happened, and what did you expect?
Cross-repo passes reject perfectly healthy, fully indexed projects — as both source and target — with:
cr_store_has_exact_project(src/pipeline/pass_cross_repo.c:123-131) requires the target store'sprojectstable to hold exactly one row for the project. But any project with at least oneparse_partialfile carries the designed shadow row<name>::missed— the miss-graph thatcheck_index_coveragereads.src/mcp/mcp.c:2414documents that shadow rows must be ignored by consumers; this code path doesn't.I expected shadow rows to be filtered here exactly as
list_projectsalready does. This looks like the same bug class as #1044/#1046 (fixed) — a consumer of theprojectstable that predates the miss-graph and never learned to skip shadows; this is a new site.Impact measured on a real fleet: 14 of 22 .NET repositories rejected from cross-repo linking. The trigger is chronic for .NET, because stock Visual Studio-generated Dockerfiles produce a permanent
parse_partial(#1610), so virtually every .NET repo carries a shadow row at all times. There is no workaround at the tool level:delete_projectfilters shadow names, and no config key disables the miss-graph — we resorted to deleting the rows with direct SQL, which the next reindex undoes.Reproduction
Code being indexed — any dummy repo whose root
Dockerfileis the stock .NET shape (this alone yieldsparse_partial, see Dockerfile grammar flags stock .NET Dockerfiles asparse_partial#1610):Index it and confirm the shadow row exists:
Run any cross-repo pass with this project as source or target.
Result:
cross-repo source or target project is missing, invalid, or not indexed.Expected: shadow rows ignored (as
list_projectsdoes) and the pass runs.Logs
Confirmations