Evidence environment: fs-22 Linux x86_64 VM; real Vite web app from detached before 867112cda0 and after 18361cdf37 checkouts; agent-browser 0.40.0 controlling headless Chrome for Testing 148.0.7778.96; no device emulation, DPR 1, desktop window zoom 1, font scaling 100% (root font 16 px); full CSS viewports 1440×900 and 390×844; light and dark; prefers-reduced-motion: reduce; document clock frozen before desktop renderer boot at 2026-07-28T12:00:00.000Z; scroll offsets zero.

Label: desktop-bridge harness captures. Auto-update is unavailable in unpackaged desktop builds, so these are the real app's desktop renderer UI in a browser with a synthetic preload bridge, not a native Electron updater run. The shared bridge has the side's specified main-process message as its only before/after difference. Its fetch wrapper preserves the real browser pairing cookie for desktop-shaped requests. Incoming host-provider version advisories are omitted identically on both sides to keep unrelated provider update offers from turning the requested Download action into Update everything. No provider update is executed.

Both dev servers started with T3CODE_DEV_SEED=0 against their own fresh .t3 databases; no live T3 data was read or copied. The app creates the default server project and an empty thread; the driver uses an empty draft and sends no message. Initial pairing uses the server's own printed one-time URL. The uploaded scripts contain no pairing credentials.

Every accepted still passed network idle, document.fonts.ready, and a pixel-identical pair of full-viewport screenshots separated by 500 ms. The driver saves each run in a new timestamped directory. Diff0 marks every nonzero RGB delta in saturated magenta, including a one-level change; DiffT8 uses max(|ΔR|,|ΔG|,|ΔB|)>8 on 8-bit channels. The background is faded only in diff visualizations; captures remain unmodified.
