v1.25.1
Bug Fixes
-
Fix crash on startup with non-Cohere backends (#154)
get_credentialwas re-imported as a local variable insideinitialize()and_reinitialize_cohere_transcribe()in
whisper_manager.py. Python's scoping rules marked it local for the entire method at compile time, causing an
UnboundLocalErrorwhenever a non-Cohere backend (rest-api,realtime-ws,pywhispercpp) was configured. Redundant local
imports removed; the module-level import is used throughout. -
Fix USB microphone failures after idle on ALSA systems (#153)
USB microphones managed via raw ALSA can power down after ~30 seconds of silence. When hyprwhspr tried to open the device for
the next recording, PortAudio'sPaUnixThread_Newtimed out (paTimedOut/ error -9987). This release introduces a silent
keepalive stream that holds the ALSA device open between recordings, preventing the kernel from suspending it. The keepalive is
only started when a multiplexed audio server (PipeWire or PulseAudio) is detected — on raw ALSA it is skipped to avoid holding
an exclusive lock that would block other applications.Additional hardening: stream start now retries up to 3 times with a brief pause on timeout, handling cold-start races on
service startup before the audio node has fully warmed up.
Configuration
- New setting
stream_start_retry_delay(default:1.5seconds) controls how long to wait between stream start retries on
timeout. Increase this value if your USB microphone frequently fails on the first recording after idle.
Full Changelog: v1.25.0...v1.25.1