v2.0.0-rc.4
Pre-release
Pre-release
Severity levels & verdicts
- Severity levels are now expressed as false positives per 100M benign files (default L50); the old 1–9
scale is gone - Each model bundle ships its own default level; -l still overrides
- Every file reports l: the strictest level at which it fires
- "Suspicious" now means a file fires above the hostile budget but within the calibrated grid — no
separate calibration - Output shows the matched level and raw route scores; calibrated percentages were dropped (they saturate
to 1.0)
Models
- ONNX is now the only model format; LightGBM and XGBoost loaders removed
- validate fails bundles with feature-layout drift instead of silently scoring zeros; features are matched
by name, so reordered specs can't misalign - Archive routing treats tar.gz as tar, matching training labels
- New validate --skip-traits checks a model independently of trait updates
Worker
- Memory-aware admission: large archives run one at a time instead of co-residing and exhausting RAM
- Analyses share one thread pool with larger stacks, fixing overflows under concurrent deep archives
- Oversized results post the verdict without the raw report rather than losing the analysis
- New heartbeat API reports liveness, load, queue depth, and throughput even while busy
- Native FreeBSD deploy support; correct CPU detection on illumos/Solaris
- bench_hopper: a local mock server for benchmarking the worker end to end
Other
- Daily zero-telemetry update check; a hosted manifest also pins the matching models ref
- scan accepts files and directories together in one run
- Dependency updates