v0.18.1
·
178 commits
to develop
since this release
[0.18.1] - 2026-08-13
Security
- Restricted permissions on configuration files and directories (#668). Previously,
config.json(which holds sensitive data liketelegram.botToken) was world-readable (0644). Config files are now tightened to0600, the config and project directories to0700, and the daemon socket to0600after binding. A one-shot migration automatically secures existing paths on update. Additionally,DEFAULT_CONFIG_PATHandCONFIG_DIRnow honor theSQUADRANT_CONFIGenvironment variable.
Fixed
- Daemon crash-loop due to duplicate global installs (#670). Fixed an issue where having Squadrant installed globally multiple times (e.g., via
npmandpnpmsimultaneously) hijacked thelaunchdplist and caused a daemon crash-loop.- The update banner now prints the upgrade command for the install's specific package manager.
ensureDaemonnow refuses to seize a plist owned by a different, still-installed Squadrant binary.squadrant doctorwarns operators of multiple installations.squadrantdrefuses to bind the production socket from a monorepo or worktree checkout.
- False 'healthy' status when daemon is offline (#671).
squadrant heal statuspreviously reported all components as healthy if the daemon was completely offline, treating an empty component list as vacuously healthy. It now proactively probes daemon liveness via a real socket connection before trusting component data.