CEXT-6834: Plan again on every upgrade request - #716
Open
iivvaannxx wants to merge 4 commits into
Open
iivvaannxx wants to merge 4 commits into
iivvaannxx wants to merge 4 commits into
Conversation
🦋 Changeset detectedLatest commit: 5228644 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
iivvaannxx
added this pull request to stack #718
October 2, 2026 10:07
7 of 11 tasks
iivvaannxx
marked this pull request as ready for review
October 2, 2026 10:10
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.
Description
First PR of the CEXT-6834 stack. It changes when the lifecycle plans and stops the upgrade engine from reusing plans. The domains themselves move to live-state planning in the PRs above this one (#717 for webhooks, events next).
resumeFailedAttemptis removed. Resuming reused the failed attempt's plan, whosebeforevalues no longer match what exists after a partial apply.findReusablePlanand theskippedresult are removed. Every plan request plans again and replacespendingPlan.PlanningInput.failedAttempt. When the latest attempt failed, each domain receives that attempt's target config and its own plan for that attempt. Webhooks use it in CEXT-6834: Plan webhook upgrades from live state #717 to remember which values a config of ours set, for fields the new config leaves out.ResourceOperation.reason. Every operation is labeledchangeordrift, so the UI can hide drift.changemeans the target config caused the operation.driftmeans the baseline and target agree, but the deployed state doesn't match them. Domains that still plan from the baseline only producechange.docs/usage.mdand the migration skill'sexecutor.mdnow say resources are "created" instead of "created or reused".Admin UI and custom installation still plan from the baseline. Custom installation scripts can run again after a failed attempt; that is tracked in CEXT-6814.
Related Issue
https://jira.corp.adobe.com/browse/CEXT-6834
Motivation and Context
An upgrade that failed partway, or that ran a plan computed before something changed, could finish as "succeeded" while Commerce no longer matched the target config. Planning again from the current state on every request is the base the domain changes build on.
Merge this stack as a whole. Until the events PR lands, events lose the coverage #705 gave them.
How Has This Been Tested?
pnpm --filter @adobe/aio-commerce-lib-app test: 1332 passing on this branch. Existing operation fixtures and expectations now carryreason. Theruntime.test.tsandinstallation.test.tscases now assert that a retry plans again and that a pending plan is replaced, not reused.pnpm typecheckand Biome are clean.Screenshots (if appropriate):
Not applicable.
Types of changes
Checklist: