Skip to content

graph-export: add unresolved breakdown + warn on high unresolved ratio (test noise) #148

Description

@dreamlx

Context

Dogfood 2026-08-03, two related observations sharing the graph-export diagnostic output pipe:

(a) Unresolved breakdown is opaque. Summary reports only a total (23445 unresolved). Cannot distinguish "external library calls / test noise / ast-inherent" without manual grep + python.

(b) Test files not excluded → 81% unresolved noise. The resolved/unresolved ratio is drowned by test-library calls (screen/expect/jest).

Verified state

The data already exists on each edge: resolution_qualifier (resolved/ambiguous/unresolved) + dst_raw. It's just not aggregated in the summary — cli_graph_export.py:108-118 only counts ambiguous/unresolved totals.

Proposed fix

(a) Breakdown. In the graph-export summary, bucket unresolved edges by pattern — e.g. external-library calls / this.-member / bare-token / test-framework objects. Lets the user tell "config problem (tests not excluded)" from "ast ceiling" at a glance.

(b) Hint, not gate. On graph-export, if unresolved > ~70%, emit a WARNING: "high unresolved ratio — may include test files; consider excluding them in .codeindex.yaml". Prompt, do not auto-exclude. Aligns with the product principle (remind + suggest, don't auto-fallback, keep user control). Do NOT make setup wizard default-exclude tests (that would be an unrequested gate — see no_gate_from_dogfood).

Related

Same feedback group: graph-export reliability & diagnostics (dogfood 2026-08-03). Shares the graph-export summary/diagnostic pipe with the 0-entity fail-loud fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions