Relays: upgrade a relay that's older than this server #150

Merged
jcoffey-dev merged 1 commits from relay/upgrade into main 2026-10-30 23:53:33 +00:00
Owner

The console half of relay upgrades (RL-29, RL-28). It needs inbuxa-server #270.

  • Older-version line. When the server reports olderThanServer: true, the card says "It runs 27.1.0-rc.4, older than this server. Upgrade it to this server's release." For a relay in a container image (selfUpgrade: false), it says to pull the matching image and restart it instead.
  • Upgrade dialog. Shown to holders of sysRelayUpdate, on a self-upgrading relay that is older than the server.
    • You choose the release binary and its .sig file. The dialog shows the version and target the signature file names, or says it isn't one. It also has the usual audit reason.
    • Upgrade uploads the binary to your account and sends upgrade: {blobId, signature}.
    • The server and the relay check the signature; the console only reads the file to show what it names.
    • When it's done, a toast says the relay is restarting with the new version.
  • api.ts gains upgradeRelay, which reads the upload URL from the session. model.ts gains olderThanServer, the olderVersion attention, and readSignatureFile.

Checks: typecheck, lint, i18n (14 new strings) and i18n:check, 969 tests (3 new), the build, and notice-check.

Not previewed in a browser. The button and the line show only for a linked relay running an older release, and the local preview has no real relay host. The line and the file reading are covered by unit tests; the dialog itself hasn't been seen running.

Nothing upgrades yet in practice: no build has a release key until packaging (step 6).

The console half of relay upgrades (RL-29, RL-28). It needs inbuxa-server #270. - **Older-version line.** When the server reports `olderThanServer: true`, the card says "It runs 27.1.0-rc.4, older than this server. Upgrade it to this server's release." For a relay in a container image (`selfUpgrade: false`), it says to pull the matching image and restart it instead. - **Upgrade dialog.** Shown to holders of `sysRelayUpdate`, on a self-upgrading relay that is older than the server. - You choose the release binary and its `.sig` file. The dialog shows the version and target the signature file names, or says it isn't one. It also has the usual audit reason. - Upgrade uploads the binary to your account and sends `upgrade: {blobId, signature}`. - The server and the relay check the signature; the console only reads the file to show what it names. - When it's done, a toast says the relay is restarting with the new version. - `api.ts` gains `upgradeRelay`, which reads the upload URL from the session. `model.ts` gains `olderThanServer`, the `olderVersion` attention, and `readSignatureFile`. **Checks:** typecheck, lint, `i18n` (14 new strings) and `i18n:check`, 969 tests (3 new), the build, and `notice-check`. **Not previewed in a browser.** The button and the line show only for a linked relay running an older release, and the local preview has no real relay host. The line and the file reading are covered by unit tests; the dialog itself hasn't been seen running. **Nothing upgrades yet in practice:** no build has a release key until packaging (step 6).
jcoffey-dev added 1 commit 2026-10-30 23:44:17 +00:00
Relays: upgrade a relay that's older than this server
ci / build (pull_request) Skipped
ci / notices (pull_request) Successful in 51s
ci / publish (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 1m44s
e6a6625340
A relay the server reports as olderThanServer gets a line saying so. With
a self-upgrading relay, it also gets an Upgrade button: choose the release
binary and its .sig file, see the version and target it names, and hand it
over. A relay in a container image is told to pull the matching image
instead.
jcoffey-dev merged commit 0b847a48b0 into main 2026-10-30 23:53:33 +00:00
jcoffey-dev deleted branch relay/upgrade 2026-10-30 23:53:33 +00:00
Sign in to join this conversation.