The WebSocket, mic, and audio contexts were never torn down after
complete_brief succeeded, so the Gemini agent kept listening and
responding in the background. Now endConversation() fires as soon as
the brief arrives, and the Start button is hidden during the 1.5s
transition so it doesn't flash.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Visual feedback while the complete_brief API call runs (~15s).
Badge appears below the orb with a spinner animation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- System prompt now specifies exact predefined values for services/industries/timelines
- Agent instructed to call complete_brief IMMEDIATELY when name+email confirmed
- Chip labels fall back to raw value for unknown keys instead of showing i18n path
- Added completion transition logging
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Site analysis: cheerio HTML parsing, inline tech stack detection (~20 CMS/framework/analytics signatures), Google PageSpeed API integration
- Gemini Live voice agent: WebSocket-based real-time voice mode with live transcript, selection chips, and mid-conversation website analysis
- Type/Talk mode toggle with silent capability detection
- Stepped progress animation during brief generation (4 animated steps)
- URL + thoughts fields in Step 2, phone + contact preference in Step 3
- AI prompt improvements: dedicated website analysis section, 30-min call, concrete benefits, industry depth
- Email redesign: branded templates with logo, proper markdown rendering for both client and admin
- French locale support for AI-generated briefs
- Smaller checkmark, compact booking CTA, expanded brief area
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>