Skip to content

fix(deploy): say a staged release is already installed when activating it - #1947

Merged
dawsontoth merged 1 commit into
stagefrom
fix/staged-release-already-installed
Oct 13, 2026
Merged

dawsontoth merged 1 commit into
stagefrom
fix/staged-release-already-installed

Conversation

@dawsontoth

@dawsontoth dawsontoth commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

⊙ Problem

The activate dialog said "Nothing is installed", and the staged detail said "with nothing to install". Both read as if activation does nothing. The point is the opposite: staging already did the install, so activating is quick and safe.

🤔 Is a copy-only change the right size, and is the positive framing right?

Yes, as asked. Three sentences change and no behavior does. The new copy says the install already happened instead of "nothing is installed". If the negation reads better, swapping it back is a one-line change. The "Stage only" help text and the already-live "nothing to activate" agree with the new copy, so they stay.

💡 Solution

  • Activate dialog: "Everything was installed when this release was staged, so each node just switches to it."
  • Roll back dialog: "Each node kept this release installed when it was replaced, so it just switches back."
  • Both dialogs say "all nodes, which restart one at a time", fixing "every node, which restart".
  • Staged detail: "Staged: built and installed, but not live. Activating it just switches each node to it."

Harper backs each claim. An activation swaps the staged build in "without resolving, fetching or installing anything", and a kept release is "a whole installed tree" (harper components/DESIGN.md).

Every string, before and after
Where Before After
Activate dialog Nothing is installed: each node swaps in the release it staged. Everything was installed when this release was staged, so each node just switches to it.
Roll back dialog Nothing is installed: each node swaps back the copy it kept when this release was replaced. Each node kept this release installed when it was replaced, so it just switches back.
Both dialogs goes live on every node, which restart one at a time. goes live on all nodes, which restart one at a time.
Staged detail Activating it makes it live with nothing to install. Activating it just switches each node to it.

✅ Verification

  • New assertions pin each sentence: the activate dialog, the "Activate again" variant with its extra restart sentence, the staged detail and the roll back dialog. With the two components put back to stage's copy, all four tests fail.
  • Gates on Node 24.21.0, exit codes captured: npx vitest run --maxWorkers=4 0 (533 files, 5,292 passed), npx tsc -b 0, npx oxlint --format stylish . 0, npx dprint check 0. The commit went through the pre-commit hook.
  • Not checked in a browser. The tests render the real components.

🤖 Generated with Claude Code

Related PRs: #1943 overlaps (merged; this rewords the copy it shipped)
Complexity: easy

Review-Coverage: authored=claude; ran=codex,gemini,cursor-composer; adjudicated=domain; declined=cursor-grok,cursor-kimi,cursor-muse,muse; rounds=3; full=1 @ 95378e7

Review-Attention: skim ~1m @ 95378e7

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the descriptive copy for activating and rolling back staged releases in both the UI components and their corresponding tests to make the behavior clearer. The review feedback suggests correcting a minor grammatical issue regarding subject-verb agreement where 'every node, which restart' should be updated to 'every node, which restarts' in two locations.

Comment thread src/features/instance/config/deployments/components/ActivateStagedRelease.tsx Outdated
Comment thread src/features/instance/config/deployments/components/ActivateStagedRelease.tsx Outdated
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 78.06% 13640 / 17472
🔵 Statements 78.01% 14479 / 18560
🔵 Functions 72.95% 3585 / 4914
🔵 Branches 73.03% 10743 / 14710
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/features/instance/config/deployments/components/ActivateStagedRelease.tsx 100% 92.5% 100% 100%
src/features/instance/config/deployments/components/StagedReleaseDetail.tsx 90% 89.28% 100% 87.5% 14-19
Generated in workflow #2340 for commit 95378e7 by the Vitest Coverage Report Action

…g it

The activate confirmation and the staged-release detail said "Nothing is
installed" and "with nothing to install", which reads as if activation does
nothing. The point is the opposite: the install already happened when the
release was staged, so activating it only switches each node over.

- Activate dialog: "Everything was installed when this release was staged,
  so each node just switches to it."
- Roll back dialog: "Each node kept this release installed when it was
  replaced, so it just switches back."
- Staged detail: "Staged: built and installed, but not live. Activating it
  just switches each node to it."

Harper's own design notes back each claim: an activation "swaps that
artifact in without resolving, fetching or installing anything", and a kept
release is "a whole installed tree" (harper components/DESIGN.md).

Both dialogs also say the release "goes live on all nodes, which restart
one at a time" rather than "every node, which restart", which mixed a
singular subject with a plural verb.

The tests now pin each sentence, and the "Activate again" variant with its
extra restart sentence; reverting the copy turns them red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dawsontoth
dawsontoth force-pushed the fix/staged-release-already-installed branch from 20c1026 to 95378e7 Compare October 13, 2026 17:54
@dawsontoth
dawsontoth marked this pull request as ready for review October 13, 2026 18:00
@dawsontoth
dawsontoth requested a review from a team as a code owner October 13, 2026 18:00
@dawsontoth
dawsontoth merged commit 4f7decf into stage Oct 13, 2026
4 checks passed
@dawsontoth
dawsontoth deleted the fix/staged-release-already-installed branch October 13, 2026 18:00
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