Preview target replacement evidence

Run the same driver against each checkout's real T3 development server. Each server uses its own fresh `.t3/manual` home, with development seeding disabled and real providers disabled. The driver creates only synthetic projects and a pending replay question to keep the thread's preview capability active. It uses that replay process's injected MCP credentials locally without printing or publishing them.

Start each server with:

    T3CODE_DEV_SEED=0 T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=0 vp run dev --home-dir .t3/manual --no-seed

Run the driver with:

    node driver.mjs <checkout> <new-output-directory> recovery
    node driver.mjs <checkout> <new-output-directory> persistent

Recovery: the fixture puts Save below the viewport, clones it every 40 ms, and stops replacement after 1.4 seconds. After preview_open and preview_snapshot, the driver uses selector-based preview_act click, hover and drag, each with timeoutMs 3000, four times each on a newly navigated page. Drag's destination remains stable. The page counts click, pointermove and pointerdown respectively. It displays the actual MCP response from the local fixture server during each recording pause.

Persistent: one attempt per gesture, cloning every 1 ms without stopping, with the same 3000 ms timeout. The driver measures wall-clock RPC duration and records the page's input count.

Evidence: preview-results.png is a native T3 preview_snapshot capture; gestures.mp4 is a native preview_recording_start/preview_recording_stop capture; results.json contains the actual MCP errors, event counts and measured RPC durations. Report screenshots must be byte-identical 500 ms apart before they are copied. The report is instrumentation of real responses, not mocked action results. Screenshots and recordings use the server-owned Chromium browser at 1280×800 CSS pixels, device scale factor 2, with the same light page on both commits.

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