# ACP model options reproduction

Use a clean worktree and fresh .t3 database per commit. Run `vp i`, place seed.mjs and mock-wrapper.mjs together, run `node seed.mjs /path/to/checkout`, then start `T3CODE_DEV_SEED=0 vp run dev` from that checkout. The wrapper enables the existing ACP mock's parameterized-model profile by adding the initialize capability; it does not alter the options returned by the mock.

Web client: Chromium, dark theme, 1280 by 800 CSS pixels. Pair using the startup URL. Close the thread details panel to keep the machine label out of stills. Use the automatically created server project; no live database is copied.

1. On GPT-5.4, send `hello` and wait for `hello from mock`.
2. Create a new thread in the same project, select Opus 4.6, and inspect its options. Base incorrectly shows None/Low/Medium/High/Extra High, Context and Fast. Head shows only shared Mode until Opus has been used.
3. On Opus 4.6, send `hello` and wait for the mock reply. Open the model picker: its actual options are Low/Medium/High and Thinking.
4. Select GPT-5.4 in that thread, close the picker, send `hello again`, and wait for the reply.
5. Click the project breadcrumb (New thread in server), close the thread details panel, open the model picker, and select Opus 4.6. Keep the picker open.
6. Base again displays GPT's five reasoning levels, Context and Fast. Head retains Opus's three reasoning levels and Thinking. The paired videos show steps 3–5, and the paired stills show step 5. Two still captures taken more than 500 ms apart were pixel-identical on each side.

The videos redact only the machine-label rectangle in the thread details panel. Model and option labels are unchanged. All chat data is synthetic. No paid provider is used.

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