Archived
2.4 KiB
2.4 KiB
Iteration 03 Request
- Task: 20260831-105824-plan-code-ui-audit
- Requested by: build after runtime and device-path logic audit
- Owner: coder
- Status: changes-requested
Required Corrections
- Make transcript cross-source dedupe symmetric. Add tests for data final followed by identical primary final as well as primary then data, asserting one visible event and one history entry. Bound role/text dedupe to a short time window so legitimate repeated utterances are not permanently suppressed; do not rely only on
events.lastbecause user/agent events may interleave. - Fix microphone interruption state.
handleAudioInterruption(.ended)currently resumes wheneverisMuted, so a user who was already muted before the interruption can be unmuted. Track whether this interruption actually muted the mic and resume only in that case; clear the flag safely on disconnect/new interruption. - Fix media interruption behavior. Poll reconciliation currently sees server
desired=playingand can callplayer.play()during an active interruption immediately after.beganpauses it. Track interruption state and prior playback, prevent reconciliation-driven play while interrupted, honor.shouldResume, and keep server desired state coherent (pause/resume control as needed) so a no-resume ending does not immediately restart on the next poll. - Correct
PinnedMediaResourceLoadercontent length for HTTP 206.expectedContentLengthis the returned range length, butAVAssetResourceLoadingContentInformationRequest.contentLengthmust represent the full resource. Parse the total fromContent-Rangewhen present, with a small focused test for the parser. Do not claim webm decode support. - Correct or remove the misleading
MediaAPI.streamURL(trackID:)behavior:/media/api/stream/{id}returns progressive media bytes, not a text URL. Construct and return the endpoint URL without downloading/decoding the media body, preserving the public signature if minimal. - Update stale comments (for example
applyTextModestill references a removed SettingsStore callback).
Verification
- Add focused unit tests where practical, regenerate only if project structure changes, and run the complete simulator test suite and build with XcodeBuildMCP.
- Write
iterations/03-implementation.md, updateimplementation.md, and append manifest history. - Preserve the validated runtime behavior and all prior fixes.