Arc Forge Labs Docs v2026.10.2

v2026.7.2-1

Local (on-device) dictation now streams through overlapping, silence-aligned, prompt-threaded chunks that are merged into the transcript, instead of joining independent 2-second windows.

AI agents and tools can read these release notes as plain Markdown.

This release covers 0 pull requests.

Highlights

  • Local (on-device) dictation now streams through overlapping, silence-aligned, prompt-threaded chunks that are merged into the transcript, instead of joining independent 2-second windows.
  • The default on-device model is now chosen by hardware, from one resolver used everywhere (startup, tray, dictate doctor, the UI, and the installers).
  • Case- and punctuation-only differences at a streamed chunk seam are now de-duplicated, so overlapping words are not typed twice.
  • The installed Linux app (.deb/AppImage) now registers its launcher and start-on-sign-in autostart entry on first run, pointing at dictate-ui-shell.
  • Clean shutdown on Linux update: install.sh/update.sh stop the running engine before reinstalling, and the .deb ships a preinst that stops the engine and desktop shell before unpacking an upgrade.
  • Autostart/launcher .desktop entries written by the frozen app now target dictate-ui-shell instead of a ~/.local/bin/dictate console script that does not exist in packaged installs — the cause of "Dictate doesn't start / the hotkey does nothing" after switching from a source install to the .deb.

Changes

  • Local (on-device) dictation now streams through overlapping, silence-aligned, prompt-threaded chunks that are merged into the transcript, instead of joining independent 2-second windows. This removes the word-splitting and duplication ("confetti") that made local dictation unreliable: on-device quality now tracks a full-utterance decode while keeping push-to-talk latency low (the perceived wait is the final chunk, not a re-decode of the whole recording).
  • The default on-device model is now chosen by hardware, from one resolver used everywhere (startup, tray, dictate doctor, the UI, and the installers). A CUDA GPU or a capable CPU (~8 GB+ RAM and 8+ cores) defaults to the higher-quality turbo model; weaker CPUs default to small. No machine is told it runs turbo while actually running small, and installers no longer force a ~1.5 GB turbo download onto a box that will run small.
  • On-device decode quality was restored for dictation (beam search + generous VAD padding so word onsets are not clipped at chunk boundaries), while long note recordings keep their lighter, CPU-tuned decode settings unchanged.
  • Dictate Pro control-plane baseline (account auth, entitlements, Stripe handling, relay/server). Pre-release scaffolding; the purchase path is not yet wired end-to-end (see docs/GOALS.md).
  • The installed Linux app (.deb/AppImage) now registers its launcher and start-on-sign-in autostart entry on first run, pointing at dictate-ui-shell. Previously only the source install.sh set these up, so packaged installs never started on login despite the docs saying they did. One-time and gated to the frozen app, so it never overrides a user who later disables startup.
  • dictate stop command — stops a running engine via its single-instance lock (SIGTERM, then SIGKILL fallback). Updaters use it so a fresh engine can claim the lock cleanly instead of colliding with a stale daemon.
  • Clean shutdown on Linux update: install.sh/update.sh stop the running engine before reinstalling, and the .deb ships a preinst that stops the engine and desktop shell before unpacking an upgrade. Previously the old engine kept running and held the lock, so the newly installed engine could not start (Windows update.ps1 already stopped the old process; Linux did not).

Fixes

  • The GUI privacy toggle no longer pins turbo into config on a weak machine (which previously bypassed the hardware-aware default permanently).
  • Case- and punctuation-only differences at a streamed chunk seam are now de-duplicated, so overlapping words are not typed twice.
  • Autostart/launcher .desktop entries written by the frozen app now target dictate-ui-shell instead of a ~/.local/bin/dictate console script that does not exist in packaged installs — the cause of "Dictate doesn't start / the hotkey does nothing" after switching from a source install to the .deb.
  • dictate doctor now flags launcher/startup entries whose Exec target is missing (e.g. a stale pip-era ~/.local/bin/dictate left behind after moving to the package) and dictate doctor --fix repairs them.
  • Quietened startup log noise: passively enumerating provider key status (done for every backend on startup) no longer logs a validation failure for an unused, optionally-configured backend (e.g. a stale openai key while running local faster-whisper). The status is still reported; only the noisy log is suppressed. Explicit user validation and the provider health probe still log.

Contribution record

CHANGELOG/records/2026.7.2-1.md lists every pull request in this release once, with its related issues and thanks.