Archived
status
This commit is contained in:
1 parent
c9c25f86eb
commit
40aaf4fea7
56 files changed
+5683
-179
No files matched your search
@@ -0,0 +1,21 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user