# Real-app queue-order proof

Use a clean checkout of each revision, install dependencies with `vp i`, and run the built-in scenario start-app script against a new synthetic T3 home. Use the same viewport (1280 x 900), light theme and replay recording on both sides.

1. Run `prepare-manual.py <checkout>` before starting the server. It extends only the free approval replay recording with a two-minute processing window. It does not change orchestration or queue selection.
2. Start the real web/server stack: `T3CODE_DEV_SEED=0 node scripts/scenarios/start-app.ts web <new-home> 127.0.0.1 <web-port>`.
3. Run `node seed-manual.mjs <checkout> <new-home>`. Pair the browser, select Settings > Chat > Follow-up behavior > Queue, and open the thread returned by the seed script.
4. Begin recording. Evaluate `browser-driver.js` on the parent thread. This sends three real `delegated_task.request` commands through the app's WebSocket API, using replay agents and `completionWake: always`.
5. In the parent view, decline Task 1's forwarded approval. Its replay turn completes and produces a real delegated completion. Decline the parent's original approval, ending that turn. Wait for the Task 1 completion turn's own approval, launch one more replay delegate titled `Later task` from this new parent run (`queueProof.later()`), then approve the parent. The replay now processes that earlier result for two minutes.
6. Type `Please handle this ordinary message before later task results` into the composer and click its `Queue message` button. Confirm the message is queued (dashed bubble and Edit queued message action).
7. Decline Later task's forwarded approval, making its replay turn finish after the ordinary message was queued. Leave the original Task 2 and Task 3 waiting.
8. Let the earlier parent completion turn finish naturally. Capture the next turn. On base, Later task's completion starts and the ordinary message remains dashed/queued. On head, the ordinary message starts with a solid bubble and its own approval, before Later task's completion.
9. Read the real projection through the same WebSocket API to record run request times and statuses. This corroborates the visible result; it does not mutate it.

The approval recording treats rejecting its synthetic command as the end of a completed replay turn. No command is executed by the replay agent. Task completion, parent wake-up, queueing, provider turn execution and rendering all pass through the real server.
