This repository has been archived on 2026-10-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
hope-voice-ios/docs/DEVICE_TESTING.md
T
snowspeeder ed329213de Remove embedded music player
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).
2026-09-12 06:26:58 -04:00

51 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
(`isIdleTimerDisabled` prevents the device from locking due to inactivity).
- [ ] Note: `isIdleTimerDisabled` does **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.