v1.1.0 — column roles across all detectors
Changed
- Column roles now gate every value-distribution detector, not just
point.ctx.seasonal,coll.cusum,dist.ks/dist.psi/dist.chi2, andmv.mahalanobisnow skipidentifierandsequencecolumns (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 wherecoll.cusumstill flagged a syslogprocidshift.struct.schemastays role-agnostic;cad.regularityuses only the explicit--cadencecolumn. A sharedRole::skips_value_detection()centralizes the rule. - Output changes when
column_roles = true, so theconfig_versionfingerprint is bumped (anomalyx-cfg/9). Envelope shape andPROTOCOLunchanged;--no-column-rolesrestores 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