This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+5 more
ReleasePort's take
Light signalVersion v0.8.2 introduces window‑aware dictation context and an aarch64 binary while fixing PipeWire capture issues and deprecating the `fono assistant stop` CLI verb.
Why it matters: Deprecates `fono assistant stop`; migrate to `fono cancel`. Fixes PipeWire noise for Linux hosts using PipeWire only. Adds native aarch64 builds expanding platform support.
Summary
AI summaryWindow‑aware dictation context adjusts vocabulary per focused window, adds aarch64 binary, fixes PipeWire capture, and removes deprecated stop commands.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds window-aware context injection based on focused window class and title. Adds window-aware context injection based on focused window class and title. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Adds terminal project and agent detection for vocabulary biasing. Adds terminal project and agent detection for vocabulary biasing. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Adds Escape cancels recordings on Wayland via transient shortcut session. Adds Escape cancels recordings on Wayland via transient shortcut session. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Adds `fono cancel` CLI verb to abort active recording or assistant turn. Adds `fono cancel` CLI verb to abort active recording or assistant turn. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Adds native aarch64 release binary alongside x86_64 builds. Adds native aarch64 release binary alongside x86_64 builds. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Low |
Preserves assistant chat history when dictation hotkey is pressed, avoiding loss of context. Preserves assistant chat history when dictation hotkey is pressed, avoiding loss of context. Source: granite4.1:30b@2026-05-26-audit Confidence: low |
— |
| Deprecation | Low |
Deprecates `fono assistant stop` CLI verb; use `fono cancel` instead. Deprecates `fono assistant stop` CLI verb; use `fono cancel` instead. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
Fixes dictation noise on PipeWire‑only Linux hosts by passing `--raw` to `pw-cat`. Fixes dictation noise on PipeWire‑only Linux hosts by passing `--raw` to `pw-cat`. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
Fixes wizard recommendation accuracy for older iGPUs and updates model multipliers. Fixes wizard recommendation accuracy for older iGPUs and updates model multipliers. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
Changes assistant history to survive dictation pivots, preserving chat context. Changes assistant history to survive dictation pivots, preserving chat context. Source: llm_adapter@2026-05-26 Confidence: low |
— |
| Bugfix | Medium |
Changes wizard model selection to be data‑driven with a three‑class GPU classifier and unified quantization defaults. Changes wizard model selection to be data‑driven with a three‑class GPU classifier and unified quantization defaults. Source: llm_adapter@2026-05-26 Confidence: low |
— |
Full changelog
Context-aware dictation, Esc-to-cancel on Wayland, and smarter
first-run model picks. Fono now reads which window is focused when you
press the hotkey and silently adjusts how it transcribes and cleans up
your speech — terminal windows get a shell-vocabulary bias so ls,
git commit, and chmod 755 come out right; code editors get a
language-specific vocabulary hint. No configuration required.
Added
- Window-aware context injection. At hotkey-press time Fono reads
the focused window class and title and silently passes a tailored
initial_promptto Whisper (local and cloud) and a matching cleanup
suffix to the LLM. Built-in profiles cover terminal emulators (shell
vocabulary:ls -la,grep -r,chmod 755,git commit, etc.),
per-language code editors (Cursor, Zed, Kate; hints derived from
the file extension in the window title), and private windows
(KeePassXC, Bitwarden — history writes suppressed). Existing
[[context_rules]]entries take precedence as usual. Detection
covers X11, sway, Hyprland, and GNOME Wayland (with XWayland
fallback for GNOME 46+ where the Shell introspect API is restricted).
Visible at any time withFONO_LOG=fono::context=debug. - Terminal project and agent detection. When a terminal emulator is
focused, Fono walks/procto find the CWD and detects the active
project type (Rust, Python, Node, Go, Docker, K8s) and whether a
coding agent (Forge, Claude Code, Codex, Aider, Goose, and others)
is running. Project type refines the Whisper vocabulary hint; agent
detection is stored for future prompt biasing and is currently no-op. - Escape cancels recordings on Wayland. The portal hotkey
backend (KDE / sway / Hyprland) opens a transient second
GlobalShortcutssession while a recording is active; the
GNOME-Wayland gsettings shim writes a temporaryfono-cancel
custom-keybinding for the same duration. Either way Esc is only
grabbed while Fono needs it. fono cancelCLI verb. Aborts an active recording or
assistant turn. Idempotent. BacksRequest::Canceland the
Esc grab above.- Native aarch64 release binary.
fono-vX.Y.Z-aarch64is now
built on a hostedubuntu-22.04-armrunner alongside the x86_64
builds and is gated by the same size-budget check (same glibc 2.35
floor; verified end-to-end on a Debian 13 aarch64 host).
Fixed
- Dictation on PipeWire-only Linux hosts. On stock Ubuntu 24.04
(and similar systems withoutpulseaudio-utilsinstalled) the
pw-catcapture helper was missing--rawand emitted a
containerized stream that Fono interpreted as PCM — recordings
came out as noise. The capture path now passes--rawand
produces clean audio on every PipeWire setup. - Wizard recommendation accuracy on older iGPUs. The picker no
longer credits CPU-only builds with a GPU multiplier they can't
deliver, and Vulkan-capable integrated GPUs are split into two
classes (Integratedat 1.3× for fp16-only parts like UHD 620,
IntegratedTensorat 2.0× for fp16 +VK_KHR_cooperative_matrix
parts like Lunar Lake Xe2 and Apple Silicon). Thesmall.en
registry anchor was also off by 2× — fixed against the matrix.
Net effect: older laptops are recommendedsmallorsmall.en
instead of a turbo model that can't keep up; modern tensor-iGPU
laptops correctly getlarge-v3-turbo.fono doctornow uses
the same affordability walk as the wizard so the two never
disagree.
Changed
-
Wizard model selection is now data-driven. A new three-class
HostGpuclassifier (None/Integrated/Discrete), derived
from the Vulkan probe'sdeviceType+shaderFloat16bit, replaces
the previous staticaccelerated()4× heuristic with multipliers
1× / 2× / 4×(no PCI tables, no runtime calibration, no maintained
device lists; see ADR 0028). The live-modeBorderlineaffordability
middle state and the twoLIVE_REALTIME_MIN_*constants are gone —
the wizard now applies a singleBATCH_REALTIME_MIN = 2.0gate and
every shortlist entry is comfortable by construction. Quantization
defaults are unified onq8_0across the registry (per the ADR 0027
2026-05-25 amendment):tiny,tiny.en,small,small.en, and
large-v3-turboall default toq8_0; the previousq5_1defaults
remain reachable via[stt.local].quantization.wer_by_lang
English numbers are refreshed to Open-ASR-Leaderboard means (rounded
up:tiny12→16,tiny.en9→13,small6→10,small.en5→9,
large-v3-turbo4→8) so the accuracy buckets the wizard surfaces
match the public prior users will find elsewhere. -
Assistant history now survives dictation pivots. Previously a
press of the dictation hotkey (F7) while an assistant conversation
was in flight would wipe the rolling chat history; the next F8
turn would start fresh and the assistant would tell you it had no
memory of what you'd just said. Dictation and the assistant have
always had fully separate histories — the dictation transcript log
lives in SQLite, the assistant's chat turns live in memory — so
the cross-wired auto-clear was surprising rather than protective.
The pivot still stops any in-flight assistant playback so it
doesn't talk over your dictation, but the chat history is
preserved and you can resume the conversation on the next F8.
Removed
fono assistant stopCLI verb — usefono cancelinstead.- "Stop assistant" tray entry — redundant with
fono cancel. [assistant].auto_clear_on_dictationconfig key. No longer
read; remove it from yourconfig.tomlif present (unknown keys
are silently ignored, so existing configs keep working). The
remaining knobs (history_window_minutes,history_max_turns)
and the tray "Forget conversation" entry /fono assistant forgetCLI still cover every legitimate need to drop history.
Full Changelog: https://github.com/bogdanr/fono/compare/v0.8.1...v0.8.2
Breaking Changes
- Removed `fono assistant stop` CLI verb — use `fono cancel` instead.
- Removed "Stop assistant" tray entry — redundant with `fono cancel`.
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]