Address review feedback on the time-boxed runtime probes:
- GNU timeout exits 137, not 124, when -k escalates to SIGKILL. Run it
with --verbose and report a timeout for 124, or for 137 only when
timeout announced its own KILL, so an app killed by something else is
not misreported. Verified against coreutils 9.4 on ubuntu:24.04.
- Print the first and last 16 KiB of oversized Flatpak probe output so
a late startup exception or the timeout notice stays in the log.
- Pin the hostile Snap probe's timeout-before-generic-failure ordering.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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