Desktop teardown reproduction Environment for every recording: Linux x86_64, Electron 44.10.1, Xvfb 1920x1080, app window 1100x780, light theme, no projects or threads. Each revision was installed with vp i and built with vp run build:desktop. The Linux build requires libsecret-1-dev. Electron's skipped installation was completed with node apps/desktop/node_modules/electron/install.js. Launch each checkout using: headless-desktop ./launch.sh CHECKOUT RUN_DIRECTORY The launch script creates isolated T3 state in the checkout, disables seeding and updates, and isolates Electron configuration per run. On first launch, complete onboarding with project imports unchecked. Unlock the synthetic desktop keyring if prompted, before recording. Hold is the shipped default quit mode. No account or agent turn is used. Run inside that display/session, using DISPLAY and XAUTHORITY saved by launch.sh: ./record-interaction.sh OUTPUT_DIRECTORY base double ./record-interaction.sh OUTPUT_DIRECTORY head double Repeat from a new app launch with mode hold on each side. The double interaction starts 2 seconds into the recording and sends xdotool key --delay 40 ctrl+q ctrl+q. Observe for another 5 seconds. The hold interaction sets repeat delay 300 ms / 30 Hz, holds Ctrl-Q for 2 seconds, releases Q and Ctrl, and observes for another 5 seconds. Observed: - Base double: window destroyed, uncaught main-process TypeError: Object has been destroyed dialog remains. Dismissed after recording. - Head double: no error dialog; Electron exits with status 0. - Hold: both base and head quit without an error dialog, status 0. Recordings preserve the display timeline. A black rectangle masks only the internal stack path region of the native error dialog. An environment and interaction footer is added outside the app. No application code was modified and no tests were used as evidence. Native macOS Command-Q timing and late native trackpad gestures were not verified on this Linux environment. AI-assisted; verified with the tests and tools listed above.