v0.84.14
Bundles the fixes since v0.84.10 — headlined by the real fix for screen-recording mic audio.
Screen recording — mic audio finally in sync (v0.84.14)
The recorded mic audio played ~1.15× too fast with a silent tail. Root cause, now definitively measured: avfoundation systematically under-delivers audio samples — a clip whose video spans N seconds holds only ~85–90 % of N × sample_rate samples (a real 9.27 s recording held just 8.14 s of actual audio). The samples are continuous (no gaps), so the audio is time-compressed.
The trap that defeated the two earlier attempts (0.84.12/0.84.13): the MP4 muxer writes stretched timestamps, so the audio stream's duration metadata reads ≈ the video length (a lie). Only the decoded sample count is ground truth.
The fix measures each finished recording (true audio samples vs. video duration) and, when they diverge by >2 %, re-syncs with a single pitch-preserving atempo stretch — video stream copied untouched, no inline resampler, so no stutter/crackle. Computed per recording (the shortfall varies); a no-op when already in sync, so it's safe on every platform.
System audio still requires routing the system output through a loopback device (macOS: BlackHole + a Multi-Output Device) — a macOS limitation, not a bug.
Also fixed since v0.84.10
- Text expander
Alt+1(v0.84.11): the Option/Alt modifier no longer corrupts the tracked keystroke buffer, so the hotkey expands the snippet instead of just opening the app. The expander now fires only viaAlt+1(no accidental expand-on-type), and the abbreviation is no longer left prepended to the body.
Full detail in CHANGELOG.md.
macOS (Apple Silicon) build attached. Windows/Linux paths are implemented and compile-validated; some are runtime-unverified.