v0.8.0 — unified confidence calibration
A 0.9 now means the same thing on every detector — so severity ranks across detectors.
Changed
- Unified confidence calibration. Confidence was computed three incompatible ways (
1−pfor distributional/multivariate; logistic-over-threshold for point/contextual/collective/PSI; linear for cadence). Now every detector routes through one sharedax_detect::calibrate: confidence is a logistic of how far the detector's statistic sits past its firing threshold, measured relatively so units cancel —0.5at the threshold, rising toward1.0. A finding "2× past threshold" earns the same confidence whether it came from a modified z-score, a KS p-value, a PSI, or a cadence CV. - This makes
severity(and--top/--min-severity) rank findings from different detectors on one scale — and replaces the old1−pthat saturated everything to "critical" with a real gradient.
Impact / contract
Recalibrates every published confidence and severity. config_version bumped (anomalyx-cfg/8) so the change is visible. Envelope shape and PROTOCOL unchanged. score remains the detector's raw statistic for drill-down.
Also
- Parser robustness harness (fuzz-style property tests: no parser panics/hangs on arbitrary/magic-prefixed/truncated bytes; normalize is deterministic over fuzz inputs).
Gate
proptest + cargo-mutants 0 missed on calibrate.rs (32/32) and every touched detector file.
Install: cargo install anomalyx
Full changelog: v0.7.0...v0.8.0