Skip to content

linked_projects stays empty until cross-repo-intelligence is run, and ["*"] is rejected #2133

Open

Description

@avigdorsky

Severity: medium — partly a docs issue.

linked_projects is [] for every freshly indexed project, which reads as "no
cross-repo links exist" rather than "this mode has not been run". When run, the
documented wildcard fails:

target_projects: ["*"]   → "cross-repo source or target project is missing, invalid, or not indexed"
target_projects: ["proj_a","proj_b"] → works

The tool description states Use ["*"] for all indexed projects.

Separately, the matches it produced were low-value: a frontend's client-side
router paths
(e.g. /dashboard in a React route table) were matched against
backend Route nodes, while the actual REST calls the frontend makes were not
matched at all.

Ask: fix or document the wildcard; distinguish client-side route strings from
HTTP call sites when matching.


Observed on v0.10.8 (build 996bad5fe6fb), macOS arm64, Python monorepo (~36k nodes / ~179k edges). Happy to provide a minimal reproduction repo if useful.

Activity

  1. added
    parsing/qualityGraph extraction bugs, false positives, missing edges
    ux/behaviorDisplay bugs, docs, adoption UX
    on Sep 9, 2026
  2. added
    bugSomething isn't working
    priority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.
    on Sep 9, 2026
  3. DeusData commented on Sep 25, 2026

    @DeusData
    Owner

    Thank you so much for this report, @avigdorsky, and for the careful before/after comparison of ["*"] against named targets. It pointed straight at the cause.

    The wildcard was documented correctly but broken by old data. If your cache held any project indexed before a July schema change (the IMPORTS local-name discriminator, #768), ["*"] picked that store up and then failed when it tried to open it for writing. The whole run aborted with the generic "missing, invalid, or not indexed" error, after it had already cleared the source's previous cross-repo edges. Naming your live projects avoided that store, which is why it worked.

    The fix is up as #2343: ["*"] now skips such stores (with a log line naming them), and an explicitly named legacy store is rejected up front, before anything is deleted. Until the release is out, re-indexing the older projects or removing their stale indexes also unblocks the wildcard.

    On linked_projects: it is filled only from cross-repo edges, which the opt-in cross-repo-intelligence mode creates, so it is empty until that mode has run. We agree "not run yet" should look different from "no links" and are discussing how best to show that. The client-side router versus REST-call matching point is tracked separately; a minimal repro repo for that part would be very welcome.

  4. added a commit that references this issue on Sep 30, 2026
  5. added a commit that references this issue on Sep 30, 2026
  6. DeusData commented on Sep 30, 2026

    @DeusData
    Owner

    Thank you again, @avigdorsky! #2343 is now merged to main as 6746f43 and covers part of this issue. We're keeping the issue open for the remaining work and will post here as it lands.

  7. DeusData commented on Oct 7, 2026

    @DeusData
    Owner

    #2346 is now merged to main as 1b581f1 and will ship in the next release. index_status and the UI now say whether cross-repo intelligence has never run for a project or ran and found no links (cross_repo: {"status": "never_run"} vs {"status": "ran", ...}), so an empty linked_projects is no longer ambiguous. A ["*"] run now names every pre-#768 store it had to skip, with a reindex hint, instead of only logging it. Thanks again, @avigdorsky!

  8. DeusData commented on Oct 19, 2026

    @DeusData
    Owner

    Thank you again for separating wildcard handling, never-run status, and router matching. The thread records partial fixes for the first two; I have no new verified status for the remaining client-router/REST matching case. A public minimal example for that distinct part is still useful if available.

  9. added
    awaiting-reporterWaiting on the reporter for info/repro; stale bot will warn then close
    on Oct 25, 2026
  10. DeusData commented on Oct 25, 2026

    @DeusData
    Owner

    Thank you again for separating the cases. The thread records fixes for wildcard handling and never-run status; a small public example of the remaining client-router versus REST-call matching case would still help with that distinct issue.

  11. github-actions commented on Oct 25, 2026

    @github-actions

    Thanks for the report! To move this forward we need a bit more so we can reproduce it ourselves:

    • the codebase-memory-mcp --version you're on
    • the exact steps or command you ran
    • a public repo (or a small dummy snippet) that shows the problem — please don't paste proprietary code

    Once that's here we'll pick it straight back up. Heads-up: issues left awaiting-reporter are automatically closed after a few weeks of silence, but a comment reopens the door anytime.

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

    awaiting-reporterWaiting on the reporter for info/repro; stale bot will warn then closebugSomething isn't workingparsing/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

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions