v2.31.0 — the release that made its evidence reproducible¶
Released 2026-08-24. Upgrade:
32 commits. v2.30.0 measured claims that had previously rested on assumptions. This release finishes the other half of that work: it makes the evidence behind those measurements identifiable, repeatable and difficult to misread.
Every published number now carries its evidence¶
The benchmark archive now contains the result behind every number published in the docs, including per-utterance rows where the aggregate alone was not enough. Each result records the exact command that produced it and a digest of the corpus in decode order, so two hosts cannot silently compare different subsets while both report “200 utterances”. Linux runs across three machines reproduced the same corpus digest.
The archive also gained paired significance analyses. They settle two choices the raw tables could not: beam 2 reaches the measured accuracy of beam 5 on both tested splits at lower cost, while beam 1 loses measurable accuracy on clean audio.
The latency governor stopped fighting the configured engine¶
The governor hardcoded beam 5 on its normal-load path. With the shipped configuration that missed the engine already in the pool and started loading a second copy of the same model in the background. It now preserves [stt] beam_size, reuses the existing engine, and uses the measured beam-2 policy when the machine is busy.
The diarization path received the same kind of correction: supplying a speaker count no longer silently disables the tuned clustering threshold. Documentation that compared results from different thresholds has been withdrawn, and the missing like-for-like measurement is now archived.
Reports preserve record boundaries and privacy¶
Log views no longer begin halfway through a multiline record, and support reports discard an entire DEBUG record rather than removing only the line containing the level marker. A DEBUG traceback can therefore no longer leave its continuation lines behind in a report that promises to exclude them.
Packaging and release checks now exercise the shipped product¶
- The macOS application no longer imports a Linux backend when
yazses doctorstarts. - The
.dmginspector reads the app's own metadata instead of mistaking a bundled Qt framework version for the YazSes version. - Intel macOS can resolve the TTS, Silero, read-back and
allextras again. - Windows CI installs the dependency group needed by the tests it runs.
- Release workflows match every future
v*tag instead of carrying a list of known majors. - Release completeness verifies that published artifacts have servable attestations, not merely that an attestation step ran.
Also fixed: verify no longer tells a silent room to lower a threshold already at its minimum; feature help names the command that enables a capability; pyannote access errors name both gated models and the current login command; and six surfaces now acknowledge the pyannote backend that already ships.
The full list — every change, measurement and limitation — is in CHANGELOG.md.