showcase/integrations/google-adk/qa/voice.md
/demos/voiceshowcase-google-adk is healthy (/api/health returns 200)OPENAI_API_KEY is set on the Railway service for the dedicated voice runtime at /api/copilotkit-voice (required for the /transcribe endpoint)GOOGLE_API_KEY is set on the ADK agent backend for the voice-demo agent (resolves to the neutral _simple_chat agent)MediaRecorder (Chromium, Firefox, Safari 14+)public/demo-audio/sample.wav is present (used for screenshot/preview generation; the in-app sample button no longer fetches it)/demos/voicedata-testid="voice-sample-audio") is visibleSample: "What is the weather in Tokyo?"data-testid="voice-sample-audio-button") is enabled<CopilotChat /> renders a message composer (data-testid="copilot-chat-input")data-testid="copilot-start-transcribe-button") — this is the authoritative signal that transcriptionService is mounted on /api/copilotkit-voicedata-testid="copilot-chat-textarea") contains the canned phrase "What is the weather in Tokyo?" (no async round-trip; no "Transcribing…" state)data-testid="copilot-send-button")data-testid="copilot-start-transcribe-button") in the composerdata-testid="copilot-finish-transcribe-button") to stop recordingOPENAI_API_KEY configured)