Skip to content
This repository was archived by the owner on Sep 13, 2026. It is now read-only.

v0.3.26

Choose a tag to compare

@github-actions github-actions released this 26 Jul 05:34

Fixed

  • Dashboard update button killed the proxy without updating (src/viewer.ts,
    src/updater.ts): the POST /dashboard/api/update handler 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 before performUpdate() could run —
    leaving the system stopped and unupdated. The fix spawns the CLI update
    command as a detached process that escapes the service cgroup
    (systemd-run --user --scope on Linux, detached spawn + 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 no systemctl stop is
    spawned from inside the proxy.