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

18 lines
2.2 KiB
Markdown

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