The E2E tests require MongoDB and only run in the nightly workflow.
Use --lib flag to run only unit tests in the regular CI check job.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The code graph produced disconnected "islands" because:
1. No Contains edges were created between File/Module nodes and their
children (functions, classes, structs), leaving file nodes isolated
2. Cross-file call resolution was too strict — calls like
`crate::config::load` failed to resolve to `src/config.rs::load`
Fix:
- After resolving explicit parser edges, synthesise Contains edges by
walking each node's qualified-name hierarchy and linking to the
closest ancestor that exists in the node map
- Improve edge resolution with module-path matching: strip Rust
prefixes (crate::, super::, self::) and try progressively shorter
suffix matches for cross-file calls
Adds 4 new tests covering Contains edge synthesis, dedup with existing
edges, cross-file module path resolution, and parent qname lookup.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>