This release includes 3 breaking changes for platform teams planning a safe upgrade.
Published 1mo
AI Agents & Assistants
✓ No known CVEs patched
✓ 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 summaryRemoved config field [audio].input_device breaking prior overrides, delegating microphone selection to the OS.
Full changelog
Added
- Empty-transcript microphone recovery. When a recording lasts at
least 3 seconds but produces no transcribed text — the typical
symptom of an external dock advertising a passive capture endpoint
the OS elected as the default source — Fono now pops a critical
desktop notification naming the silent device, the recording
duration, and the recourse: switch via the tray "Microphone"
submenu,pavucontrol, or your OS sound settings. Auto-suggested
alternatives are filtered to exclude HDMI / monitor / loopback /
S/PDIF decoys. - Tray "Microphone" submenu (Linux desktops with PulseAudio /
PipeWire). One row per source the audio server reports, marked
with the system default. Clicking a row runs
pactl set-default-sourceso the change applies system-wide and
is reflected inpavucontrol/ GNOME / KDE settings, then
hot-reloads the daemon so the next capture opens the new
endpoint. Hidden on hosts whereAudioStack::detect()returns
Unknown(macOS, Windows, pure-ALSA Linux) — the OS owns
microphone selection there.
Changed
- Microphone enumeration is now PulseAudio-first on Linux. When the
audio stack isPulseAudioorPipeWire(Pulse compat layer),
Fono lists sources viapactl list sourcesinstead of cpal's
ALSA host. Submenu rows show the source's friendly description
("Built-in Audio Analog Stereo", "Logitech BRIO") instead of
cpal's rawplughw:CARD=…PCM names; the chronic
snd_pcm_dsnoop_open: unable to open slaveerrors and the
ALSA plugin pseudo-device clutter (pulse,oss,speex,
default,surround51, …) that previously appeared in the
submenu are gone. macOS, Windows, and pure-ALSA Linux fall back
to cpal enumeration — unchanged. - Microphone selection is fully delegated to the OS layer. Fono
follows the PulseAudio / PipeWire default-source on Linux, the
macOS Sound input device, and the Windows recording default.
pavucontrol, GNOME / KDE settings, System Preferences and the
Sound control panel are the canonical places to choose a
microphone. fono doctor"Audio inputs:" section is now informational only.
Lists every device the active stack reports with one row marked
as the OS default; advice points at the tray submenu, pavucontrol,
or OS sound settings.
Removed
- Tray "Languages" submenu removed. The Languages submenu that
previously listed the configured BCP-47 peer set and offered
a "Clear language memory" action has been removed from the tray.
The language cache is cleared automatically and language preference
is managed viaconfig.tomlorfono use language. [audio].input_deviceconfig field. Fono no longer keeps a
capture-device override; the OS default is always used.fono use input <name>CLI subcommand. Use the tray "Microphone"
submenu,pavucontrol, or your OS audio settings instead.- First-run wizard's microphone picker. New users get the OS
default; switching afterwards is a tray-submenu click on Linux
desktops or an OS-settings change elsewhere. [general].language(deprecated scalar — use[general].languages).[stt.local].language(deprecated scalar — use
[stt.local].languagesor[general].languages).[general].cloud_force_primary_language(superseded by the
in-memory language cache shipped in v0.3.x).cloud_force_primarybuilders, struct fields, and dead first-pass
branches onGroqStt,GroqStreaming, andOpenAiStt.TrayAction::ClearInputDevicevariant (no override to clear).
Full Changelog: https://github.com/bogdanr/fono/compare/v0.3.5...v0.3.6
Breaking Changes
- Removed `[audio].input_device` config field; Fono now always uses the OS default microphone.
- Removed `fono use input <device>` CLI subcommand.
- Removed first‑run wizard's microphone picker; new users receive the OS default.
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
About Fono
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]