fix(voice): keyless Gemini voice drops the microphone hint

The Gemini token route now answers a missing key with code API_KEY_MISSING,
the session carries it to the error state as missingKey, and the voice
control hides "Check microphone permission" for that error, as it already
does for OpenAI. The OpenAI controller sends the same flag, so the shared
control and the controller agree whichever updates last.
This commit is contained in:
Sameh Khamis committed 2026-11-10 17:06:50 -08:00
1 parent 9560a6dcd1
commit b89f81b729
8 files changed
+74 -12

No files matched your search

+4 -1
View File
@@ -63,7 +63,10 @@ export function createGeminiTokenHandler({
return reply(403, 'Gemini voice requires a same-origin app request');
apiKey = String(resolveApiKey() || '').trim();
if (!apiKey)
return reply(503, 'Add a Gemini API key in Provider Settings');
return reply(503, {
error: 'Add a Gemini API key in Provider Settings',
code: 'API_KEY_MISSING',
});
model = normalizeGeminiModel(resolveModel());
if (!model)
return reply(503, 'The Gemini Live model configuration is invalid');