feat(voice): keep conversations active in background - #150
Conversation
6ff1951 to
5218bcd
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES. Fresh static review completed for exact three-dot range 6f059be...5e2f97b after running both code-review and wes-review. Final self-check covered every changed voice/background-control, navigation/archive, notification, mute, transcript-delivery, and assistant-speech flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete user effects for blocking severity. Six publishable findings remain: five blocking and one non-blocking. Supplied GitHub evidence was inspected and reports all eight captured check runs completed successfully; required checks still independently govern merge readiness.
Deterministic publication result: 5 blocking and 1 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
5e2f97b to
bda46df
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES. Fresh static review completed for exact three-dot range 874e078...a5cafe7 after explicitly running code-review and wes-review. The final self-check covered every changed background-voice, floating-control, microphone/hardware-mute, transcript-delivery, assistant-speech, notification, archive, navigation, berdctl, model-removal, and design-system flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity. One blocking publishable finding remains and no proposed finding was suppressed as a duplicate. Supplied GitHub evidence was inspected and all eight captured checks completed successfully; required checks independently govern merge readiness.
Deterministic publication result: 1 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES. Fresh static review completed for exact three-dot range 874e078...19d612f after explicitly running code-review and wes-review. The final self-check covered every changed background-voice, floating-control, microphone/hardware-mute, transcript-delivery, assistant-speech, notification, archive, navigation, berdctl, model-removal, and design-system flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity. Two blocking publishable findings remain and no proposed finding was suppressed as a duplicate. Supplied GitHub evidence was inspected: Linux and Windows Tauri checks, DCO, and clean-room install passed; macOS Tauri and frontend checks were in progress; required checks independently govern merge readiness.
Deterministic publication result: 2 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
COMMENT. Fresh static review completed for exact three-dot range 874e078...c7b4e63 after explicitly running code-review and wes-review. The final self-check covered every changed background-voice, floating-control, microphone/hardware-mute, transcript-delivery, assistant-speech, notification, archive, navigation, berdctl, model-removal, window lifecycle, and design-system flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity. One non-blocking publishable finding remains, with no blocking findings and no proposed finding suppressed as a duplicate. Supplied GitHub evidence was inspected and all eight captured checks completed successfully; required checks independently govern merge readiness.
Deterministic publication result: 0 blocking and 1 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES. Fresh static review completed for exact three-dot range 874e078...5f46d11 after explicitly running code-review and wes-review. The final self-check covered every changed background-voice, floating-control, microphone/hardware-mute, transcript-delivery, assistant-speech, notification, archive, navigation, berdctl, model-removal, owner-window, window-close, and design-system flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity. Two blocking publishable findings remain and no proposed finding was suppressed as a duplicate. Supplied GitHub evidence was inspected: DCO and clean-room install passed; Linux, macOS, and Windows Tauri checks plus frontend checks were in progress; required checks independently govern merge readiness.
Deterministic publication result: 2 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
APPROVE. Fresh static review completed for exact three-dot range 874e078...80892ad after explicitly running code-review and wes-review. The final self-check covered every changed background-voice, floating-control, microphone/hardware-mute, transcript-delivery, assistant-speech, notification, archive, navigation, berdctl, model-removal, owner-window, window-close, and design-system flow; accessibility; English/Spanish localization; navigation and consent guards; async errors, never-completes, lifecycle transitions, and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity. No publishable findings remain and no proposed finding was suppressed as a duplicate. All supplied automation threads are resolved with substantive human-account replies, and there are no unresolved prior automated findings. Supplied GitHub evidence was inspected and all eight captured checks completed successfully; required checks independently govern merge readiness.
Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
Pending checks: 1 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
Summary
Previously, a voice conversation ended automatically when the user switched away from the session that started it. This PR keeps the conversation running in the background and bound to its original session.
When the owner session is not visible and focused, Berd shows a compact always-on-top control with a drag handle, a button that opens the exact owner session, microphone mute, and hang-up. The microphone background pulses while the user is speaking, and the Berd background pulses while assistant audio is playing. The same mute, hang-up, and activity states appear in the session composer.
Clicking the voice button in another session opens the active owner instead of starting a second conversation. Completion notifications are suppressed only for the session with active voice.
Reviewer-reproducible examples
With Pocket voice installed:
The full flow above was verified manually on macOS using this PR build.