Skip to content

Fono

v0.3.2 Bugfix

This release fixes issues for SREs watching stability and regressions.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

assistant dictation linux llm local-first rust
+5 more
speach-to-text stt vulkan whisper wyoming

Affected surfaces

auth

Summary

AI summary

Fixed cloud STT post-validation gate to correctly detect language and normalize it before allow‑list checks.

Full changelog

Hotfix: cloud STT post-validation gate did not actually run because the
default json response format does not include the detected language.
v0.3.1's confidence-aware rerun was correct but unreachable.

Fixed

  • Cloud STT post-validation gate now actually fires. The first-pass
    Groq / OpenAI request was using response_format=json (the implicit
    default), which does not include the detected language field —
    only verbose_json does. The post-validation block at
    groq.rs:271/openai.rs:217/groq_streaming.rs:399 therefore
    silently skipped on every call, even when Groq returned Bulgarian
    for English audio with languages = ["ro", "en"]. Both batch and
    streaming first-pass requests now send response_format=verbose_json
    (zero latency cost — same endpoint, different output shape).
  • Detected language is now normalised from Whisper's full English name
    ("english", "bulgarian") to alpha-2 ("en", "bg") before the
    allow-list check, via a new crate::lang::whisper_lang_to_code
    helper covering all 99 Whisper-supported languages. Without
    normalisation, "bulgarian" != "bg" would have prevented the gate
    from firing even with verbose_json.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Fono

Get notified when new releases ship.

Sign up free

Beta — feedback welcome: [email protected]