Skip to content

dartograph 0.8.0

Choose a tag to compare

@ictechgy ictechgy released this 13 Sep 16:21
· 238 commits to main since this release
8d8baa3

dartograph 0.8.0 — five-axis review improvements + pub score fixes

Added

  • dartograph init [--force] [<package-root>] writes a commented
    dartograph.yaml configuration template (atomic replacement, conflict guard
    with exit 64, --force overwrite; advertises only the implemented
    entry_points schema)
  • Runnable example/main.dart demonstrating the public library API
    (CodeGraph → snapshot → SymbolQuerySession → finding JSON)

Security hardening

  • skill --install no 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 --config layers.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