Skip to content

feat: JS/TS alias fixtures + unresolved-alias uncertainty note + docs (3/3)#36

Merged
NehharShah merged 1 commit into
issue-3/workspace-name-resolutionfrom
issue-3/js-fixtures-findings-docs
Jul 10, 2026
Merged

feat: JS/TS alias fixtures + unresolved-alias uncertainty note + docs (3/3)#36
NehharShah merged 1 commit into
issue-3/workspace-name-resolutionfrom
issue-3/js-fixtures-findings-docs

Conversation

@NehharShah

Copy link
Copy Markdown
Owner

What

Final PR of the issue-3 stack (stacked on #35, which is stacked on #34). Adds the acceptance fixtures, discloses dropped alias edges, and updates findings/README:

  • Acceptance fixture test: a repo with Next.js-style @/… aliases and a pnpm-workspace @acme/core import produces exactly the edges the equivalent relative imports produce.
  • deps.collect now takes an optional stats dict; imports that matched a tsconfig/jsconfig paths pattern but whose targets exist nowhere in the tree are counted as js_alias_unresolved (stored in kg.json as edge_stats), and findings.build turns a non-zero count into an uncertainty note surfaced by repokg audit — no silent coverage loss.
  • JS/TS findings entry rewritten to reflect resolved alias coverage (kept at medium: extraction is still regex-based and extends chains / package exports maps are not modeled — the rationale now says exactly that).
  • README: import-graph table row, Known limitations bullet, and roadmap checkbox updated.

Why

Resolves #3 (PR 3/3 of the stacked plan — closes the issue once the stack lands)

The acceptance criteria require alias/relative edge parity and unresolved aliases counted in an uncertainty note; both are implemented and tested here. Third-party bare imports that never matched a pattern are not counted — only pattern matches that failed to ground, which is the signal that coverage was actually lost.

Testing

  • 3 new tests: alias-vs-relative edge parity on the combined Next.js + pnpm fixture, js_alias_unresolved counting (non-alias misses excluded), and the uncertainty note rendering from edge_stats
  • Full suite: 80 tests, all green
  • Dogfood: repokg scan . --no-github + repokg audit shows the new findings text; repokg clean round-trips

Checklist

  • Branch is named issue-<N>/<short-description>
  • Zero new runtime dependencies (stdlib only)
  • Heuristics register findings with confidence + evidence (JS/TS entry updated; unresolved aliases become an uncertainty note)
  • New artifacts are reversed by repokg clean (edge_stats lives inside kg.json, already cleaned)
  • Tests added/updated and python -m unittest discover -s tests passes

@NehharShah
NehharShah merged commit bc870b4 into issue-3/workspace-name-resolution Jul 10, 2026
3 checks passed
NehharShah added a commit that referenced this pull request Jul 10, 2026
…-land 2/3 + 3/3) (#37)

* feat: workspace package-name resolution for JS/TS imports (issue-3, PR 2/3) (#35)

* feat: JS/TS alias fixtures, unresolved-alias uncertainty note, findings/README update (issue-3, PR 3/3) (#36)
@NehharShah
NehharShah deleted the issue-3/js-fixtures-findings-docs branch July 10, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant