Skip to content

One switch for self-upgrade, not two - #10

Merged
Loa212 merged 1 commit into
mainfrom
simplify-self-upgrade-gate
Jul 29, 2026
Merged

One switch for self-upgrade, not two#10
Loa212 merged 1 commit into
mainfrom
simplify-self-upgrade-gate

Conversation

@Loa212

@Loa212 Loa212 commented Jul 29, 2026

Copy link
Copy Markdown
Owner

NUDO_ALLOW_SELF_UPGRADE is gone; the dashboard toggle is the whole gate.

The flag existed on the theory that whoever installs an instance and whoever operates it are different people, and both should have to say yes. For a tool one person installs and operates on their own box, that was a second lock on the same door — its only visible effect was a dashboard that refused an upgrade someone had already opted into, plus a "now also set this environment variable" instruction repeated across the upgrade page, the settings page, the unit file and the README.

The packaged unit has always put a fresh install in the release layout, so a new install now needs exactly one thing to upgrade itself: the tick in settings.

Nothing about the security of the path changes. The release is still verified against the digest published in the manifest, still staged beside the running one, still reverted by nudo-boot-guard if it cannot start; a container or a flat /usr/local/bin install is still refused, and the upgrade is still off until someone says otherwise.

The proto field is reserved rather than reused, since 0.4.0 published it.

Verified against a real instance with no env var set: before the tick the page explains where to switch it on and shows no button; after one tick the button appears. fmt, clippy -D warnings and all 23 suites pass.

NUDO_ALLOW_SELF_UPGRADE is gone; the dashboard toggle is the whole gate.

The flag existed on the theory that whoever installs an instance and whoever
operates it are different people, and both should have to say yes. For a tool
one person installs and operates on their own box, that was a second lock on
the same door. Its only visible effect was a dashboard that refused an upgrade
someone had already opted into, and a "now also set this environment variable"
instruction repeated across the upgrade page, the settings page, the unit file
and the README.

The packaged unit has always put a fresh install in the release layout, so a
new install now needs exactly one thing to be able to upgrade itself: the tick
in settings. Nothing about the security of the path changes — the release is
still verified against the digest published in the manifest, still staged
beside the running one, still reverted by the boot guard if it cannot start,
and a container or a flat /usr/local/bin install is still refused.

The proto field is reserved rather than reused, since 0.4.0 published it.
@Loa212
Loa212 merged commit fa6e975 into main Jul 29, 2026
3 checks passed
@Loa212
Loa212 deleted the simplify-self-upgrade-gate branch July 29, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant