# 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.