Redesign Hope iOS UI, harden playback, and document project handoff
This commit is contained in:
1 parent
40aaf4fea7
commit
24f95639dc
24 files changed
+1470
-594
No files matched your search
@@ -0,0 +1,77 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user