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

4.3 KiB

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.