# Desktop startup proof

Build each checkout separately with `vp i`, `node apps/desktop/node_modules/electron/install.js`, and `vp run build:desktop`. Linux build prerequisite: libsecret-1-dev.

Place run.sh and stall.cjs together in a writable scratch directory. Run sequentially:

```sh
headless-desktop bash run.sh /absolute/path/to/base-checkout base
headless-desktop bash run.sh /absolute/path/to/head-checkout head
```

The driver creates fresh application, Electron profile, home, and agent discovery directories per run. The app selects its own Electron profile below the isolated XDG_CONFIG_HOME. No database is seeded. Both windows are placed at 0,0 and sized to 1280x900. The default light theme is unchanged.

NODE_OPTIONS preloads stall.cjs into the backend. It synchronously blocks the event loop for 30 seconds on the first POST /oauth/token, then delivers that original request. It also uses the synthetic hostname Desktop proof so no machine name appears in public evidence. No startup/auth implementation is changed.

Recordings run from launch through 60 seconds. Stills are taken at 16, 40, and 60 seconds; the published final still is a second identical capture 500ms later. The driver does not click Try again or Reload app.

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