# Iteration 09 Request - Task: 20260831-105824-plan-code-ui-audit - Requested by: build from `iterations/08-review.md` - Owner: coder - Status: changes-requested ## Required Correction 1. Prevent old-room callbacks from repopulating ephemeral fields during terminal teardown: - Gate `participantDidConnect` and all connection-state mutations on `!isTearingDown` plus explicit active lifecycle states. - Ignore reconnecting/connected/disconnected state changes from intentional teardown before mutating published fields. - Perform a final shared ephemeral-field reset immediately after `teardownRoom()` and immediately before publishing `.failed(message)`, so any callback delivered during the await is erased. - Reuse one reset helper from explicit disconnect/start/failure where semantically appropriate; preserve durable settings, transcript history, and task history. - Add a focused pure predicate/reset test seam proving callbacks are rejected for `.tearingDown`/`.failed` and accepted only for intended active states. 2. Run the complete XcodeBuildMCP tests, separate simulator build, suite/source count, and `git diff --check`. 3. Write `iterations/09-implementation.md`, update implementation.md/manifest, and do not self-approve. ## Scope - No UI redesign implementation, reference-project changes, commits, or changes to device/server qualification language.