This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryRemoved --no-tray flag and sound feedback config fields.
Full changelog
Fixed
- Robust headless / systemd startup. Five regressions surfaced
when runningfono daemonon a headless inference box (Debian 13,
noDISPLAY, systemd) all collapsed into one pass:- Vulkan probe crash on shutdown.
ash::Entry::load()at
daemon start enumerates every Vulkan ICD on the host (incl.
Mesalvp/ LLVMpipe), which spawns CPU worker threads still
parked in futexes when glibcdl_finiunmapslibvulkanon
exit — segfault. The probe now runs in a disposable subprocess
(re-exec self withFONO_INTERNAL_VULKAN_PROBE=1) and the
parent reads a single tab-delimited result line off stdout
cached in aOnceLock. Any spawn / timeout / parse failure
collapses toOutcome::NotAvailableso the daemon never crashes
on a broken Vulkan stack. global-hotkeynull-display crash.global-hotkey0.6.4's
X11events_processorcallsXOpenDisplay(NULL)and then
dereferences the result viaXDefaultRootWindowwithout a
NULL check, segfaulting on hosts withoutDISPLAY/
WAYLAND_DISPLAY.fono_hotkey::spawn_listeneris now gated
onis_graphical_session(), the same runtime check the tray
already uses.- Systemd crash-loop on first run. The implicit first-run
wizard ran whenever~/.config/fono/config.tomlwas missing;
under systemddialogueraborts withIO error: not a terminal
and the unit restart-loops. The implicit wizard is now gated on
stdin().is_terminal(); with no TTY, Fono writes
Config::default()and continues. Explicitfono setupis
unchanged. - Redundant
daemon --no-trayin the systemd unit.daemon
is the implicit default and the tray is already runtime-gated
onis_graphical_session(), so the flag was dead weight.
ExecStartis now plain/usr/local/bin/fono. - Silent install failures.
systemctl enable --nowreturns
success the momentExecStartis spawned, so a unit that
crashes a second later (Restart=on-failureloop) was invisible
at install time.sudo fono installnow waits 2 s, runs
systemctl is-active, and on failure dumps the last 20 journal
lines plus the recommended follow-up command.
- Vulkan probe crash on shutdown.
Changed
-
--no-trayflag removed; system IPC socket tried first. The
tray is already runtime-gated onis_graphical_session(), making
--no-trayredundant. CLI clients (fono toggle,fono history,
fono use …, …) now try the system-wide IPC socket
(/run/fono/fono.sock) before the per-user one, so afono
process running under the systemfono.serviceunit can be
driven from any user account on the box without per-user setup.
Documentation indocs/wayland.mdanddocs/troubleshooting.md
updated to match. -
general.sound_feedbackconfig field, tray "Start/stop chimes"
toggle, and the chime playback action removed. The chime path
was a vestige from before the audio-visualisation overlay landed
in v0.6.0; the overlay's bottom-centre panel + right-side VU bar
now serves the same "did the recording start?" feedback role
without spawning a separate audio process. Existing configs that
set the field are silently ignored — no migration needed. -
[overlay].waveformnow defaults totrue. The standalone
batch-mode overlay was off by default; new users had to discover
the setting and edit~/.config/fono/config.tomlto turn it on.
The push-to-talk feedback panel (volume bars / oscilloscope /
FFT / heatmap) is the kind of UX that's better-on-than-off.
Existing configs are unaffected: the field is#[serde(default)]
on theOverlaystruct, so a config that omits the line picks
up the new default; configs with an explicitwaveform = false
stay opted-out as the user wrote them.
Full Changelog: https://github.com/bogdanr/fono/compare/v0.6.0...v0.6.1
Breaking Changes
- `--no-tray` flag removed; CLI clients now try the system-wide IPC socket before the per-user one.
- `general.sound_feedback` config field, tray "Start/stop chimes" toggle, and chime playback action removed.
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]