v0.2.25

withastro/astrov0.2.25Aug 1, 2026by QuentinFuxa

AI Summary

A maintenance release adding the FunASR backend and fixing significant issues with diarization and error handling.

Key Highlights

  • New FunASR SenseVoiceSmall backend with multi-language support.
  • Fixed silent failure in qwen3 diarization.
  • Improved error handling for invalid session parameters.

New Features

  • FunASR backend support via `--backend funasr`.
  • SBOM attestations on published Docker images.

Full Release Notes

A FunASR backend, and diarization unbroken for qwen3.

## Added
- FunASR SenseVoiceSmall backend (`--backend funasr`): auto, Mandarin, Cantonese, English, Japanese and Korean on the LocalAgreement policy, with fail-closed timestamp validation and per-session language overrides. Install with the `funasr` extra. (#385, thanks @LauraGPT)
- Published Docker images now carry SBOM attestations, and the provenance mode is pinned explicitly. (#390, thanks @kobihikri)

## Fixed
- qwen3 backends with `--diarization` silently stopped emitting updates as soon as the first line was diarized: the qwen3 package's own token type lacked the helpers the alignment needs. Tokens are now normalized to WhisperLiveKit's `ASRToken` at the factory boundary. (#389, thanks @OookTheLibrarian)
- Diarization span corruption in `concatenate_diar_segments`.
- `--language yue --buffer-trimming sentence` crashed on a bare assert even though the sentence tokenizer supports Cantonese. (#392)
- Invalid per-session parameters (such as an unsupported `?language=`) now produce a structured error and close code 4400 on the WebSocket endpoints, and HTTP 400 on the REST endpoint, instead of an unexplained handshake failure. (#393)
- `wlk pull funasr` and `wlk rm funasr` explain that funasr manages its own model cache instead of exiting 1 silently. (#394)