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/VERIFICATION.md
T

78 lines
4.3 KiB
Markdown

# Verification — 2026-09-08
## Scope and implementation
The requested model migration was canceled: Qwen 2.5 remains configured.
The native redesign separates Talk, Music and Activity; simplifies the welcome
and connection controls; supports light/dark appearance and Dynamic Type;
adds recoverable error states; and gives transcript clearing explicit confirmation.
The Impeccable native-iOS guidance informed system controls, hierarchy, readable
spacing and touch targets. Settings, transcripts and task updates are observed
directly so asynchronous changes render promptly.
Music fixes include standalone control requests, current download metadata,
visible failures, pinned artwork, server-change cleanup, cached AAC delivery,
and correct AVFoundation content-type identifiers in the pinned resource loader.
## Evidence
Project: `Voice.xcodeproj`; scheme: `Voice_iOS`; simulator: iPhone 17 Pro.
- 68 unit tests passed, including standalone media controls, retry error clearing,
download metadata, transcript persistence/deduplication, session replacement,
and interruption state handling.
- Five offline UI tests passed: navigation/offline recovery, voice persistence and
URL validation, music search failure/station validation, transcript confirmation
and task details, and accessibility-size navigation.
- Two live UI tests passed together against the NAS at 17:56 UTC: real Qwen
response, background task completion, disconnect/reconnect, library playback
with advancing media time, pause, forward seek and stop.
- Backend integration run: 16 passed, 7 skipped, 2 deselected. This is not a claim
that the skipped or slow integration cases were verified.
- AAC conversion regression: one passed, checking original-file preservation,
AAC output, cache reuse and HTTP byte ranges. Deployed range request returned 206.
XcodeBuildMCP result bundles are under
`~/Library/Developer/XcodeBuildMCP/workspaces/voice-ios-9eb036fdea81/result-bundles/`:
- Unit/offline UI: `test_sim_2026-09-08T11-48-52-164Z_pid87175_79b1a610.xcresult`.
This combined run's two live cases failed after long stalls; its unit/offline
results above passed.
- Latest live pair: `test_sim_2026-09-08T17-56-51-984Z_pid30949_ec504db2.xcresult`.
- Earlier live rerun: `test_sim_2026-09-08T17-46-07-841Z_pid30949_bd804a04.xcresult`
failed agent join and advancing playback. Their intermittent cause has not
been established. The subsequent passing pair did not require a server restart.
## Not yet qualified
Passing simulator tests do not prove audible speaker/headphone output, microphone
capture, barge-in, phone/Siri interruption recovery, background audio, or network
loss recovery on hardware. Follow `DEVICE_TESTING.md` with a physical iPhone on
the LAN. Navigation at large text sizes is tested, not a complete VoiceOver audit.
Live tests use an existing library track; they do not prove new YouTube downloads
or every radio stream format.
## Repeatability follow-up — 18:04 UTC
Three consecutive Qwen/task/reconnect iterations passed. Music passed twice and
failed on the third iteration; runtime logs captured AVPlayer's request timeout
while the TLS loader buffered a whole 6 MB response. The loader now delivers
bounded 256 KB ranges to AVPlayer, retaining cancellation and EOF handling.
After that change, **all three consecutive live playback iterations passed**
in about 13 seconds each. This addresses the observed music buffering failure;
the earlier isolated agent-join failure has not been reproduced or explained.
- Reproduction bundle: `test_sim_2026-09-08T18-00-03-993Z_pid30949_49da9d2c.xcresult`.
- Post-fix playback bundle: `test_sim_2026-09-08T18-04-30-014Z_pid30949_df323119.xcresult`.
- Live tests now attach failure screenshots and UI hierarchy, and attempt to stop
test-initiated music during teardown even after an assertion failure.
The initial hardware check found an unavailable iPhone. A later USB check detected
the phone running iOS 26.6.1, explicitly marked **unpaired** by XcodeBuildMCP.
No successful device install or hardware qualification is recorded. See
`PROJECT_STATUS.md` for the current pairing blocker and next steps.
Deployment and rollback are recorded in `DEPLOYMENT.md`. The NAS image includes
the compatibility patch; the sibling backend source still requires its own commit
and safe deployment workflow. See `PROJECT_STATUS.md` for repository handoff scope.