NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A CLI tool and Dart library for static architecture analysis, Clean Architecture layer governance, circular dependency metrics, and graph visualization.
Last release 5 days ago
03 Oct 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
7 releases · first in 2026
One column per month.
docs: documentation site, README refresh, API docs and community files (v1.4.1) by @creatorpiyush in #9
Full Changelog: v1.4.0...v1.4.1
arch_guard instead of the old "Dependency Graph Visualizer" name.pubspec.yaml links the documentation and issue tracker.v1.4.1 Latest
Latest
Compare
feat: arch_guard init, layer presets and actionable violation messages (v1.4.0) by @creatorpiyush in #8
Full Changelog: v1.3.0...v1.4.0
arch_guard init. Detects the project layout (Clean Architecture, Riverpod, Bloc or feature-first folders), writes a starter arch_guard.yaml, and previews the first scan: files per layer, violations, cycles, and the suggested next step. Options: --preset <name|auto|none>, --dry-run, --force.preset: clean_architecture | feature_first | bloc | riverpod in the config expands to predefined layers. Entries under layers: override a preset layer key by key (for example only allowed_imports) or add new layers. feature_first discovers features from lib/features/* (or lib/modules/*) on every run, so each feature may import only itself and shared code.Rule: `presentation` may only import `core`, `domain`, `presentation`.) and the output ends with how to fix it. SARIF and Markdown reports include the rule too; LayerViolation gains allowedImports, rule and suggestion, and the JSON report includes allowedImports.ArchGuardConfig.parse() reads configuration from a string; LayerCoverage.layerFileCounts counts files per layer; LayerPresets and LayoutDetector are exported.arch_guard init now prints the init usage instead of the main one.feat: baselines, SARIF and Markdown reports, GitHub Action and pre-commit hook (v1.3.0) by @creatorpiyush in #7
Full Changelog: v1.2.1...v1.3.0
--update-baseline records today's circular dependencies and layer violations in arch_guard_baseline.json. When that file exists, later runs fail only on new problems: a known cycle may shrink, but one that grows or merges with another counts as new. Fixed entries are reported so the baseline can be tightened. Use --baseline <path> for a different location. Library users get Baseline and BaselineComparison.-f sarif) writes arch_guard.sarif (SARIF 2.1.0) for GitHub Code Scanning, Azure DevOps and SARIF viewers in IDEs. Results point at the offending import line, use paths relative to the git repository root, and carry baselineState when a baseline is in use.-f markdown) writes arch_guard_report.md: new problems first, then a collapsible Mermaid graph of the cycles. Ready for PR comments and CI job summaries.uses: creatorpiyush/arch_guard@v1.3.0 downloads the checksum-verified release binary, writes the Markdown summary to the job summary, keeps one up-to-date PR comment, and can upload SARIF to Code Scanning..pre-commit-hooks.yaml, and the README has recipes for pre-commit, lefthook and plain git hooks.--version flag and the packageVersion constant.LayerViolation.line, GraphEdge.line, ExtractedDirective.line); the JSON report includes it.-f all now also writes the SARIF and Markdown reports.plan.md, IDE files, build/) are no longer included in the published package.chore: release v1.2.1 - lower SDK floor to 3.8, cross-platform CI, standalone release binaries by @creatorpiyush in #6
Full Changelog: v1.2.0...v1.2.1
arch_guard as a dev dependency.SHA256SUMS.txt, so CI pipelines can run arch_guard without installing the Dart SDK..metadata file from the repository.Fix/scan scope and workspace discovery by @creatorpiyush in #5
Full Changelog: v1.1.3...v1.2.0
--scan-dir was ignored whenever workspace discovery was on (the default). A single-package project is no longer treated as a workspace, and in workspace mode the root package honours --scan-dir.workspace: list, only packages/ and apps/ are searched, and example/, test/ and tool/ packages are skipped. Previously example/ apps and test fixtures were scanned and could report false cycles. Monorepos with other layouts should declare a workspace: list.max_scc_size is enforced: any circular-dependency group larger than the limit fails the run (exit code 1), even with --no-fail-on-cycle.allowed_imports naming unknown layers, layers that match no files, files that belong to no layer, and unreadable source files are now reported on stderr instead of being silently ignored. LayerValidator.coverage(), ArchGuardConfig.warnings and ScanResult.skippedFiles expose the same data to library users.part directives produce library -> part edges (type part, drawn dotted in DOT/Mermaid/HTML); FileNode.parts lists them.// or /* inside URIs or comments, nested block comments, annotations and import-like text inside later string literals no longer cause wrong results.<, > and & in the embedded JSON.DepGraphConfig is now ArchGuardConfig (the old name remains as a deprecated alias). The legacy dep_graph.yaml file and dep_graph_visualizer: pubspec key still work but emit a deprecation warning; the example now uses arch_guard.yaml.example/sample_project/build/.feat: update the package name to make it more explicit by @creatorpiyush in #3
Full Changelog: v1.1.2...v1.1.3
LayerValidator): Layer glob patterns such as lib/domain/** were silently never matching workspace-prefixed file paths (e.g. packages/auth_pkg/lib/domain/entity.dart). The validator now also tests the lib/… suffix of each path, making single-package and workspace arch_guard.yaml configs interchangeable with no user-side changes required.ImportReader.resolveUri): p.normalize(p.join(…)) could produce backslash-separated paths on Windows, causing all resolved edge targets to silently miss the forward-slash-keyed filesMap and disappear from the graph. All three return paths now force / separators.TextReporter): The Workspace Pkgs: line was missing a space before the count, producing misaligned output (e.g. Workspace Pkgs:3 instead of Workspace Pkgs: 3).feat(exporter): add offline vis-network bundling and mermaid ID sanitization by @creatorpiyush in #2
Full Changelog: v1.1.1...v1.1.2
--offline HTML Support: Inlined Base64-encoded vis-network.min.js (v10.1.0 UMD) asset and system font fallbacks when --offline flag is specified.stabilizationIterationsDone event listener to freeze Vis-Network force calculation after stabilization to eliminate CPU background spin.a-b.dart vs a_b.dart) and quote label sanitization (#quot;).THIRD_PARTY_NOTICES.md for bundled vis-network Apache-2.0/MIT software licensing.Your coding agent can read these notes before it upgrades. Set up the MCP server →