You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Coder Lead, 2026-08-06 23:51:37. The user said "Stop-stop." — meaning stop.
It was transcribed and sent as a chat message. The agent replied "Got it. Stopped." Nothing
stopped. The mic stayed live, and two phantom turns followed (see #(B), the companion ticket).
Cause: "stop" alone is not an exit phrase
packages/sdk/src/voice/convo.ts:147:
constEXIT_BY_LANG={en: ["exit voice","exit voice mode","stop voice","stop voice mode","leave voice","text mode","switch to text","back to text"],
…
}
Every English phrase that contains "stop" requires the word "voice" after it. Bare "stop", "stop stop", "stop listening" match nothing.
There is no vocabulary reason for this: phraseMatchesTranscript already allows a single-word
command when it is the whole utterance — the restriction exists so "don't forget to mute"
stays a message. "Stop-stop." was the whole utterance, so a listed "stop" would have fired
correctly and safely.
Stop-words are not the answer either: they are off unless configured (stripStopWord:394), and a
stop-word ends the turn — it submits the message. It does not stop the session.
The second half: the agent confirmed a stop it cannot perform
"Got it. Stopped."
Voice mode is client state. The agent has no visibility into it and no control over it — it
answered "stop" conversationally, as any assistant would. But the reply reads as confirmation, so
the user reasonably disengaged while the microphone was still open.
That is the same class as #254 and #259: an agent making a confident statement about a capability
it does not have, because nothing told it otherwise. Here the honest reply is "I can't control
the microphone — say 'stop voice' or tap the mode control", which requires the prompt to know
voice is active.
Fix
Add bare "stop", "stop stop", "stop listening" (and the equivalents in the other nine
languages already listed) to EXIT_BY_LANG.
Consider whether "stop" should mean exit voice or interrupt what is happening — they are
different. Mid-reply, a user saying "stop" most likely wants the TTS to shut up and the turn
abandoned, not to leave hands-free entirely. exit may be the wrong verb to bind it to.
What happened
Coder Lead, 2026-08-06 23:51:37. The user said "Stop-stop." — meaning stop.
It was transcribed and sent as a chat message. The agent replied "Got it. Stopped." Nothing
stopped. The mic stayed live, and two phantom turns followed (see #(B), the companion ticket).
Cause: "stop" alone is not an exit phrase
packages/sdk/src/voice/convo.ts:147:Every English phrase that contains "stop" requires the word "voice" after it. Bare
"stop","stop stop","stop listening"match nothing.There is no vocabulary reason for this:
phraseMatchesTranscriptalready allows a single-wordcommand when it is the whole utterance — the restriction exists so "don't forget to mute"
stays a message. "Stop-stop." was the whole utterance, so a listed
"stop"would have firedcorrectly and safely.
Stop-words are not the answer either: they are off unless configured (
stripStopWord:394), and astop-word ends the turn — it submits the message. It does not stop the session.
The second half: the agent confirmed a stop it cannot perform
Voice mode is client state. The agent has no visibility into it and no control over it — it
answered "stop" conversationally, as any assistant would. But the reply reads as confirmation, so
the user reasonably disengaged while the microphone was still open.
That is the same class as #254 and #259: an agent making a confident statement about a capability
it does not have, because nothing told it otherwise. Here the honest reply is "I can't control
the microphone — say 'stop voice' or tap the mode control", which requires the prompt to know
voice is active.
Fix
"stop","stop stop","stop listening"(and the equivalents in the other ninelanguages already listed) to
EXIT_BY_LANG.different. Mid-reply, a user saying "stop" most likely wants the TTS to shut up and the turn
abandoned, not to leave hands-free entirely.
exitmay be the wrong verb to bind it to.state, not hardcoded prose (Prompt-drift check — three agents in two days told a story about themselves their capabilities contradicted #315).
Verification