# Mobile steer fold reproduction

AI-assisted; verified with the tests and tools listed above.

Environment: native T3 Code development client, iPhone 18 Pro simulator, iOS 27.2, light theme, 402 × 874 logical viewport. Each commit runs its own server, fresh isolated data directory, and Metro bundle. Both commits have the same native fingerprint. No existing user database is copied.

Base: 4e48d9e6a5aba8d0184ac2c953598086ed034c29
Head: c93f3bae5773ef0db46601573c509c150b22a376

## Seed

Run `python3 prepare.py <checkout>` before starting the server. It installs a synthetic recording into the existing multi-turn replay fixture and prepares isolated settings below the checkout's `.t3/proof`. It does not alter the mobile code. Use the identical script on each commit.

The first replay prompt emits `echo work-before`, then waits with empty plan updates. Interrupting it advances the replay to the second prompt, which emits `echo work-after` and the final answer `Done.`. This uses the real ACP adapter and interrupt/restart steering, keeping the work in the same logical run.

Start the checkout's server with `T3CODE_DEV_SEED=0`, `--no-seed`, `--home-dir <checkout>/.t3/proof`, `--host 0.0.0.0`, and an available port. Prepend `<checkout>/.t3/proof/bin` to that server's PATH to give the synthetic environment the name Scenario. Start its mobile Metro server on a separate available port, reachable by the leased simulator.

Install using `vp run mobile:install ios --prepare`, then `vp run mobile:install ios --session <session>`. Open its Metro development-client link and pair using `.agents/skills/test-t3-mobile/scripts/pair-client.sh` against that checkout's isolated server.

Create the same empty git repository and add it as project `Steer demo` through `t3 project add`. Start the thread through:

```sh
node apps/server/src/bin.ts thread start <synthetic-workspace> 'Run the first command' \
  --title 'Steer split' --provider devReplay --model multi-turn --json \
  --base-dir <checkout>/.t3/proof
```

## Recorded interaction, repeated on both commits

1. Open `Steer split` from Chats (expand Working if collapsed).
2. Observe the running first command.
3. Fill the composer with `Now run the second command` and tap its send control.
4. Open the queue and tap `Send now`. The message is marked Steer and the current replay prompt is interrupted.
5. Wait for `Done.` and capture the collapsed feed.
6. Open the first Worked for fold and capture again.
7. On head, additionally open Continued for to inspect the second command.

Base: one Worked for row above the steer owns both commands; expanding it reveals work before and after the steer.
Head: Worked for appears above the steer, Continued for appears below it; the first fold opens only work-before, and the second opens work-after.

Wall-clock durations differ because the interaction was driven manually. No assertion depends on those durations. Before each selected still, screenshots taken at least 500 ms apart were compared pixel-for-pixel and matched. The first head collapsed pair crossed a status-bar minute change and was replaced with a matching pair.

The base video is trimmed to the thread interaction; the original recording also included navigation from Chats. The head video includes navigation and both independent fold expansions. Every selected still and video was visually reviewed before upload.

## Scenario attempt

Two scenario comparisons were attempted first. The first waited for the full command text although mobile summarizes it as Running echo; it also encountered a server restart while writing the replay fixture. The second reached the composer but could not locate its nested Steer button in iOS accessibility. Neither comparison counts as proof. The evidence above comes from the manual native runs.
