Wrap the three packaged `--embedded-mpv-runtime-probe` launches in GNU
`timeout -k 10 300`, report exit 124 as a distinct `::error::` that says
the packaged app never exited, capture and print the hostile-environment
Snap probe output like the other two probes, and set
ELECTRON_ENABLE_LOGGING=1 so main-process exceptions reach the step log.
A main process that throws before app ready (seen in #1696 with "Cannot
find module './main.app.js'") blocks on Electron's uncaught-exception
dialog under xvfb and previously held the job until its 120-minute
limit with no useful output.
The probe's JSON verdict is still one stdout line, so the exact
`grep -Fx` match on the disconnected Snap probe is unchanged; verified
locally with the workspace Electron binary.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
main.js is now a small entry that enables Node's on-disk V8 compile cache under userData/v8-compile-cache and then requires the application bundle main.app.js. Warm launches reach app.whenReady about 13 ms sooner at the median; IPTVNATOR_DISABLE_COMPILE_CACHE=1 turns it off and IPTVNATOR_COMPILE_CACHE_DIR relocates it.
Packaging now ships main.app.js explicitly and verify:package-layout requires the main-process entry files in app.asar, because nx-electron copies the backend through an allowlist. The Xtream benchmark build identity hashes both the launcher and the bundle.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* test(electron): reap Windows process trees and retain smoke diagnostics
* test(electron): require confirmed process exit before relaunch
* test(electron): retain process handle after application exit
* test(electron): bind captured processes to application instances