Updates
Updates
Stackie updates itself automatically in the background without interrupting your running sandboxes.
How updates work
- Background check —
stackiedchecks for a new version once per hour (configurable). The check is silent and does not affect running sandboxes. - Download — When a new version is available, the package is downloaded
and checksummed in
~/.stackie/updates/. - Apply on exit — The update is applied the next time you quit Stackie
through the tray menu or
stackie stop. A sidecar process (stackie-updater) extracts the new binaries after the daemon exits. - Health check — After extracting, the sidecar launches the new daemon and waits up to 5 seconds for it to accept TCP connections. If the health check passes, the update is committed and the backup is removed.
Rollback on failure
If the update fails — either during extraction or because the new daemon does not pass the health check — Stackie automatically rolls back to the previous version:
- The sidecar kills the new daemon (if it was started).
- The previous binaries are copied from
~/.stackie/backup/back to~/.stackie/bin/. - The old daemon is relaunched.
- The error is logged to
~/.stackie/logs/updater.log.
No user action is required for a rollback.
Startup self-healing
If the sidecar is killed mid-update (for example, due to a power loss), the
backup directory will still exist but the .update-ok marker will be absent.
The next time stackied starts, it detects this state and self-heals:
- If
~/.stackie/backup/exists and~/.stackie/bin/.update-okis absent, the previous binaries are restored from backup. - If
~/.stackie/backup/exists and.update-okis present, the backup is treated as stale and removed.
Manual update
To check for and apply an update immediately:
stackie update
To install a specific version:
stackie update --version 0.9.0
Configuration
Update behaviour is controlled in ~/.stackie/stackie.yaml under the
updates: key:
updates:
channel: stable # stable | canary | edge
auto_update: true # apply update automatically on next quit
check_interval_secs: 3600 # how often to check (default: 1 hour)
Set auto_update: false to disable automatic application of updates.
You will still be notified via the tray icon and can apply updates manually.
Troubleshooting
My install is broken after a failed update
The startup self-healing mechanism should automatically restore the previous
version on next launch. If stackied refuses to start, run:
stackie update
This downloads and installs the latest release fresh, regardless of the
current state of ~/.stackie/bin/.
I switched channels and now stackie won’t start
If you switched to an older channel (for example, from edge to stable),
the database schema version may be ahead of what the installed binary
supports. You will see an error like:
Database schema version N is ahead of the maximum supported version M.
Run a newer binary or delete ~/.stackie/stackied.db to reset.
To recover, delete the database (your stack definitions are unaffected):
rm ~/.stackie/stackied.db
Nuclear reset
If nothing else works, a full reset clears all Stackie state:
rm -rf ~/.stackie
Re-run the installer afterwards:
curl -fsSL https://stackie.dev/install.sh | sh
Your stack files (typically stackie-stack.yml) live in your project
directories and are not affected.
Note: A full reset will require you to re-download package caches and re-authorise any authenticated services (e.g., private npm registries).
See also
- Release Channels — stable, canary, and edge explained
- Versioning — how to check your current version