mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-13 15:46:22 +00:00
* feat: add voice recording UI with waveform overlay to new tab search bar Add a microphone button to the NewTab search bar that opens a fullscreen recording overlay powered by react-voice-visualizer. The overlay shows a real-time waveform visualization during recording, recording time, and a stop button. On completion, the audio is transcribed via the existing gateway endpoint and the transcript auto-navigates to inline chat. Changes: - Extract transcribeAudio() to shared lib/voice/transcribe-audio.ts - Add VoiceRecordingOverlay component with react-voice-visualizer - Add Mic button to NewTab search bar - Track analytics via existing NEWTAB_VOICE_* events - Handle cancel (backdrop click) vs submit (stop button) correctly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address PR review comments for voice recording overlay - Reset processingRef on transcription error to prevent stuck state - Use stable callback refs to prevent useEffect re-runs from inline arrow function props (fixes timer reset and unnecessary re-processing) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: replace voice overlay with inline sidepanel-style voice UI Remove react-voice-visualizer dependency and VoiceRecordingOverlay. Instead use the same inline voice pattern as the sidepanel ChatInput: - Waveform bars replace the search input during recording - Mic/stop/loading button states in the search bar - Transcript populates the search input on completion - Voice error shown inline below the search bar Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>