Repository navigation
fix(migration): Store migration blocked for Native Gateway users and correction releases - #1675
natalie-aguinaldo wants to merge 2 commits into
Conversation
Allow the credential-free Native Gateway setup draft and its exact atomic-write temp siblings during Store migration inventory while continuing to reject unrelated files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed October 7, 2026, 8:56 PM ET / October 8, 2026, 00:56 UTC (Revision 2). ClawSweeper reviewWhat this changesThe branch allows Store migration from stable correction releases and includes the retained Native Gateway setup draft in migration validation. Example: A user migrates Companion v2026.9.8-1 with a Native Gateway configured
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review This PR remains necessary: current main still rejects correction releases and the retained Native Gateway draft. The focused repair has sufficient current-head Windows migration proof, and no concrete blocking defect was found. Priority: P0 Review scores
Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherThe Store migration flow checks the previous installer-based Companion and its saved state before allowing the Store app to start. It preserves settings and gateway connections in place, then verifies removal of the previous app before finalizing. flowchart TD
A[Previous Companion installation] --> C[Release and executable checks]
B[Saved settings and Gateway draft] --> D[State inventory]
C --> E[Migration validation]
D --> E
E --> F[User removes previous app]
F --> G[Recheck state and finalize]
G --> H[Store app uses preserved connection]
Technical reviewBest possible solution: Keep the existing user-directed migration flow and land this narrow eligibility and inventory repair, preserving the established release-time signing gates. Do we have a high-confidence way to reproduce the issue? Yes. Current-main source proves both refusal paths, and the supplied Windows screenshots show the failures; this read-only review did not execute a reproduction. Is this the best way to solve the issue? Yes. The repair recognizes the repository's existing correction-release format and setup descriptor while retaining exact executable checks, inventory locking, and finalization validation. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 037c17dcb581. Provenance checked
TestingProof path: shipped entry point. Added test files: 4. SecurityNone. EvidenceWhat I checked:
Likely related people:
Review metrics
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (1 earlier review cycle)
|
|
Global triage: HOLD_FOR_AUTHOR. Take confidence 10%; recommendation confidence 99%; effort medium; risk high. Reviewed exact head Author: update from current main, resolve conflicts or branch-policy blockers, then rerun exact-head validation and request review. This is a triage classification, not a merge action. No branch changes were made. |
Related: #1374
What Problem This Solves
Fixes: Store migration refuses to start for users who set up the Native Gateway, and treats stable correction releases such as
v2026.9.8-1as unsupported, so the Store app stays locked behind "Update Required" or a validation failure.User Impact
User impact: people on a correction release, or with a Native Gateway set up, can now move from the Inno (.exe) app to the Store version and keep their existing gateway connection.
Why This Change Was Made
gateways\native-setup-draft.jsonafter setup. The migration inventory treated it as an unexpected file and refused. It is now recognized by exact name, and checked for consistency during capture so a draft created mid-capture cannot slip through.X.Y.Z-Nnow maps toVersion(X,Y,Z,N). The installed source is only accepted when its FileVersion is the baseX.Y.Z.0and its ProductVersion carries the exact release identity (optional+buildmetadata allowed). Base releases reject a ProductVersion with a correction suffix.docs/RELEASING.mddocuments the draft and the correction-version floor.Evidence
Real migration on a machine that reproduced both bugs:
v2026.9.8-1Inno app with a Native Gateway set up and the draft present. The migration offer appeared, validation succeeded, finalization completed after uninstall, and the Store-identity app reconnected to the same Native Gateway. Screenshots and the redacted log are under Real Behavior Proof.Change Type
Scope
winnodeRequired proof pools
windows-clean-installer-upgrade: Inno to Store MSIX migration path using a released Inno build as the source.Validation
./build.ps1: passedOpenClaw.Connection.Testsmigration classes): 285/285 passeddotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore: 4,262 passed, 35 skipped, 0 faileddotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore: 3,996 passed, 0 failedgit diff --check: cleanNew tests cover: correction parsing and the version floor; FileVersion/ProductVersion provenance (matching, mismatched, missing, malformed, base vs correction); draft accepted as a file, rejected as a directory or reparse point, and a draft appearing mid-capture; case-variant and malformed draft/temp names.
Real Behavior Proof
OpenClaw Companion 2026.9.8-1(DisplayVersion2026.9.8-1, FileVersion2026.9.8.0, ProductVersion2026.9.8-1+2ba89f37...) with the Native Gateway set up onws://127.0.0.1:63360andnative-setup-draft.jsonpresent. Target: production-identity migration-test MSIX (OpenClawFoundation.OpenClaw2026.9.5.0, test-signed) built from this branch.92f47c6eAdd-AppxPackage -Path OpenClaw-MigrationTest-x64.msix -ForceApplicationShutdown, launched OpenClaw from Start.Correction release
v2026.9.8-1installed, but the Store version told the user to update it to a supported version:Native Gateway user: migration refused because the inventory rejected the retained
gateways\native-setup-draft.json(expected a directory, found a file):Migration offer (previously Update Required / validation failure):
Validation succeeded with the draft present:
Uninstalling the previous Inno app:
Store-identity app connected to the same Native Gateway after migration:
Post-migration state (draft kept, receipt cleared by finalization, test package installed, no Inno uninstall entry):
Redacted tray log:
Security Impact
Yes, explain the risk and mitigation: N/ACompatibility and Migration
Review Conversations