fix(upgrade): deliver canary version only to test_farms - #121
Merged
Conversation
The update worker now holds the network `latest` symlink at the last GA version during a canary (safe_to_upgrade = false), so the upgrader can no longer assume the symlink equals the version the node should run. Compute the target version from the chain and, for a node whose farm is in test_farms during a canary, retarget the taglink at the chain version tag directly (resolvable on the hub independently of the latest symlink) instead of the held-back symlink. Non-canary and freshly bootstrapped nodes follow the GA symlink; once safe_to_upgrade flips true and the worker advances the symlink, everyone rolls forward. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ashraffouda
requested review from
Eslam-Nawara,
Omarabdul3ziz,
rawdaGastan and
xmonader
as code owners
July 28, 2026 10:21
ashraffouda
added a commit
that referenced
this pull request
Jul 28, 2026
Dev is not part of canary rollouts — dev envs are updated when code is merged to main. The canary change (#121) started gating dev nodes by safe_to_upgrade / test_farms, which could make a dev node wait instead of tracking latest. Make dev fully exempt: a dev node follows its network `latest` symlink unconditionally (no safe_to_upgrade / test_farms gating) and skips the version-match check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 tasks
ashraffouda
added a commit
that referenced
this pull request
Jul 28, 2026
Dev is not part of canary rollouts — dev envs are updated when code is merged to main. The canary change (#121) started gating dev nodes by safe_to_upgrade / test_farms, which could make a dev node wait instead of tracking latest. Make dev fully exempt: a dev node follows its network `latest` symlink unconditionally (no safe_to_upgrade / test_farms gating) and skips the version-match check. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
The update worker now holds the network
latestsymlink at the last GA version during a canary (safe_to_upgrade = false), so the upgrader can no longer assume the symlink equals the version the node should run.Compute the target version from the chain and, for a node whose farm is in test_farms during a canary, retarget the taglink at the chain version tag directly (resolvable on the hub independently of the latest symlink) instead of the held-back symlink. Non-canary and freshly bootstrapped nodes follow the GA symlink; once safe_to_upgrade flips true and the worker advances the symlink, everyone rolls forward.
Description
Describe the changes introduced by this PR and what does it affect
Changes
List of changes this PR includes
Related Issues
List of related issues
Checklist