v1.37.0
Features
- Pill mic OSD style — a new, cleaner overlay style for the microphone visualization. Set
mic_osd_style: "pill"(alongside the existingwaveformandvu_meter), and the configured style is now correctly passed through to the OSD daemon. Thanks @wojciechsacewicz! (#207) - One-line bootstrap installer — non-Arch installs now have a first-class path:
curl -fsSL https://hyprwhspr.com/install.sh | bash. The installer runs distro pre-flight checks, and uninstall fully covers bootstrap-managed clones.
Fixes
- Fixed a memory leak on audio-server restart (#209) — if PipeWire/PulseAudio restarted while a recording was in flight, the recording stream could be orphaned: its callback busy-looped against the dead device and grew the service without bound. Now if a wedged stream survives every reclamation attempt (it can outlive even a full PortAudio reset), the service restarts itself cleanly under systemd — back in ~2 seconds instead of burning a CPU core until the OOM killer steps in. Thanks to @michaelmaxbrownevidentia for the report.
- If the transcription backend fails fast during init, the service now stays alive and retries via the record gate instead of dying.
- Record-start gate checks are evaluated under the lock, eliminating
is_recordingflicker in status consumers. keyboard,record, andtestsubcommands invoked through stale wrappers are redirected to the current CLI.- Uninstall is now driven from a single filesystem-target manifest, removes per-item compat symlinks, and notes shared model caches it leaves behind.
inject_modeandstream_start_retry_delayare registered in the config schema, so validation no longer flags them.- Fixed a FIFO-creation race (EEXIST) in recording-control setup.
Changes
- Transient IPC/signal files moved to
XDG_RUNTIME_DIR— recording status, control FIFO, audio level, and friends now live under$XDG_RUNTIME_DIR/hyprwhspr/instead of~/.config/hyprwhspr/. Compatibility symlinks are kept for this release cycle; update waybar/tray scripts that read the old paths, as the symlinks may be removed in a future release.
New PRs
- @wojciechsacewicz made their first contribution in #207
Full Changelog: v1.36.1...v1.37.0