Repository navigation
Voice through the account: the daemon uses voice v1 with the session - #169
Merged
Merged
Conversation
Recognition and synthesis go to /v1/voice/* with the session. A 401 forgets it, which signs out; a 429 is passed to the box as voice.error allowance or global_cap, and no session as signed_out. With the voice service, voice is offered only while signed in, and signing in or out tells the box again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
This was referenced Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #161. Stacked on #168 (sign-in), so the base is its branch; once #168 merges, GitHub retargets this to main.
What changes
/v1/voice/transcribeand/v1/voice/speakwithAuthorization: Bearer <session>(docs/api.md).signed_out, and synthesis leaves the reply as text.voice.errorwith reasonallowanceorglobal_cap, and a shortmessagethat current firmware shows as a voice error. What the box should really say is Voice commands: talk to your Agents through the box #132. A refused spoken reply stays text, as any synthesis failure does.voice.available: with the voice service, it is on only while signed in (Recognizer::ready). The user's own recognizer needs no account. Signing in or out, here or by a 401, tells the box again (follow_account).Recognizererrors now carry the reason the box is told (RecognitionError). Plain failures stayunavailable.voice.errorreasons.Two choices against the ticket's text, for review
https://api.korekore.ai, but production has no route until vibebuddy-cloud#11. Pointing a release there now would show "Sign in" in a release and then fail. feat(app): 用菜单栏的像素脸生成 App 图标 #11 should flipservice_basewhen production opens.voice.availablestays on after an allowance or cap refusal. Turning it off would need a timer to turn it back on at 00:00 UTC. Each turn gets the reason anyway.Checked
cargo test --workspace --locked: all pass. The daemon has 337, 3 of them new:ready()turning false once signed out with nothing sent;allowanceandglobal_capand an unparsable 429 each mapped to its reason, with only a 401 forgetting the session;cargo clippy --workspace --all-targets --locked: no new warnings.🤖 Generated with Claude Code