Updating

A banner appears, you press it, the app replaces itself and restarts. That channel is macOS only — on Windows and Linux nothing is offered, and nothing says so.

DeckSpace updates itself in place on macOS. Nothing installs without a click. This page covers what the app checks, what you see, how to read your version, and the one failure mode you should know about: when the updater stops working, it stops quietly.

How a new version reaches you

The app fetches a small signed manifest from https://deckspace.dev/deckspace/updates/latest.json. The manifest names the newest version and, per platform, a download URL and a signature. If its version is newer than yours, an update is available.

  1. DeckSpace fetches the manifest on the schedule below.
  2. If a newer version exists for your platform, the Update now banner appears at the top of the window.
  3. You press Update now. The app downloads the archive with a progress bar.
  4. The signature is checked against a public key compiled into the app. A download that does not verify is not installed.
  5. The app replaces itself and relaunches.
Nothing installs on its own

There is no silent or background install. The download does not start until you press the button, and the only thing that happens without you is the check itself.

When it checks

TriggerWhen
After launch15 seconds after the app starts
On a timerevery 4 hours while the app runs
On window focuseach time the window regains focus
Rate floorautomatic checks run at most once every 30 minutes

The focus trigger exists because a deck can sit open for weeks. A launch-only check would never fire on a machine that is never restarted.

The rate floor is per process, so it resets when you quit and reopen. Relaunching DeckSpace is the closest thing to a manual check — see below for why that matters.

The banner reads DeckSpace x.y.z is available. and carries two controls.

ControlWhat happens
Update nowDownloads, verifies, installs, relaunches. The banner turns into a progress bar.
LaterHides the banner. The next check re-offers the same update — it is dismissed, not declined.

During the install the banner shows Downloading update… N%, then Restarting…. If the server does not report a file size, the percentage is replaced by Installing… and an indeterminate bar — that is a missing content length, not a stall.

If the install fails, you get a toast reading Update failed: plus the underlying error, and the banner returns to its Update now state so you can retry.

The banner does not show release notes

The manifest carries a notes field, but the banner renders a fixed line instead of it. To read what changed before you install, open the changelog.

One macOS download, both chips

Since 3.6.0 the macOS release is a universal build. The manifest lists two platform keys, and both point at the same archive with the same signature.

Your MacPlatform key it asks forWhat the manifest serves
Apple Silicondarwin-aarch64the universal archive
Inteldarwin-x86_64the same universal archive

Releases up to and including 3.5.5 were x86_64-only, so Apple Silicon ran the whole app through Rosetta. From 3.6.0 the app itself runs natively.

One bundled component is still Intel-only

The DeckTest engine shipped inside the app is a PyInstaller build and no arm64 build of it exists. On Apple Silicon the app is native but that one sidecar asks for Rosetta. It is disclosed in the release notes and will stay disclosed until a real arm64 engine exists.

The minimum supported macOS is 12.0.

The update channel is macOS only

This is not a rollout in progress that you can wait out on your current machine. Today the live manifest contains macOS entries and nothing else.

PlatformIn-app updatesHow you get a new version
macOSyes banner + one clickautomatic offer, manual install
Windowsnot publisheddownload and reinstall
Linuxnot publisheddownload and reinstall

The Windows and Linux builds are produced with updater artifacts switched off, so there is nothing signed for the manifest to point at. The publishing tool already has a Windows arm; Linux is not implemented at all. Neither is in the live manifest.

On Windows and Linux the app still checks, and still says nothing

The check is not gated by platform. A Windows or Linux install contacts the same URL every four hours, finds no entry for its platform, and shows you nothing — no banner, no error, no notice that this channel does not cover you. It looks identical to being up to date. It is not.

Checking your version

The installed version is the chip beside the DeckSpace wordmark in the top-left of the window, for example v3.6.0. It is read from the installed application bundle, so it is what you are actually running, not what you meant to install.

The newest release the updater will ever offer you is the version field of the manifest. You can read it without the app:

curl -s https://deckspace.dev/deckspace/updates/latest.json \
  | python3 -c 'import json,sys; m=json.load(sys.stdin); print(m["version"], sorted(m["platforms"]))'

That prints the version and the platform keys it carries. If your platform key is not in that list, your app will not be offered anything, however long you wait.

If the app stops offering updates

Read this section carefully, because the failure is designed to be invisible. A check that cannot reach the endpoint is silent, and a manifest with no entry for your platform is also silent. In both cases DeckSpace behaves exactly as it does when you are on the newest version.

StepWhat to doWhat it rules out
1Quit and reopen DeckSpace, then wait 20 seconds.A fresh process checks 15 seconds in with no rate floor to clear.
2Run the curl above and compare with your version chip.Tells you whether there is anything newer at all.
3Confirm your platform key is in that list.A missing key means that release published nothing for your architecture.
4Open https://deckspace.dev/deckspace/updates/latest.json in a browser on the same machine.A network, DNS or proxy problem that the app swallows without a word.
5Install a fresh build over the top.Everything else.

To get a fresh build, use the re-send page with the email you subscribed with. It mails your personal download link. That link is deliberately not version-numbered, so the same link keeps working release after release — it always serves the current build.

Installing over the top is safe

Your workspaces, settings and licence live in the macOS application data directory, not inside DeckSpace.app. Replacing the app does not touch opxspace.db or your activation.

What is not in the app

Three things a competent user goes looking for and will not find. They are absent, not hidden.

What you might expectReality
A “Check for updates” menu item or buttonNot present. The code has a manual check path that reports its result — including You’re on the latest version. and an error toast when it fails — but nothing in the interface calls it. Relaunching the app is the workaround.
A settings toggle for background checksNot present. The setting exists and is read once at startup, but there is no control that writes it, so checks cannot be turned off from the interface.
Release notes in the update promptNot present. Read the changelog before installing.

If an update goes wrong or the app will not start after one, Troubleshooting is the next page.