v2.1.3

Eliminated the installer "cannot be closed" error, implemented Telegram-style silent auto-update with race-free PID-wait launcher, unified both updater paths, and added one-command R2 release pipeline.

New Features

  • Telegram-style silent auto-update: updates download in the background and install automatically on the next app quit with relaunch
  • Race-free PID-wait launcher that waits for the app to exit before running the installer
  • One-command release pipeline with automated Cloudflare R2 upload and post-upload integrity verification

Improvements

  • Unified both updater paths (electron-updater and custom fallback) through a single install-on-quit lifecycle
  • Added update-pending.json persistence with explicit lifecycle states: pending-install, installing, verified, failed, deferred
  • Newly launched app verifies its version before clearing pending update state
  • Deferred update retry if the app process does not exit within 60 seconds
  • Release mode (PB_RELEASE=true) makes R2 upload mandatory with version + SHA512 + cache freshness verification

Bug Fixes

  • Eliminated the "Plumbing booster cannot be closed" installer error by hardening the NSIS kill logic with $SYSDIR\taskkill.exe and nsProcess::FindProcess verification

Ready to design smarter?

Start your 28-day free trial today. No credit card required.