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
2026-08-31 19:50:46 -04:00

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

  1. 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.last because user/agent events may interleave.
  2. Fix microphone interruption state. handleAudioInterruption(.ended) currently resumes whenever isMuted, 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.
  3. Fix media interruption behavior. Poll reconciliation currently sees server desired=playing and can call player.play() during an active interruption immediately after .began pauses 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.
  4. Correct PinnedMediaResourceLoader content length for HTTP 206. expectedContentLength is the returned range length, but AVAssetResourceLoadingContentInformationRequest.contentLength must represent the full resource. Parse the total from Content-Range when present, with a small focused test for the parser. Do not claim webm decode support.
  5. 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.
  6. Update stale comments (for example applyTextMode still 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, update implementation.md, and append manifest history.
  • Preserve the validated runtime behavior and all prior fixes.