Updates
The desktop app updates itself. Open Settings → Updates in the app, or choose Check for updates… in the tray menu.
Channels
Section titled “Channels”| Channel | What it installs | Needs |
|---|---|---|
| Stable (default) | The latest GitHub release. | Nothing. |
| Beta | The newest build of the main branch. | Nothing. |
| Nightly | The build of one specific commit, from GitHub Actions. For testing a fix. | A GitHub fine-grained token with Actions: Read-only on this repository. It is kept in your keychain or DPAPI store. |
The relay server has matching image tags: latest for Stable and beta for Beta. See
Docker image tags.
How it behaves
Section titled “How it behaves”- With Install updates automatically on, the app checks about every six hours. On macOS it lets the system pick the time and holds off on battery and in Low Power Mode.
- An update only restarts the app when the screen is locked or nothing has synced for ten minutes, so it never interrupts you mid-copy.
- While a build downloads, Settings → Updates shows how far it has got. A slow connection is fine: the download only gives up if nothing arrives for a minute, and then says so; press Install and restart again to retry.
- Every download is checked against a manifest signed in CI. A build that does not match is not installed.
- On Nightly, a commit whose build is still running shows still building. The app looks again every minute (for up to three hours) and offers Install as soon as the build finishes. If the build fails, it says so in red, with a link to the run on GitHub.
- The previous version is kept, and Roll back to … in Settings → Updates returns to it in one click.
- When you install an update (or roll back) from Settings → Updates, the app restarts and opens in a new browser tab with a note saying which version it is now running. An automatic update restarts quietly into the tray and opens nothing.
- A page left open after the app quits or restarts can no longer reach it, and says so: TwoPlacePaste was closed or restarted. The message cannot be dismissed; use the new tab, or open the app again from the tray icon, and close the old one.