feat: JS/TS alias fixtures + unresolved-alias uncertainty note + docs (3/3)#36
Merged
NehharShah merged 1 commit intoJul 10, 2026
Conversation
…gs/README update (issue-3, PR 3/3)
NehharShah
merged commit Jul 10, 2026
bc870b4
into
issue-3/workspace-name-resolution
3 checks passed
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
@/…aliases and a pnpm-workspace@acme/coreimport produces exactly the edges the equivalent relative imports produce.deps.collectnow takes an optionalstatsdict; imports that matched a tsconfig/jsconfigpathspattern but whose targets exist nowhere in the tree are counted asjs_alias_unresolved(stored inkg.jsonasedge_stats), andfindings.buildturns a non-zero count into an uncertainty note surfaced byrepokg audit— no silent coverage loss.medium: extraction is still regex-based andextendschains / packageexportsmaps are not modeled — the rationale now says exactly that).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
js_alias_unresolvedcounting (non-alias misses excluded), and the uncertainty note rendering fromedge_statsrepokg scan . --no-github+repokg auditshows the new findings text;repokg cleanround-tripsChecklist
issue-<N>/<short-description>repokg clean(edge_statslives inside kg.json, already cleaned)python -m unittest discover -s testspasses