Summary
On Windows, the daemon's auto-update path replaces the CLI binary successfully but never restarts the daemon, and it leaves no error anywhere. The browser pipeline stays dead until the user notices, and there is nothing to grep for when debugging.
Related to #305, but a different symptom: that issue is "the update never applies (versions before v0.2.1)". Here the replacement did happen — the restart step silently failed.
Environment
- Windows 11, bsk 0.3.0 → auto-upgraded to 0.3.1 (extension 0.3.1, Edge 149)
- daemon launched from a Startup-folder launcher running
bsk daemon start --foreground
Evidence
%USERPROFILE%\.bsk\daemon.log.2026-09-23 — last three lines, then nothing for ~24 hours:
18:19:40 update helper ready; exiting so it can replace and restart the daemon latest: 0.3.1
18:19:40 bsk daemon shutting down (auto-update restart)
18:19:40 ipc named-pipe server shutdown requested
State afterwards:
bsk --version → 0.3.1 → binary replacement succeeded
~/.bsk/update-check.json → latest_version: "0.3.1"
- no
bsk process, nothing listening on 127.0.0.1:52800, stale daemon.json
- first user-visible symptom: extension popup shows 未连接 / not connected; the whole browser pipeline is dead
Why this matters
The failure is internal to the update path, completely silent, and will recur on every future release.
Suggestions (any one removes the worst of it)
- Verify before you kill — start/health-check the new daemon before shutting the old one down.
- Log the outcome — the binary already references
BSK_UPDATE_LOG; please write the update helper's result there. Today a failed restart produces zero diagnostics.
- Or don't auto-restart at all — the binary already contains the message
A new bsk version is available: x -> y. Run \bsk update``. Making that notify-only branch the default would avoid the whole failure mode.
- Document
BSK_AUTO_UPDATE — the variable exists in the binary (right next to the two messages above) but appears in no help text or docs. We only found it by scanning the executable.
Workaround we use
Manual bsk update (its default restart path works correctly — --no-restart-daemon implies a restart is the default), plus a user-side launcher to bring the daemon back when it is gone.
中文摘要
Windows 下 daemon 的自动升级会先关闭自己、交给 update helper 替换二进制;替换成功(bsk --version 已变 0.3.1),但重启没有发生,且没有留下任何日志——daemon.log 停在 bsk daemon shutting down (auto-update restart),此后 24 小时无记录;无进程、52800 无监听。这不是用户操作问题,是升级路径自身的静默失败,每次发版都会复现。建议:① 先验证新 daemon 能起再关旧的;② 失败必须写日志(二进制里已有 BSK_UPDATE_LOG);③ 或改为"只提示不自动重启"(该分支文案已存在于二进制);④ 请把 BSK_AUTO_UPDATE 写进文档。
Summary
On Windows, the daemon's auto-update path replaces the CLI binary successfully but never restarts the daemon, and it leaves no error anywhere. The browser pipeline stays dead until the user notices, and there is nothing to grep for when debugging.
Related to #305, but a different symptom: that issue is "the update never applies (versions before v0.2.1)". Here the replacement did happen — the restart step silently failed.
Environment
bsk daemon start --foregroundEvidence
%USERPROFILE%\.bsk\daemon.log.2026-09-23— last three lines, then nothing for ~24 hours:State afterwards:
bsk --version→0.3.1→ binary replacement succeeded~/.bsk/update-check.json→latest_version: "0.3.1"bskprocess, nothing listening on 127.0.0.1:52800, staledaemon.jsonWhy this matters
The failure is internal to the update path, completely silent, and will recur on every future release.
Suggestions (any one removes the worst of it)
BSK_UPDATE_LOG; please write the update helper's result there. Today a failed restart produces zero diagnostics.A new bsk version is available: x -> y. Run \bsk update``. Making that notify-only branch the default would avoid the whole failure mode.BSK_AUTO_UPDATE— the variable exists in the binary (right next to the two messages above) but appears in no help text or docs. We only found it by scanning the executable.Workaround we use
Manual
bsk update(its default restart path works correctly —--no-restart-daemonimplies a restart is the default), plus a user-side launcher to bring the daemon back when it is gone.中文摘要
Windows 下 daemon 的自动升级会先关闭自己、交给 update helper 替换二进制;替换成功(
bsk --version已变 0.3.1),但重启没有发生,且没有留下任何日志——daemon.log停在bsk daemon shutting down (auto-update restart),此后 24 小时无记录;无进程、52800 无监听。这不是用户操作问题,是升级路径自身的静默失败,每次发版都会复现。建议:① 先验证新 daemon 能起再关旧的;② 失败必须写日志(二进制里已有BSK_UPDATE_LOG);③ 或改为"只提示不自动重启"(该分支文案已存在于二进制);④ 请把BSK_AUTO_UPDATE写进文档。