ngcompass

Releases

Changelog.

Public release notes for ngcompass. Use this page to track new rules, behavior changes, migrations, and beta milestones without needing access to the private source repository.
01

v0.2.6-beta

Current betaAugust 2026
  • Added baselines — record the violations a project already has so CI fails only on newly introduced ones. Makes it possible to adopt ngcompass on an existing codebase without switching rules off or fixing the backlog first.
  • Added the ngcompass baseline command with four subcommands: create records the current state, update re-counts what this run scanned, prune follows renames and drops entries for deleted files, and show prints what is currently hidden, ranked by rule.
  • Added analyze --baseline [path] and --no-baseline, plus a baseline block in config accepting enabled, path, and onStale.
  • The baseline file stores a violation count per file and rule — no line numbers, no message hashes — so reformatting or moving code within a file does not invalidate it. Entries are sorted for reviewable diffs.
  • Renamed files are carried over when exactly one baselined path and one new path share a base name; anything ambiguous is reported as new rather than guessed at.
  • onStale controls what happens once baselined violations get fixed — warn by default, or error to make the baseline a ratchet that can only shrink. Console and HTML reports both show how many violations the baseline hid.
  • Baselines are applied after analysis as a filter on results, so they never enter a cache key and filtered results are never written back to the cache.
  • Reorganized every package by capability with shared domain types under src/models. Public type surfaces were verified unchanged — this is an internal change with no migration required.
02

v0.2.4-beta

Previous betaAugust 2026
  • Added Angular version awareness — rules now declare the Angular version they apply from, and ngcompass skips the ones your project is too old for instead of reporting fixes you cannot apply.
  • The Angular version is detected automatically: installed @angular/core first, then the @angular/core range declared in package.json. When it cannot be resolved, every rule runs and the CLI says so.
  • Added the angularVersion config option to pin the version explicitly — useful in monorepos where the config sits outside the Angular workspace. Accepts "17" or "17.2"; range prefixes are rejected by config health with invalid-angular-version.
  • A rule you name explicitly in the rules block always runs, even below its version floor — your config still wins over the version gate.
  • 14 of the published rules are version-gated, from prefer-inject-over-constructor-di (Angular 14) up to signal-prefer-output-function (Angular 17.3). Every floor is listed on the Rules page.
  • Relicensed ngcompass under the MIT License — free to use, modify, redistribute, and sublicense in personal and commercial projects.
03

v0.2.3-beta

Previous betaAugust 2026
  • Added ngcompass complexity command — cyclomatic and cognitive complexity per function, exported as JSON for the Complexity heatmap viewer at ngcompass.dev/complexity.
  • Added ngcompass callgraph <file> command — a per-file intra-file call graph showing which functions call which, including module-level calls and external calls.
  • Added ngcompass visualize command — unit-level structure for a file, exported for the viewer at ngcompass.dev/visualize.
  • Tightened CLI command validation so unknown commands and malformed flags fail with a clear message instead of a stack trace.
04

v0.2.2-beta

Previous betaJune 2026
  • Added ngcompass graph command — generates a full JSON import dependency graph that can be loaded into the interactive Dependency graph viewer at ngcompass.dev/graph.
  • Added ngcompass circular command — scans for circular import chains and outputs JSON that can be loaded into the Circular dependencies viewer at ngcompass.dev/cycles.
  • Both commands accept --output <path> to control the output file and --tsconfig <path> for non-default TypeScript project configs.
05

v0.2.1-beta

Previous betaJune 2026
  • Added the new zoneless preset covering 22 checks for zone.js-free Angular apps, including legacy lifecycle hooks (ngOnInit, ngOnChanges, ngDoCheck, ngAfter*), NgZone usage, provideZoneChangeDetection, raw zone.js imports, and reactive forms.
  • Added zoneless-aware testing rules: no-detectchanges-testing, no-ngzone-testing, and no-zonejs-testing-functions (fakeAsync, tick, flush, waitForAsync).
  • Added no-directive-accessor and no-view-decorator to nudge signal-based view queries and computed-derived template state.
06

v0.2.0-beta

Previous betaMay 2026
  • Added ng add setup guidance so Angular projects can install ngcompass locally and generate config in one step.
  • Updated public beta metadata and website references for v0.2.0-beta.
  • Documented the PolyForm Shield 1.0.0 license across the public site.
07

v0.1.4-beta

Previous betaMay 2026
  • Replaced --type-aware-chunk-size flag with the new --mode preset flag (balanced | turbo).
  • balanced is the default, turbo maximises throughput on capable machines.
  • Performance mode selection now covers chunk size, concurrency, isolation, and chunk strategy in a single flag.
08

v0.1.2-beta

Previous betaMay 2026
  • Initial beta release of the ngcompass CLI.
  • Angular architecture, reactivity, SSR, performance, security, and template rule categories.
  • Console, JSON, SARIF, and self-contained HTML report outputs.
  • Incremental cache for faster repeated analysis.
  • Presets and CI profile support for local and pipeline workflows.