Mobile Starter Kit

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.

On this page