Skip to content

feat(voice): keep conversations active in background - #150

Draft
johnmatthewtennant wants to merge 5 commits into
mainfrom
jtennant/background-voice-menu-bar
Draft

feat(voice): keep conversations active in background#150
johnmatthewtennant wants to merge 5 commits into
mainfrom
jtennant/background-voice-menu-bar

Conversation

@johnmatthewtennant

Copy link
Copy Markdown
Contributor

Summary

Voice conversations now stay bound to their original Berd session when the user navigates elsewhere. While voice is active, macOS shows a menu bar control with microphone mute, exact-session open, and stop actions. Native state owns mute and lifecycle behavior so menu and renderer controls stay synchronized.

Archiving the bound session stops voice, while automatic and noninteractive archive paths treat an active background voice session as running and leave it alone. AirPods gesture handling is intentionally outside this change.

Related issue

None found.

Reviewer-reproducible examples

On macOS with voice conversation enabled and Pocket voice installed:

  1. Start voice in session A, switch to session B, then speak. The voice indicator remains active and the transcript plus response continue in session A.
  2. Open the Berd microphone item in the macOS menu bar and choose Mute Microphone. The item changes to the muted state and new speech is not transcribed. Unmute and confirm speech resumes.
  3. While session B is visible, choose Open Voice Session. Berd focuses and opens session A, the exact session that owns voice.
  4. Choose Stop Voice Conversation. Capture and playback stop, and the menu bar item disappears.
  5. Start voice again in session A and archive A explicitly. Voice stops and the menu bar item disappears. With A inactive, an automatic archive sweep must leave A unarchived while voice is running.

Testing

Regression coverage exercises session switching without teardown, immediate mute ordering and rollback, explicit archive cleanup, native-status refresh, and auto-archive races. Native macOS menu bar interaction still requires the manual verification above; the Blox validation host cannot display or compile against the macOS UI frameworks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant