Skip to content

Name-only resolution is emitted as CALLS rather than CALL_REFERENCE #2126

Description

@avigdorsky

Severity: high.

41% of CALLS (20 549 of 49 544) carry confidence < 0.5, via unique_name (0.38)
and suffix_match (0.01–0.28). These are name guesses, yet they share an edge type
with LSP-resolved calls, so any consumer that does not filter gets noise.

Measured precision of the unfiltered intra-service CALLS layer: 52% (26/50).
With confidence >= 0.9: 92% (46/50).

Visible in the top-called list: filter resolves into a test module, "".join and
os.path.join both resolve to a _FakeQuery.join test stub.

Ask: emit low-confidence guesses as CALL_REFERENCE — the edge type already
exists and is barely used (163 edges here) — or expose a threshold so that CALLS
carries resolved edges only. Consumers currently cannot tell the layers apart
without knowing to filter on an undocumented property.


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

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 workingparsing/qualityGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions