Release ledger

Release

v3.0.0

one pane of glass

Argus 3.0 replaces four overlapping config blocks with two — libraries and couplings — so a library's whole policy lives in one place. The new schema compiles down to the same proven engine, so a v3 config produces identical remediations to its 2.x equivalent. The startup error carries the full field map.

Highlights

  • 01

    Unified configuration

    offlimits, ceilings, complications and delegation become libraries: (per-coordinate policy) and couplings: (trigger-driven waves). Contradictions that 2.x tolerated silently are now load errors that name the offending entry.

  • 02

    Behaviour is unchanged

    The 3.0 schema compiles down to the same internal structures the engine already used; a v3 config and its 2.x equivalent produce byte-identical planning output, proven by a compile-down parity test on a real project.

  • 03

    Guided migration

    Configs using a 2.x policy block are refused at startup with an error carrying the 2.x-to-3.0 field map. Empty and registry-only configs are unaffected.

  • 04

    Bump + exclude no longer crashes

    A dependency both version-bumped and carrying a transitive exclusion (the common commons-text to commons-lang3 shape) used to abort the whole run; co-located edits now compose sequentially. Pre-existing since 2.x.

Full notes

Changed

  • Unified config.yml schema (libraries + couplings); 2.x policy blocks refused at startup with the field map inline (ADR-044).

Fixed

  • Co-located POM edits (bump + exclusion on one dependency) compose sequentially instead of crashing the final pass.
  • Patches preserve the source POM's line endings (no mixed CRLF/LF).