fix(upgrade): honor one scheduled convergence retry - #71
Merged
Conversation
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.
Summary
gateway retry after a nonzero backoff
nextRetryAtThe supervisor remains the sole owner of scheduling and starting the retry.
OCM only observes the published retry state and continues polling health.
Behavior
On canonical base
d1c36adda05c1129af9788be35528bc1240d95da,upgrade_waits_for_one_supervisor_convergence_retryfailed because OCM rolledback immediately on the first failed backoff:
With this change, the same fixture waits for the published attempt, observes
the gateway become healthy, and keeps the target runtime. A changed restart
count is terminal, so a second failed attempt still rolls back.
Validation
upgrade_command_tests: 45/45 passedcargo fmt --all -- --checkgit diff --checkclause remained black-box-unprovable and was confirmed by source-aware scope
Coordination
PR #60 also changes
src/cli/upgrade.rsandtests/upgrade_command_tests.rs, but this PR intentionally contains nosnapshot, restore, OpenClaw convergence-exit, global retry-policy, or
runtime build-localchanges.If #60 lands first, rebase this branch onto the resulting
mainand rerun theupgrade proofs. If this PR lands first, #60 should preserve the one-retry gate
when rebasing its upgrade-health helper.