Preserve fractional-millisecond decoder evidence in timing evaluator

This commit is contained in:
karl committed 2026-10-13 20:52:35 +02:00
1 parent 2c3c91179b
commit f15ee07ed0
2 files changed
+35 -5

No files matched your search

@@ -138,3 +138,17 @@ missing source windows prohibit numeric accepted timing scores. Historical
full-source gated DTW **6/8** is context, never an inherited result or an isolated
causal comparison with this end-to-end hybrid run. No new timing score exists
until this exact mode executes and all checks finish.
The first attempt at `.searchi/qa/speech-live-timing-v1` failed during source
preflight, before any model load or inference. Its immutable `failure.json`
SHA-256 is `9ba49fd5cdb69e57c267f579818f226949b02eafbc0e592161fad7593f00c6aa`.
The bark recording lasts 2.038594 seconds: its rounded 2039 ms window implies
32624 samples, while aligned decoding correctly retains 32618 real samples.
The six-sample difference is 0.375 ms. The evaluator now accepts the existing
one-millisecond coverage bound (16 samples), without padding, trimming or
changing source bytes, labels, ranking, or DTW points. Its regression test
accepts that real tail and rejects a 17-sample discrepancy and invalid bounds.
Seven Rust tests, strict all-target Clippy and five timing-adapter tests passed.
A retry must use a fresh output directory after the corrected evaluator is
frozen and the CPU inference slot is granted again; the failed attempt remains
preserved and has no quality score.