- Start: WinSW's NetX.out.log/err.log in data\runtime are the same files as
start_netx.ps1's netx.out.log (case-insensitive) and stay open, so NetX
could not truncate its log and every start failed. WinSW logs now go to
data\runtime\service.
- Stop: nothing told the service_run.ps1 supervisor to exit, so it kept
restarting NetX and WinSW waited forever. stop_netx_app.ps1 writes the
service.stop flag (-KeepSupervisor for the supervisor's own restarts),
service_run checks it every second, and runtime_ctl / service_lifecycle
write it before stopping the service.
- WinSW launched powershell.exe as stop hook never reached the script
(stuck on inherited std handles); run it via cmd with NUL stdin and output
to data\runtime\service\stopexec.log. stop_netx_app.ps1 keeps a
timestamped trace there.
Offline Windows Sandbox: service install -> healthy in 28s, stop in 20s.
Existing service installs need "install service" re-run to pick this up.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installer: dynamic light/dark Win11 style, new brand wizard images, auto
language, exclusive run mode (tray / Windows service) plus autostart and
auto-update on the Tasks page (pre-selected from what is installed on
upgrades, untouched by silent updates), 5 localized Start Menu entries.
Tray: theme-aware rounded menu with live status, icons and status-dot tray
icon; health polled off the UI thread; Settings submenu toggles autostart
and daily updates; browser opened de-elevated via explorer.
Fixes:
- tray Stop/Start was ignored in service mode (service_run restarted the
children) - all start/stop now goes through runtime_ctl.ps1
- logon tray task and SYSTEM service task were killed after 72h (default
ExecutionTimeLimit); autostart was registered for the elevating account
and opened a browser on every logon
- uninstall left the NetXTray/NetXUpdate tasks behind
- silent auto-update killed the tray without restarting it
- repair_venv.ps1 was never staged into the release
- wildcard NETX_HOST (0.0.0.0) broke health checks
- ICO frames were PNG, which System.Drawing decodes as noise; icons now
use the current brand mark
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>