Skip to main content

Module graph

Module graph 

Source

Structs§

AnalysisResult
GraphEdge
GraphNode
ModuleState
RootImpact
The blast radius of a single input file, so a multi-file run can show each file’s impact individually alongside the combined total.
RootImpactFile
A single file impacted by a particular input file.
Summary
Workspace
A workspace package discovered in the repo, used to group impacted files by the package they live in.

Enums§

AnalysisMode
AnalysisTarget
EdgeKind
NodeKind
RiskTier
The headline blast-radius verdict. Ordered least-to-most severe so callers can gate on tier >= threshold (see --fail-on-risk).

Constants§

SCHEMA_VERSION
Version of the JSON output schema. Bump on breaking changes to the serialized shape (renamed/removed fields, changed meanings); additive fields do not bump it.

Functions§

compute_tier
Reach and spread drive the tier; ambiguity is surfaced as a confidence caveat elsewhere rather than inflating the score, so the headline stays trustworthy. affected counts downstream files (excludes the target); packages is the number of distinct packages they span.
normalize_separators
Normalize the separators in a path label to /. Labels are built from Path::display(), which uses \ on Windows, while every grouping rule in this module and the reports splits on / — without this, on Windows every file collapses into package . and the package count degrades to 1.
package_key
Map a repo-relative path to the package that owns it: the longest matching workspace root, falling back to the top-level directory. workspaces is expected to be sorted longest-root-first. Both the path and the workspace roots are separator-normalized defensively, so Windows-style labels still group correctly.