App and Updates
Background update checks with Minisign (Ed25519) signature verification, launch at login, runtime capabilities, and when to restart.
The app checks for updates in the background: once a few seconds after startup, then every 15 minutes. A new version is downloaded automatically, and the interface surfaces it in several places: an update status pill in the title bar, and a "Restart to update" button at the bottom of the sidebar. There are three ways to check manually: the "Check for updates" button on the "Settings → About" page, "Klaus → Check for updates…" in the macOS app menu, or simply asking Klaus to check. When updates are unavailable (development build, custom data directory, and so on), the reason is shown.
The "Settings → About" page is the one place for everything version-related: the current version number, what changed in this version (the changelog is compiled into the installer, so it works offline), and manual update checks and installs. It reads the same update state as the title bar pill and the sidebar button, so you will never see one place reporting a new version while another says there is none.
- Update packages carry a Minisign (Ed25519) signature. The package is downloaded into a private cache directory only you can read and write (
~/.klaus/electron/updates/), verified as soon as the download finishes, and made read-only; when you confirm the install, Klaus fetches the update feed again to check the package is still the current signed release and re-verifies the cached file before handing it to the installer. A tampered package, or a release that has since been withdrawn, cannot be installed. - Once you confirm the install, Klaus itself swaps in the package and restarts. If the swap fails, it does not restart: the currently running app stays untouched and you are told why.
- Self-built or development versions have no signed package and no update source, so they report "updates not supported" and refuse to install, rather than pretending to check. If clicking "Check for updates" seems to do nothing, look here first.
Other app-level matters:
- Launch at login: you can have Klaus start when you log in to the system (useful for guarding scheduled tasks and channel messages — if the app is not running, nobody is there to pick up messages).
- Current version: always shown at the bottom of the settings sidebar (consistent across platforms); on macOS it also appears in the system panel at "Klaus → About Klaus" in the menu bar.
- Runtime capabilities: to find out whether a capability is available on this machine, just ask Klaus — it answers from the local runtime capability snapshot.
- Restart: newly granted system permissions and some engine configuration changes take effect only after a restart. If you ask Klaus to restart on your behalf, it checks with you first (a restart interrupts work in progress).
- Looking at the current window: Klaus can take a screenshot of its own window and read the image, so when you say "look at this page of mine" it really can see it instead of guessing.