# iOS preview momentum reproduction

Run the base and head as separate real T3 Code app checkouts, with fresh isolated server data and Metro bundles. Use the same iPhone simulator, light appearance, and portrait 402 × 874 point viewport for both.

1. Prepare/install the checkout's dev client with `vp run mobile:install ios` and the leased device session.
2. Start the checkout's scenario app launcher with `T3CODE_DEV_SEED=0`, a fresh home, and device-reachable server and Metro ports.
3. Run `node seed.mts <checkout> <home> <server-port>`. Keep `momentum.html` next to the seed script. This creates a synthetic project and replays an agent reply containing its file link, then restores the replay recording.
4. Open the dev client against that checkout's Metro URL and pair it using `python3 pair.py <checkout> <home> <server-port> <session>`.
5. Open the newly seeded Preview momentum thread, then tap momentum.html. HTML opens directly in Preview. Verify the HUD reads `scrollY 0` and `last flick: -`.
6. Record the screen and run `agent-device gesture fling up 200 720 500 --session <session>`. Wait six seconds, capture two settled screenshots at least 500 ms apart, check they match, and stop recording. `capture-flick.sh <session> <output-directory> <side>` automates this sequence and writes a new timestamped directory.

Observed: base coast 257 px, final scrollY 425; head coast 1278 px, final scrollY 1678. The same gesture moves from section 1 to sections 2–3 on base and sections 5–6 on head. The ten-second published clips trim idle time and begin approximately two seconds before page movement; no interaction frames are removed.

The scenario runner was attempted twice but did not reach the flick: the initial install timed out and the next attempt could not complete preview navigation. The manual captures above supply the evidence. The device CLI's three-second remote health probe also rejected a healthy gateway taking about four seconds to reply; the local tool's probe was extended to fifteen seconds for the head run. This changes only device-tool connectivity.

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