---
title: "v2026.6.23"
summary: "Made Dictate private by default: an unset provider resolves to the on-device `faster-whisper` backend."
description: "Dictate v2026.6.23 release notes: what changed, and who contributed."
keywords:
  - Dictate
  - v2026.6.23
  - release notes
---

# v2026.6.23

<!-- Written by scripts/release/changelog.mjs from CHANGELOG/2026.6.23.md. Do not edit it: the release cut writes it again. -->

AI agents and tools can read these release notes as [plain Markdown](https://raw.githubusercontent.com/arcforgelabs/dictate/master/CHANGELOG/2026.6.23.md).

This release covers **1 pull request.**

## Highlights

- Made Dictate private by default: an unset provider resolves to the on-device `faster-whisper` backend.
- Changed the default push-to-talk shortcut from Ctrl+Right to **Ctrl+D** across the engine, daemon, preflight, doctor, Windows control, the push-to-talk dialog presets, the default config, and the UI.
- Made recording resilient instead of hard-blocked: recording is never disabled by provider state.
- Added a `dictate config` subcommand group for headless/agent setup: `set-key <backend> <key>` (format-validated, saved to the OS secret store), `set-provider private|online`, `set-model <id>`, and `show` (provider mode, model, per-backend key presence, secret-store status).
- Restored on-screen navigation that the native-decorations switch had hidden: the capture (mic) home now carries a settings gear and a Notes button, since the custom titlebar holding the old gear/search is hidden under native window decorations.
- Note "Export" no longer claims success while writing nothing.

## Changes

- Restored on-screen navigation that the native-decorations switch had hidden: the capture (mic) home now carries a settings gear and a Notes button, since the custom titlebar holding the old gear/search is hidden under native window decorations. The capture screen stays the home; Notes is a searchable list of recent dictations one tap away, and back returns to the mic.
- Made the Wayland default push-to-talk shortcut Ctrl+D too, matching every other platform (it previously fell back to Ctrl+Space on Wayland).
- Added a `dictate config` subcommand group for headless/agent setup: `set-key <backend> <key>` (format-validated, saved to the OS secret store), `set-provider private|online`, `set-model <id>`, and `show` (provider mode, model, per-backend key presence, secret-store status). Output is plain and scriptable.
- Added provider resilience via a new `ProviderSupervisor`: it tracks the preferred vs. active backend with on-device always available as the floor, classifies failures (auth / rate-limit / budget / unreachable), and applies class-aware exponential backoff with a single cancellable timer (never busy-polls). It probes for recovery opportunistically and on network-up, and emits `provider-degraded` / `provider-recovered` events to the UI over SSE.
- Added live provider-health tracking end to end: an engine `health_sink` reports every online-backend transcription outcome, the UI server publishes `provider-health` SSE events on each state change, and the UI hydrates and updates from them.
- Added a quiet "or hold Ctrl + D" shortcut hint (derived from the stored shortcut) to the ready state.
- Made Dictate private by default: an unset provider resolves to the on-device `faster-whisper` backend. Online (xAI) transcription now requires an explicitly configured key.
- Changed the default push-to-talk shortcut from Ctrl+Right to **Ctrl+D** across the engine, daemon, preflight, doctor, Windows control, the push-to-talk dialog presets, the default config, and the UI.
- Made recording resilient instead of hard-blocked: recording is never disabled by provider state. A degraded provider now shows a one-shot flash-ring pulse and toast, an "On-device · <provider> unreachable" strip during recording, and a quiet config hint when online with no key — replacing the previous fully blocked home screen.
- Long (note-mode) recordings now retry the remote provider up to twice with backoff before degrading to on-device; quick push-to-talk dictation keeps its existing fail-fast CPU fallback. The supervisor learns from every outcome.
- Dropped the timestamp from the copy-last-note row and shortened the ready-state status copy.

## Fixes

- Re-centred the cradle-mic desktop/app icon. It was shifted off-centre; the Linux package icons and the Windows `.ico` are regenerated from the canonical `assets/dictate.svg`, with the cradle rendering as a clean curve.
- Note "Export" no longer claims success while writing nothing. The packaged webview has no file-download path, so it now copies the note as Markdown to the clipboard and says so ("Copied as Markdown").
- Fixed the engine-version test to assert against `RELEASE_VERSION` dynamically instead of a hardcoded version that went stale after CalVer bumps.

## Contribution record

[CHANGELOG/records/2026.6.23.md](https://github.com/arcforgelabs/dictate/blob/master/CHANGELOG/records/2026.6.23.md) lists every pull request in this release once, with its related issues and thanks.
