Preserve both original author commits. Use the author's live-overlay sender guard for completion and context requests. Retain selection-only HUD behavior, existing failure toasts, and synchronous drag refs; add coverage for rapid area moves/resizes and failure versus cancellation messages.
- complete-capture-pick ignores any sender that isn't an open picker overlay
- when a pick fails for a reason other than cancel, like a window that
closed, the hud shows the message in a toast
- moving or resizing an area reads a flag on the drag itself instead of
react state, so a pointer move that lands before the next render still
counts as part of the drag
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
"Select area or window" in the source menu opens a picker over every
display. Hovering highlights the window under the cursor, or the whole
screen over the desktop, and a click picks it. Dragging draws an area,
and moving or resizing any pick turns it into an area. Record, Enter or
a double-click starts recording, Select only picks, Escape cancels.
The window-list helper gains a --z-order mode that lists windows front
to back with their owner process, so the picker hits the frontmost
window and skips Recordly's own. A picked window or screen becomes the
same source the lists offer. An area becomes an area:<displayId> source
that the capture helper crops like a window that never moves, cursor
telemetry normalizes to, and a dashed outline marks while recording.
The main process validates every pick: a window must be one the picker
offered. Picker windows stay hidden until they have painted, so opening
the picker does not flash the app background.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chromium's realtime AGC crackles on some Realtek/headset mics,
heard as repeated breaking and pitch warble. The no-agc fix
existed but was hidden behind an env var shipped builds never
set. Make it the default; volume is still restored offline via
the existing speechnorm/alimiter chain.
getCompanionAudioFallbackInfo returned only the video path when a macOS
system sidecar existed, assuming the inline mp4 track was a complete mix.
The capture helper writes system audio alone to that track, so the
microphone was dropped from preview and export whenever both sources were
enabled — the recorded narration was silent even though it had been
captured correctly to recording-<ts>.mic.m4a.
Return both macOS sidecars instead, so the renderer routes them as
separate system and mic tracks and mutes the silent embedded track.
Existing recordings recover their audio on reopen.
Fixeswebadderallorg/Recordly#912