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/.artifacts/20260831-105824-plan-code-ui-audit/iterations/08-request.md
T
2026-08-31 19:50:46 -04:00

2.2 KiB

Iteration 08 Request

  • Task: 20260831-105824-plan-code-ui-audit
  • Requested by: build from iterations/07-review.md
  • Owner: coder
  • Status: changes-requested

Required Corrections

  1. Fix the transient mic-state flaw with explicit user intent. Track whether the user/session mode intentionally wants the mic muted separately from isMuted, which also reflects interruption-owned hardware state. Public mute actions update user intent after success; successful normal mic enable clears it; text mode still enforces disabled mic. In a new interruption begin operation, decide whether to mute only after awaiting the predecessor, using current sequence/generation/text mode and user-intent state, not a pre-await isMuted snapshot. Ensure begin A → end A/unmute → begin B finishes muted. Add a pure operation-state seam/test if practical.
  2. Replace the finite nested server replacement with one retained worker loop. Every accepted Apply writes pendingServerURL (latest wins). If no worker is active, start one; while a pending value exists, consume/capture/validate it, disconnect the exact current session, build from that captured config, atomically set session and activeServerURL, then loop again in case a newer value arrived during disconnect. Clear worker/replacing state only after pending is empty. Cover A→B→C semantics through a small coordinator/pure test if practical.
  3. During terminal failure teardown, clear all per-room/session published fields before exposing .failed: agent, isMuted, user mute intent, micError, models, selectedModel, isReconnecting, interruption ownership/tasks, and other ephemeral connection state. Preserve deliberate durable settings, transcript history, and task history. Restrict inbound control-event application to active connecting/waiting/ready lifecycle states so late failed-room events cannot repopulate stale fields.
  4. Run complete XcodeBuildMCP tests, separate build, source suite-count check, and git diff --check. Write iterations/08-implementation.md, update implementation.md/manifest, and do not self-approve.

Scope

  • No broad Hope UI implementation, reference-project changes, commits, or dilution of real-device/server-format qualifications.