Skip to content

v1.1.0 — column roles across all detectors

Choose a tag to compare

@copyleftdev copyleftdev released this 01 Jun 23:37
· 6 commits to main since this release
b173338

Changed

  • Column roles now gate every value-distribution detector, not just point. ctx.seasonal, coll.cusum, dist.ks / dist.psi / dist.chi2, and mv.mahalanobis now skip identifier and sequence columns (and exclude them from the Mahalanobis feature space). A seasonal subseries, level shift, drift test, or joint distance over arbitrary ids or a monotonic ramp is noise — closing the gap where coll.cusum still flagged a syslog procid shift. struct.schema stays role-agnostic; cad.regularity uses only the explicit --cadence column. A shared Role::skips_value_detection() centralizes the rule.
  • Output changes when column_roles = true, so the config_version fingerprint is bumped (anomalyx-cfg/9). Envelope shape and PROTOCOL unchanged; --no-column-roles restores pre-roles behavior everywhere.

Testing

  • Scoped the parser-robustness fuzz harness's magic-prefixed test to formats whose decode allocation anomalyx bounds (sqlite). Binary container decoders (parquet/arrow/avro/orc/evtx/pcap) trust internal length fields and can over-allocate on adversarial input — a dependency property, now documented rather than asserted (it had surfaced as an intermittent OOM).

Gate

proptest + cargo-mutants 0 missed across all six changed files; goldens re-blessed; CI green.

Install: cargo install anomalyx

Full changelog: v1.0.1...v1.1.0