Archived
The music feature is retired: delete the Media tab, MediaAPI, MediaPlayerController, PinnedMediaResourceLoader, MediaPanelView, the media_state control publish, media scope handling in VoiceSession, the volume setting, and all media tests. App is now Talk + Activity tabs. Backend media API in hope-voice-api is untouched (still serves the web UI).
2.4 KiB
2.4 KiB
Device testing checklist
Simulator verification covered connect/disconnect, transcripts (text mode), 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, observe that auto-lock is suppressed
(
isIdleTimerDisabledprevents the device from locking due to inactivity). - Note:
isIdleTimerDisableddoes not prevent a user from pressing the side button to lock the device. It only disables the automatic idle timeout. - After hang-up, auto-lock returns (idle timer re-enabled).
4. Audio interruption (phone call / Siri)
- Mid-conversation, trigger an interruption (incoming call or "Hey Siri").
- On end (with
shouldResume), mic and conversation resume automatically.
5. 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.
6. 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.