fix(extract): isolate member-call resolvers and import edges from cross-language interference - #2503
Graphify — worth a look
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Details
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Graphify review — findings
This pull request modifies the member-call resolvers and import-edge handling in graphify/extract.py, adding per-language scoping so that resolvers consume only raw calls and receiver-type indices from source files they own rather than across all languages. It introduces new helpers (_hint_import_targets, _file_nids_by_path) and an _IMPORT_STEM_LANGUAGES table to stamp target_file hints on stem-named import edges before id-disambiguation runs, and defines per-resolver suffix constants. The changes also include corresponding CHANGELOG entries and new/updated tests in the mixed-corpus member-call and import-alias-disambiguation suites. Surface area spans import target resolution (Python, Rust, Zig, Elixir, PowerShell, Pascal, Bash), member-call resolution across multiple languages, and their associated tests.
Worth a look
- imports_from edges may name target differently than a bare stem id, mis-stamping target_file —
graphify/extract.py· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 1720 functions depend on the 486 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
extract()— 428 callers, 41 callees
Verification — 1720 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 1580 function(s) in the blast radius were not formally verified this run