v5.0.0
spoofline export --onnx writes both streams as ONNX with the normaliser folded into the graph and a dynamic batch and step axis, and refuses to finish unless every clip's ONNX Runtime logit is within 1e-4 of the PyTorch logit; on the demo run the largest difference is 3.81e-06 over 32 clips for both streams.
spoofline model-card renders a card from the last evaluation run with the data note, the splits, every threshold and its score formula, seen and unseen metrics for all four detectors, the robustness table and the limitations, and the card of the demo run is committed as docs/MODEL_CARD.md.
spoofline score now takes any number of clips and with --json emits one document carrying schema_version, the run directory and every logit, probability, flag, both decisions and the triggering stream per clip.
spoofline bench reports per clip p50 and p95 CPU latency for each stream and end to end on both engines: PyTorch 10.07 ms, 2.54 ms and 17.04 ms at p50, ONNX Runtime 4.50 ms, 2.05 ms and 8.44 ms, on one thread while another heavy job shared the machine.
The test suite is 151 tests, and two separate full demo runs produced byte identical summary blocks apart from their timings.