Releases: NikitaHerndlhofer/superwhisper-rag
v1.1.1
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Full Changelog: v0.6.3...v1.0.0
v0.9.12
Full Changelog: v0.9.11...v0.9.12
v0.9.11
v0.9.11
Fixes
-
VPIO no longer ducks live audio while recording.
setVoiceProcessingEnabled(true)(re-enabled in v0.9.3 for the
AEC + AGC + NR pipeline) implicitly activated macOS's
communication-audio mode, which ducks every other app's output to
prioritize a VOIP session. We're a passive recorder — the
meeting's audio is exactly what the user is listening to, and
ducking it made the call quieter while we recorded. macOS 14+
exposes the knob (voiceProcessingOtherAudioDuckingConfiguration
→enableAdvancedDucking=false+duckingLevel=.min) and we now
set it on every recorder start. VPIO's noise / echo / gain
features stay on. -
Opt-in global hotkey for explicit stop.
Auto-stop for browser-based meetings has been chronically flaky.
The menubar now optionally registers a system-wide keyboard
monitor while recording is active, so the user can stop without
reaching for the menu bar. Off by default; opt in via:swrag meeting config set hotkeys.stop_recording \"cmd+shift+s\"Global monitors require macOS Accessibility permission; the
permissions-check probe now reports that grant state.
Touches
- New
accessibilityfield on the permissions probe (granted /
denied viaAXIsProcessTrustedWithOptions). - New
HotkeysSchemain the meeting popup config. Legacy stored
configs default tostop_recording: null(no surprise hotkeys). - Daemon's
subscribedenvelope +statusresponse carry the
hotkey config so the menubar can arm the monitor on connect.
v0.9.10
v0.9.10: broaden stop-popup trigger (HIGH → MEDIUM debounce)
v0.9.9's per-process audio listener fix relied on kAudioProcessProperty* populating the mic-owners list so we could subtract our own recorder PID. In production on macOS Tahoe 26 some users observe owners=[] while mic_in_use=true, which puts the detector in degraded mode — raw mic_in_use is held true for the duration of the recording, so the HIGH → NONE edge the stop popup logic depended on never commits.
v0.9.10 broadens the trigger. While recording, the stop banner now fires on:
- any edge to
NONE(unchanged) — clean mic release in non-degraded mode HIGH → MEDIUMafter a 30 s grace window — covers the degraded-owners case where the mic side can't be the trigger (closing a Meet tab in Comet while we still hold the mic dropsbrowser_urlmatch, committing the HIGH → MEDIUM edge)
The grace window absorbs brief tab/app switches during a real meeting; recovery to HIGH inside the window cancels. The banner defaults to keep on dismiss / timeout, so false positives are recoverable. The pending timer is cancelled on manual stop, popup-driven save, and daemon shutdown.
Test coverage
- HIGH → MEDIUM with active recording fires the popup after the grace window
- HIGH → MEDIUM → HIGH inside the window cancels (no popup)
- HIGH → MEDIUM with no active recording is a no-op
- HIGH → MEDIUM → NONE: the NONE edge supersedes the timer (single popup, no double-fire)
record_stopcancels a pending timer
419 tests pass / 0 fail. Typecheck clean. Build clean.
Full Changelog: v0.9.9...v0.9.10
v0.9.9
Full Changelog: v0.9.8...v0.9.9
v0.9.8
Full Changelog: v0.9.7...v0.9.8
v0.9.7
Full Changelog: v0.9.6...v0.9.7
v0.9.6
Full Changelog: v0.9.5...v0.9.6