feat(voice): play status cues while working or waiting - #308
johnmatthewtennant wants to merge 29 commits into
Conversation
e08fff6 to
45ff8fd
Compare
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
0b698b9 to
43cb037
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 5 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest update only simplifies equivalent status-sound branching and test assertions without weakening behavior coverage. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 3 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest changes derive chained status sounds from authoritative run state and scope native suppression to actual overlapping speech playback, with discriminating lifecycle tests. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 5 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest change gives managed status-sound workers bounded, idempotent shutdown and suppresses native microphone input while speaker-routed cues play, with focused lifecycle tests. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
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.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest change adds a fully propagated off preference and delays cues until a complete quiet interval has elapsed, with matching persistence, protocol, localization, and cadence tests. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 3 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest change aligns cue suppression with actual user speech and assistant playback rather than pending recognition, and updates the protocol contract with discriminating conventional and spokesperson lifecycle tests. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 2 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest change defines chained work onset from live tool activity, excludes replayed calls, resets the latch across runs, and restores immediate transition and resume cues, with discriminating store, notification, and voice lifecycle tests. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 3 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest change suppresses waiting cues during tool-free active runs without altering the saved preference, then restores the selected mode when the run settles or begins tool work, with discriminating lifecycle coverage. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 5 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Engineering review found no publishable changed-line issues in the exact three-dot comparison. The latest update only clarifies a test name so it matches the tested scheduling contract; the full behavior and coverage remain sound. Supplied GitHub check evidence is structurally available but currently pending with no completed status contexts, so required checks still govern merge readiness. Recommendation: APPROVE.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 2 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
Summary
Adds low-distraction status cues to active Voice conversations. Voice settings offer Off, While working (the default), and While working and waiting. Working uses the macOS Pop cue; waiting uses Purr. There is no volume control in settings.
Cues play at the beginning of each five-second window. Submitting a prompt silences the waiting cue without changing the saved preference. The chained client enters working on the first live tool call and stays working until the run ends. Every subsequent tool call signals working idempotently, without replaying the cue or resetting its cadence. Incoming speech and outgoing audio temporarily suppress playback without changing that state; the current cue resumes immediately when audio ends. Run completion restores waiting, and cues stop with the owning Voice session.
Reviewer-reproducible examples
In Voice settings, select While working and waiting and start a chained voice conversation. Submit a request that has the agent speak briefly before its first tool call, make two consecutive tool calls that keep one run active across multiple five-second intervals without speech between the calls, speak again, and then make a final tool call. Expect the waiting cue to stop when the prompt is submitted, no working cue before the first tool call, an immediate working cue when the first call starts (unless speech is active), and five-second cadence to continue across the second call. Speech suppresses playback; the working cue resumes immediately afterward. Run completion restores waiting.
Select While working and repeat the multi-tool request. Working cues play during tool activity; no waiting cue plays after the run becomes idle. Select Off and repeat the task: speech remains audible, but neither working nor waiting cues play. End the voice conversation to stop all cues.
Live verification covers chained voice with Apple TTS and speaker output. Other voice modes and output routes were not live-tested.