feat(updates): add one-click upgrade experience - #840
Draft
mcharles-square wants to merge 1 commit into
Draft
Conversation
This was referenced Jul 30, 2026
🔐 Codex Security Review
Review SummaryOverall Risk: MEDIUM Findings[MEDIUM] Active upgrade state is never cleared when the updater returns no operation
[MEDIUM] Current upgrade progress can be hidden when a different release is offered
NotesThe scoped diff is frontend-focused plus an archived plan document. I did not find changed backend auth, SQL, command execution, plugin, mining pool, or protobuf wire-format issues in this PR diff. Generated by Codex Security Review | |
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 30, 2026 08:50
f8c41ce to
9178649
Compare
This was referenced Jul 30, 2026
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 30, 2026 09:03
9178649 to
4afd98a
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
2 times, most recently
from
July 30, 2026 14:16
2ce2ce5 to
5854595
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 30, 2026 15:25
5854595 to
586f9e7
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
2 times, most recently
from
July 30, 2026 17:37
6fc4d02 to
484cace
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 30, 2026 17:58
5e9330d to
00367ba
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 04:55
00367ba to
d135c7b
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 05:04
d135c7b to
5193449
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 07:04
5193449 to
374e43a
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
2 times, most recently
from
July 31, 2026 07:52
4b7d4d7 to
c886d64
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 08:47
c886d64 to
241756d
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
2 times, most recently
from
July 31, 2026 14:12
518a477 to
9513ab7
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 14:50
9513ab7 to
930bc8b
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 15:44
930bc8b to
92ca0f1
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 16:08
92ca0f1 to
afd1c11
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
2 times, most recently
from
July 31, 2026 18:27
513b515 to
217b698
Compare
mcharles-square
force-pushed
the
codex/one-click-updates-06-client-experience
branch
from
July 31, 2026 18:31
217b698 to
f075b8e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reviewable diff: +443/-24 across 6 files (excludes generated, test, and story files).
Summary
Completes the operator experience with explicit confirmation, RC warnings, durable progress, expected-restart recovery, terminal failure guidance, and success reload. The action is rendered only when Fleet reports a reachable host updater; every unsupported or partially configured host keeps the existing copy-command workflow.
Stack: #841 → #842 → #843 → #844 → #845 → #835 → #836 → #837 → #838 → #839 → #840. This is 6/6 of the one-click phase, relative to #839. It exposes the action only after #835–#839 supply the safe executor path and preserves #844–#845’s manual command whenever runtime capability is unavailable.
How it works
The existing update toast opens the update modal. When
one_click_availableis false, the modal retains the manual installer command. When true, the operator confirms the exact eligible version, with an additional no-downgrade warning for RCs, and the hook triggers the upgrade then polls durable status. Temporary Fleet disconnects during activation are treated as expected; polling resumes until success reloads the app or failure shows the host log and recovery command.Areas of the code involved
features/updates/api/useUpgradeOperation.tsUpdateNotificationModal.tsxuseUpdateNotification.tsAppLayout.tsx,useUpdateStatus.tsdocs/plans/archive/...one-click-upgrade...mdKey technical decisions & trade-offs
Testing & validation
npm run build:protoFleetpassed TypeScript compilation and the production Vite build.