Voice input
Activate the consented 60-second recording and editable transcription flow.
Voice input is a separate, optional path from text chat. The included production
flow records with expo-audio, uploads privately to Supabase Storage, calls the
transcribe-audio function, and places the transcript into the editable composer.
It does not send the message automatically.
Prompt
Read agent-skills/wire-ai-voice.md. Activate the included voice transcription
path. Ask for microphone permission only after a mic tap. Preserve the 60-second
and 10 MB limits, private upload, authenticated quota, cancellation, local/client/
server cleanup, and editable text fallback. Test on physical iOS and Android.User experience contract
- clear recording state, elapsed time, stop, and cancel,
- no recording before visible consent and permission,
- denial explanation plus settings path without prompt loops,
- interruption/background/audio-focus handling,
- screen-reader announcements for start, stop, and elapsed state,
- text input remains a complete fallback.
Privacy and cleanup
Raw audio must not enter analytics, crash reports, or ordinary logs. Temporary
objects are bounded and private, cleaned in finally paths, and covered by a
scheduled one-hour expiry path for abandoned uploads.
Test first and permanent denial, interruption, silence, long audio, offline cancel, Bluetooth/headset behavior, and English/Spanish transcription.