fix: load edited 0.4.2-0.7.0 Profiles - #63
Merged
Conversation
ucp-cli 0.4.2 through 0.7.0 generated 2026-04-08 Profiles with the shopping service entry still set to 2026-01-23. Edited copies remain DIY, so strict snapshot validation rejected them before dispatch. Normalize only that exact generated entry when materializing a DIY Profile. Preserve custom capabilities, scoped headers, URL, active name, and source bytes while leaving near misses and additional dev.ucp.* mismatches on the strict validation path. Keep hosted Profile reads strict so Doctor still reports bytes that an independent Business may reject. Make generic mismatch guidance name the selected Profile and distinguish user-owned URLs from Shopify release defaults.
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.
Why
ucp-cli 0.4.2 through 0.7.0 generated a
2026-04-08Profile whosedev.ucp.shoppingentry still declared2026-01-23. Untouched copies become managed aliases during the 0.9 upgrade, but edited copies correctly remain DIY and therefore reached strict snapshot validation, which rejected them before dispatch.This is a follow-up to #60: the CLI should absorb the exact representation it generated without discarding a user's custom capabilities, scoped headers, Profile name, hosted URL, or release pin.
What changed
dev.ucp.shoppingvalue generated by ucp-cli 0.4.2–0.7.0 under a2026-04-08Profile.2026-04-08in a copy when materializing a local DIY Profile; source files remain byte-identical.loadAgentProfileand live hosted reads strict, so Doctor still reports malformed bytes that an independent Business may reject.dev.ucp.*mismatch on the existing fail-closed path.Upgrade behavior
2026-04-08; normalized only in memorydev.ucp.*mismatchAGENT_PROFILE_VERSION_MISMATCHDeliberate boundaries
This does not rewrite
profile.json,headers.json, or hosted documents; switch the Profile to managed; tolerate arbitrary mixed versions; or hide hosted-document failures. A local adapter cannot guarantee that an independent Business will accept malformed bytes served at the advertised URL.Validation
pnpm gen:schemas && git diff --exit-code src/core/generated/pnpm typecheckpnpm lintpnpm test— 973 passedpnpm test:integration— 34 passed, 1 expected live test skipped