Packaged desktop e2e tests need a real GUI session. Check launchctl managername;
it should report Aqua. SSH-only sessions usually land in the Background
launchd domain, where open can fail with OSLaunchdErrorDomain Code=125 even
after the VM is reachable over SSH.
For VM runs, log in through VNC before launching the app. SSH is still useful for staging files, reading logs, and running probes, but GUI app launch and window assertions are more reliable after a console user is active.
trycua/cua's Lume CLI is a useful way to clone, boot, SSH into, VNC into, stop, and delete local macOS VMs programmatically.
The packaged desktop app has a single-instance lock on macOS. If
/Applications/Executor.app is already running on the host, prefer an isolated
VM or close that app before running vitest run --project desktop-packaged.
Useful evidence locations:
- Main process log:
~/Library/Logs/Executor/main.log - Supervised daemon manifest:
~/.executor/server-control/server.json - Electron CDP port:
~/Library/Application Support/Executor/DevToolsActivePort
When debugging black-window reports, verify both pixels and renderer state. VNC
can occasionally show a black framebuffer while CDP proves the renderer DOM is
healthy, so capture a CDP screenshot or inspect document.body.innerText before
calling a UI blank.