Archived
2.9 KiB
2.9 KiB
Device testing checklist
Simulator verification covered connect/disconnect, transcripts (text mode), media
reconciliation/UI, tasks panel, and the hardening pass. The items below need a real
iPhone on the LAN (https://192.168.86.2:9178) because mic input, WebRTC capture,
and audio session behavior don't work in this simulator environment (CoreAudio -4010,
0 input channels).
Setup: build with Xcode for a physical device (or xcodebuild ... -destination), install,
ensure the server cert pin is current (see README — re-export after any server restart).
1. Mic input with real speech
- Start → agent joins → mic enables without
-4010. - Speak: orb/status transitions to listening; mic meter moves with voice level.
- Stop speaking, wait >2 s while agent is silent → thinking chip appears.
- Agent replies: state goes to speaking (remote audio drives it), TTS audible.
- User transcript finals arrive in the list with correct role/timestamps.
2. Barge-in
- While the agent is speaking, start talking → conversation continues without a "barge-in" glitch; state returns to listening/thinking as expected.
- Text mode: barge-in hint line visible while in text mode.
3. Wake lock (screen off)
- During an active conversation, press the side button (screen off).
- Screen stays on / auto-lock is suppressed for the duration of the session
(
isIdleTimerDisabled); after hang-up, auto-lock returns.
4. Audible media playback
- Requires a track in an iOS-decodable format (m4a/aac/mp3) — current library tracks
are webm and will fail with
-11828until the server serves a supported format. - Play a library track: audio is audible, now-playing card shows art/title/status.
- Pause / ±10 s / stop / seek all work; agent mics off while playing
(
media_statepublished), mics back on when stopped. - End conversation while music was playing before → playback resumes.
5. Audio interruption (phone call / Siri)
- Mid-conversation, trigger an interruption (incoming call or "Hey Siri").
- Mic is muted on interruption begin; conversation/media pause cleanly.
- On end (with
shouldResume), mic and media resume automatically. - Media panel: AVPlayer pauses on interruption and resumes after.
6. Mic permission denied fallback
- Deny microphone permission in iOS Settings for the app, relaunch.
- Start → session reaches ready despite mic failure (non-fatal); orange error banner shows the mic error; text mode remains fully usable.
7. General device sanity
- Connect / hang-up / reconnect matrix (3×) — no crashes, state resets cleanly.
- Change server URL in Settings while idle → session recreates without crash.
- Reconnect banner appears on network loss mid-call; recovers on return.
- Voice/model picker changes take effect live on the agent and survive relaunch.