Ask voice got a proper state machine: Idle → Connecting → Listening → Submitting → AI speaking, with push-to-talk, first-time voice picker, and an optional fullscreen view with particle sphere and live transcript.
Category dropdown, dual voice/text toggle, and sources/follow-ups appear when streaming finishes.
Added
- Voice session state machine; voice button always visible when supported
- Connecting state with spinner, cancel, timeout, retry
- Push-to-talk (pointer/touch + Space)
- First-time voice picker with preview
- Gagan is speaking strip with stop/exit
- Error card with Try again / Open settings
- Optional fullscreen voice view (particle sphere, sources, transcript)
- Category dropdown; suggestion chips; follow-up filtering
Changed
- Gear icon only in voice mode (removed from idle form)
- Voice ring shown only when active; softer waveform animation
- Follow-up chips left-aligned; citations on same line as numbers
Fixed
- Connecting state display (voiceConnecting flag)
- API error body parsed as JSON; missing i18n keys for production