dartograph 0.6.0
A minor release: the public library API was trimmed to what is actually supported, plus output-fidelity fixes and a pub workspace membership hardening. CLI behavior and exit codes are unchanged for normal inputs.
Library API (breaking for library consumers; CLI unchanged)
- Removed
querySymbol(a one-shot wrapper used only bytool/benchmarks) — construct aSymbolQuerySessionand callquery. - Removed
CodeGraph.usageEdgesFrom(no product caller) — filterCodeGraph.edges. SymbolQuerySession.analysisis no longer public. UsedeadDeclarations(an unmodifiableList<DeadFinding>) for thequery --baselineflow, orSymbolQuerySession.queryfor reachability (each document carries the symbol's reachability state).DeadFindingis now exported;ReachabilityResult/ReachabilityExplanationstay internal, so no public member references an unexported type.
Fixes & hardening
- SARIF: output no longer corrupts already-absolute source URIs —
file:(out-of-root) andpackage:(dependency) sources are passed through instead of being split on/and re-encoded (file:///a.dartused to becomefile%3A///a.dart). Project-relative sources keep the existing backslash-/percent-safe encoding. - HTML graph: a library whose file name contains
::is classified correctly (via the.dart::declaration boundary) instead of being shown as a member with a truncated name. bridgespub workspace: detection now validates membership. Aresolution: workspacepackage joins the nearest ancestorworkspace:root when that root plausibly lists it (explicit paths matched after URL normalization; glob entries and non-list values conservatively accepted). A well-formed explicit list that omits the package falls back to the scan root with a newpub-workspace-member-not-listedlimitation, so a misconfigured workspace never silently skews the isthmus join basis.
Docs
- README revised for clarity (English original + Korean twin); no behavior change.
Full details: CHANGELOG.md (English) / CHANGELOG.ko.md (Korean).
Install: dart pub global activate dartograph — pure Dart CLI, Dart SDK 3.11+, no Flutter SDK required. MIT licensed, permanently free (commercial use included).