Skip to content

berd-call: add persistent Auto input muting - #403

Draft
johnmatthewtennant wants to merge 2 commits into
mainfrom
nora/berd-call-auto-mute
Draft

johnmatthewtennant wants to merge 2 commits into
mainfrom
nora/berd-call-auto-mute

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Berd Call chooses a speaker-dependent microphone policy at startup, but changing its mute checkbox permanently replaces that automatic choice. Add a saved Auto preference alongside On and Off, expose all three in the menu, and accept berd-call settings --input-during-tts auto.

Auto suppresses input during speech on built-in speakers and permits interruption on other default outputs. It follows output changes during a call. Explicit On/Off choices remain fixed. Conventional calls apply route changes through the existing mute epoch logic, and Spokesperson calls resolve Auto before forwarding microphone audio. Berd desktop shares the route-classification helper while retaining its existing selected-output behavior.

Related issue

N/A. Searches for auto mute found no matching issue or PR title. The companion Buzz plugin offers the same three choices and checks CLI support before saving Auto for a future call. Its Auto control requires a berd-call binary that accepts settings --input-during-tts auto.

Testing

  • Normal publication hooks passed: formatting, frontend checks, desktop Rust checks, and Clippy (Rust 1.94.1).

  • An isolated native call accepted suppress, auto, allow, auto and retained Auto through a session restart.

  • An opt-in macOS regression switched the real default output from built-in speakers to BlackHole 2ch and back during an assistant activity. Input suppression followed each change, and the original output was restored. Run with cargo test -p berd-call native_auto_mute_follows_default_output_during_speech -- --ignored on a Mac with SwitchAudioSource and BlackHole 2ch.

  • Unit coverage checks route-dependent muting and epochs, manual microphone mute, explicit overrides, saved preference reopening, CLI parsing, and menu selection/actions.

  • Companion plugin: 61 tests, production build, and a headless Chromium journey through Buzz plugin installation and settings persistence passed. Native process IPC is the browser fixture boundary; the actual CLI is covered by the isolated call above.

  • Full package execution at b2dcf8e7 has the same four failing targets as the base. Their failures also reproduce with working sources verified equal to base 629e0af8c1065cb67d2f7dcd04912eece6e8f6a6: the Spokesperson saved-voice test, management/synthesis usage tests, and provider-expiry handoff test. The input-cutover timing test also failed intermittently on the feature tree.

  • Native menu screenshot automation timed out. Menu state and actions have automated model coverage; native menu interaction and its screenshot remain unverified.

Screenshots

Companion Buzz plugin settings:

Auto input muting in Buzz settings

Nora added 2 commits October 20, 2026 15:01
Signed-off-by: Nora <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Nora <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

This branch has not been deployed

No deployments
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