This repository was archived by the owner on Sep 13, 2026. It is now read-only.
v0.3.26
Fixed
- Dashboard update button killed the proxy without updating (
src/viewer.ts,
src/updater.ts): thePOST /dashboard/api/updatehandler ran
stopService() → performUpdate() → startService()inline, inside the proxy
process. Because the proxy lives in the service manager's cgroup (systemd
KillMode=control-group, launchd process group, NSSM process tree),
stopService()SIGTERM'd the proxy beforeperformUpdate()could run —
leaving the system stopped and unupdated. The fix spawns the CLIupdate
command as a detached process that escapes the service cgroup
(systemd-run --user --scopeon Linux, detachedspawn+unref()on
macOS/Windows). The CLI already orchestrates stop → update → start correctly
from a separate process; the dashboard now delegates to it instead of
duplicating the orchestration inline. Regression test added
(test/trigger-self-update.test.ts) verifying nosystemctl stopis
spawned from inside the proxy.