AI-assisted; verified with the tests and tools listed above. Both sides: built the specified checkout with vp i and vp run build:desktop. Ran desktop-control.cjs from the checkout root under headless-desktop. Used a fresh checkout-local .t3 and isolated XDG_CONFIG_HOME; T3CODE_DEV_SEED=0. Electron was launched with --no-sandbox --disable-gpu. Viewport: 1440x900, light theme, browser panel maximized, 100% zoom. Synthetic seed: - Serve the supplied index.html on 127.0.0.1:19333. - Initialize its directory as an empty git repository. - node apps/server/src/bin.ts project add --title 'Annotation demo' --base-dir /.t3 - Start the new draft chat for that project. No provider turn is needed. - Open the right panel, choose Browser, enter http://127.0.0.1:19333/. - After navigation finishes, press Annotate preview, then Maximize panel. Driver: desktop-control.cjs owns the real Electron app and its first page, and exposes an HTTP control endpoint on 127.0.0.1:19223. The annotation-interaction.js file is an async function body run with app, page and require in scope. Set EVIDENCE_OUTPUT to an empty evidence directory and EVIDENCE_SIDE to base or head in that controller's environment before executing the interaction. Its input events are Electron webContents.sendInputEvent calls. CDP is used only to locate controls inside the closed shadow root; it does not mutate the annotation implementation. Selection is read from the document's tool attribute. The exact sequence is in the driver. It captures V, E, and the comment box; its stills compare decoded pixels from screenshots taken 500ms apart. The final comment still follows a click on Draw to stop the blinking caret. Raw recordings were captioned from steps.json timestamps, with no cut or speed change. Captions show the action and the observed selected tool.