Repository navigation
dartograph 0.8.0
dartograph 0.8.0 — five-axis review improvements + pub score fixes
Added
dartograph init [--force] [<package-root>]writes a commented
dartograph.yamlconfiguration template (atomic replacement, conflict guard
with exit 64,--forceoverwrite; advertises only the implemented
entry_pointsschema)- Runnable
example/main.dartdemonstrating the public library API
(CodeGraph → snapshot → SymbolQuerySession → finding JSON)
Security hardening
skill --installno longer writes through a symlink at the destination
(narrow breaking change: a dangling symlink now requires--force, matching
init; any existing file or link is refused with exit 64 without it)- init, skill, and baseline writes share one atomic write boundary with
exclusive creation and unpredictable temp names - Repository-provided YAML configs (dartograph.yaml, pubspec.yaml,
rules --configlayers.yaml) larger than 1 MiB are rejected before parsing
(narrow breaking change for pathological inputs)
Changed
- Actionable CLI diagnostics: skill messages name the install path, rules
config failures are split (unreadable vs invalid), usage one-liners list
valid values, init warns when the target has no pubspec.yaml,--help
documents the skill install path and the exit-code contract
Performance
- Regular expressions hoisted out of hot loops (redundant-public operator
pattern, fact-cache keys, bridge fact validation, generated-sibling
matching) and per-source limitation memoization; analysis output remains
byte-identical for inputs the new bounds do not affect (verified by
artifact hash equality)
Dependencies
- analyzer widened to
>=14.3.0 <15.0.0(14.4.x validated per
doc/DECISION-analyzer.md); weekly analyzer-freshness CI watches for new
analyzer minors
Full Changelog: v0.7.0...v0.8.0