mirror of
https://github.com/OpenWhispr/openwhispr.git
synced 2026-10-02 05:04:47 +08:00
* fix(meetings): keep the Windows silent-capture check armed for the whole call Windows hides Microsoft Teams call audio from WASAPI process loopback: the helper receives digital silence for it no matter which process it targets or which format it asks for, while the same audio is plainly present on the render endpoint. The capture_silent watchdog added in #1935 is the way out of that, but it disarmed permanently on the first audible sample from any application, so a notification sound, a browser tab or Teams' own join chime left the rest of the meeting recorded without the other participants and without a warning. The helper now compares its own capture against the render endpoints once a second for the whole session, resetting the confirmation count on any captured audio, and main no longer refuses the handover once some audio has been heard. Fixes #1265 * fix(meetings): review follow-ups for the Windows silent-capture handover - File the changelog entry under Meetings, and stop claiming the check survives audio that plays continuously alongside the meeting: the streak resets on any captured second, so only a gap of five seconds trips it. - Drop the watchdog's restart hook when the renderer takes over, so it can never respawn the helper behind a session the renderer already owns. - Surface a takeover failure to the user. The one-shot silence notice is suppressed once a call has been audible, so a late failure was silent. * fix(meetings): ship the rebuilt helper, and report a failed takeover properly - Bump the helper workflow's default version to 1.2.0. The push trigger publishes the default tag, and the download script picks the newest published release with the prefix, so a rebuild published as 1.0.0 would have lost to the existing 1.1.0 and the fix would never have shipped. - Report a failed renderer takeover as a translated system-audio interruption instead of a raw English string, and tell auto-end the system channel is gone, so a quiet microphone cannot end the recording behind it. - Detach the watchdog's restart hook before stopping the helper, not after. - Trim the wiring pins the behavioral test now covers, and soften two doc claims: a generic "gone quiet" notice does arrive three minutes later, and the Teams finding is measured across configurations, not every machine. * fix(review): iteration 1 — 4 issues (takeover-failure guards) * fix(review): iteration 2 — 1 issue (takeover attach failure handling) * fix(meetings): keep the Windows helper until renderer loopback proves it hears more capture_silent can fire while the helper is capturing the call fine, for example when a stream hidden from process loopback plays through a lull. Stopping the helper then dropped a working capture for the rest of the meeting, and renderer loopback only hears the default output device. Renderer loopback now starts beside the helper and takes the system channel only after hearing audio the helper misses for a second (meetingSystemAudioHandover.js). Until then its chunks are dropped; after it, the helper's are, and the helper is stopped. A takeover whose capture graph fails to build now releases the loopback stream and its AudioContext instead of holding them until the recording stops. Also trims comments and updates the docs for the new log lines. --------- Co-authored-by: boseq <307062491+boseq@users.noreply.github.com> Co-authored-by: Chadpiha <chadpiha23@gmail.com>