Skip to content

feat(berd-call): preserve status cadence and add native VAD cues - #425

Draft
johnmatthewtennant wants to merge 6 commits into
mainfrom
gigi/input-activity
Draft

johnmatthewtennant wants to merge 6 commits into
mainfrom
gigi/input-activity

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Keep status cues on their five-second schedule, skip cues due during speech, and let a cue already playing finish. A Working/Waiting transition during speech is announced after speech ends.

Add default-off native VAD transition clicks, controlled through berd-call settings --vad-debug-sounds on|off and saved across restarts. Both cue types follow the existing input-during-TTS policy, resolving Auto against the selected output. Cue suppression pauses incoming PCM without discarding active speech or pending recognition. Detector resets and restored state do not play debug clicks. Native output operations run on the audio worker so they cannot block microphone processing.

The plugin toggle is published separately at https://github.com/squareup/jtennant-agent-config/commit/06819426f7818ddf44394310e3cd7c76b1cd6096.

Related issue

Includes the worker integration from #423 and refines the status-cue behavior introduced in #419.

Testing

Cadence regressions cover skipped ticks without catch-up, active sample completion and deferred status announcements. New regressions cover initial/restored-state silence, acknowledgement before saving settings, unknown-status fallback, retained recognition epochs, overlapping suppression guards and selected-output Auto policy. The rebuilt CLI advertises the new control flag.

Real CoreAudio playback passes for both VAD clicks under allow and suppress policies, including guard release after drain. The same playback test passes after the recognition-preserving correction. Local correctness review found two issues, both corrected; the focused follow-up review has no findings. The full-package run still has four failing targets: the saved-voice fixture, management and synthesis CLI usage, and a session-protocol handoff test. All 335 library tests passed in the last full-package run. The final library rerun passes all cue/reset/PCM tests but again fails the separate Spokesperson cutover timing assertion (335 passed, 1 failed, 16 ignored). Installation and the integrated plugin workflow remain pending; this PR is draft.

Gigi added 2 commits October 22, 2026 09:20
Signed-off-by: Gigi <65cc00ce5da00abcd27be4a87ad29d7ef8431766d769a24d94f004fb8fe07066@buzz.block.builderlab.xyz>
Signed-off-by: Gigi <65cc00ce5da00abcd27be4a87ad29d7ef8431766d769a24d94f004fb8fe07066@buzz.block.builderlab.xyz>
Nora and others added 2 commits October 22, 2026 10:04
Signed-off-by: Nora <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Gigi <65cc00ce5da00abcd27be4a87ad29d7ef8431766d769a24d94f004fb8fe07066@buzz.block.builderlab.xyz>
@johnmatthewtennant johnmatthewtennant changed the title fix(berd-call): preserve status cue schedule during speech feat(berd-call): preserve status cadence and add native VAD cues Oct 22, 2026
Zack and others added 2 commits October 22, 2026 10:18
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Gigi <65cc00ce5da00abcd27be4a87ad29d7ef8431766d769a24d94f004fb8fe07066@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