docs: README + device testing checklist (Phase 9)

This commit is contained in:
snowspeeder committed 2026-08-30 09:41:04 -04:00
1 parent 12ded179eb
commit e63e53ee74
3 files changed
+160 -1

No files matched your search

+22 -1
View File
@@ -28,7 +28,7 @@ Goal: full-parity native iOS app per UPDATE_PATH.md, verified in simulator via X
- [x] Phase 6: media search, choices, library panel (commit cbf1830)
- [x] Phase 7: background tasks panel (commit af296da)
- [x] Phase 8: polish/hardening/parity pass (commit pending)
- [ ] Phase 9: docs & handoff
- [x] Phase 9: docs & handoff (commit pending)
## Phase 2 status
Done: VoiceSession (token→connect, agent wait, mic enable, mute, sendText lk.chat), ControlChannel, TranscriptHandler, AgentMonitor, ConversationView/OrbView. Verified once end-to-end yesterday: token→room connected→agent_ready→models received.
@@ -182,6 +182,27 @@ Web parity checklist (vs /Users/shane/dev/hope-voice-api/web/app.js):
- [ ] Web-only: drag-to-seek on waveform (iOS uses slider — acceptable)
- [ ] Web-only: keyboard shortcuts (N/A on iOS)
## Project status (final, 2026-08-30)
All 10 phases complete. Full web parity achieved and verified in simulator to the extent
the environment allows.
**Verified in simulator:** token auth + LiveKit connect (with retry), agent_ready, state
machine driven by remote audio, text-mode transcripts (user + agent finals), voice/model
pickers with sync-on-join + persistence, media reconciliation/UI/Range proxy/polling/
reporting, media search/library/delete/add-stream, background tasks panel with real
task_events, stale-room guards, error states, accessibility labels. Zero build warnings.
**Device-only (see docs/DEVICE_TESTING.md):** mic capture with real speech (sim returns
-4010), live listening/thinking/barge-in states from local audio, wake lock on physical
screen-off, audible media playback, audio interruption behavior, mic-denied fallback UX.
**Open server-side items (not app bugs):**
1. iOS-decodable media format — library tracks are webm; AVPlayer can't decode it (-11828).
Server must serve m4a/aac/mp3 for audible playback on iOS. No client change needed.
2. Cert pin rotation — the self-signed cert regenerates at container start, breaking the
SHA-256 pin in TLSPinning.swift. Re-export the hash after each server restart (README).
## Subagent notes
- Small context model: keep prompts self-contained, point at this file + UPDATE_PATH.md
- Watch for loops (repeated identical commands) — kill and redirect if seen