feat: track stable OpenClaw releases for MSIX builds - #42
Conversation
|
🦞👀 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 September 21, 2026, 6:46 PM ET / 22:46 UTC (Revision 17). ClawSweeper reviewWhat this changesThe PR selects and freezes a verified stable OpenClaw release for Windows package builds, checks its identity throughout packaging, and builds ARM64 payloads with ARM64 Node.js. Merge readiness✅ Ready for maintainer review The work remains necessary: main and the latest release still use a hardcoded source pin. No blocking introduced defect was found, and the maintainer’s shared-versioning requirement is addressed. Priority: P2 Review scores
Verification
How this fits togetherThe packaging workflow turns upstream OpenClaw source into x64 and ARM64 Windows packages. Source selection feeds both builds, while the reviewed release policy separately controls official signing. flowchart LR
A[Npm stable or explicit ref] --> C[Verify source identity]
B[Reviewed release policy] --> C
C --> D[Immutable run snapshot]
D --> E[Native x64 and ARM64 builds]
E --> F[Packages and bundle]
F --> G[Official signing checks]
B --> G
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Technical reviewBest possible solution: Keep one immutable stable-source selection for both architectures and retries, with release identity and official signing controlled by their existing policy owners. Do we have a high-confidence way to reproduce the issue? Not applicable to the central feature request; source inspection confirms that main still requires a hardcoded upstream pin. The reported ARM64 install failure was not reproduced by this review. Is this the best way to solve the issue? Yes. A single source resolver feeding the existing identity and signing owners is a coherent solution, and matching Node’s architecture addresses native install-script behavior without overriding dependencies. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 288521d5fcc9. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (16 earlier review cycles; latest 8 shown)
|
f692cb3 to
020ff94
Compare
af7a4e3 to
d11d1e0
Compare
|
@clawsweeper re-review The updated requirement is stable only. The extended-stable proposal is superseded: there is no cross-channel or automatic fallback, and a compatibility pin can select only a reviewed older known-good stable release. CI run 35032630892 successfully built OpenClaw 2026.9.4 for x64 and ARM64 and produced the bundle. The selected commit, The latest commit only removes obsolete setup inputs reported as ignored by that run; native |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Versioning contract coordination: PR #36 is the foundational release-identity change and now owns the agreed mapping ( |
51c9ede to
c2fa7fa
Compare
Resolve the public channel to a verified immutable source snapshot, carry its identity through packaging, and authorize official releases against the channel policy. Preserve snapshots on retries, derive release versions, reject duplicate or older publications, and update contributor documentation and coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Validate legacy version/commit-derived Control UI identities as well as modern build IDs, bind both to the resolved source, and deny workflow cache access with native cache-mode none. Preserve the manual entry point and document the current CodeQL modeling gap for review. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Let the selected upstream packer own its package-manager and changelog defaults. Retain its inventory and tarball validation without passing newer-only switches that older extended-stable releases reject. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Resolve stable through npm latest and reject extended-stable or prerelease sources, including explicit refs and legacy payload inputs. Allow only a reviewed exact stableVersion compatibility pin, with no automatic fallback. Preserve source/signing checks, map stable numeric corrections safely, and update regression coverage and documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The regular-stable setup action no longer accepts the old cache option names. Remove those ignored inputs while preserving workflow-wide native cache-mode none as the enforced security boundary. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Favor PR36's existing identity, signing approval, payload/plugin and upgrade paths. Reduce PR42 to verified stable-source selection, immutable per-run source replay and selected-version verification. Remove the competing MSIX mapping, automatic signing authority and duplicate release guards; retain focused source and integration tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove the unrelated cache-access restriction and its test. Trim documentation to source-selection behavior without prior-PR history or unrelated implementation notes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep main's Store-compatible versioning and scoped instructions. Carry source-selection guidance into the current README and release guide, and update the source integration test for the current release identity. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
cc75196 to
730c1a6
Compare
Validate selected versions through the existing release-identity helper before accepting channel sources, explicit refs, policy pins or saved selections. Cover supported correction/rebuild boundaries and regressions for -1, -10 and -64 without changing the MSIX version policy. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run ARM64 packaging on Windows ARM64 and select matching upstream Node binaries. Reject Node/target architecture mismatches before npm or staging changes, record the install architecture for cache reuse, and smoke-test both architectures. Exercise actual npm lifecycle architecture and rejection paths in the payload tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
What Problem This Solves
CI should choose the current OpenClaw stable release without a hardcoded source commit in the workflow.
Fixes #25.
User Impact
An empty
openclaw_refselects npmopenclaw@latest. The selected version and source commit are verified before building and kept fixed for retries.Extended stable and named prereleases are rejected. There is no automatic fallback. A reviewed
stableVersionpin can select an older known-good stable release, and unsigned/test runs can use an explicit stable-source ref.Source selection checks the MSIX release-version rules before building. Unsupported corrections such as
-1,-10and-64are rejected for channel selection, explicit refs, policy pins and retries. Official source selection must match the reviewed commit, version and tag inrelease-policy.json.Why This Change Was Made
--cpuflag selects dependencies but does not changeprocess.archin their install scripts. With stable2026.9.5, the previous x64-hosted ARM64 job selected the ARM64 Koffi binary, then ran an x64 install check and fell into a failing source build.Evidence
Head:
5730ca0284cfd19707ac34eee9a81e80b2470ccb.CI run 35663788374 passed, including host checks, native x64 and ARM64 payload installation and MSIX composition, the combined bundle, Windows install/upgrade checks, and the final CI gate. CodeQL also passed.
The saved source selection is stable OpenClaw 2026.9.5, commit
ec9c1a13db8938e5a3eaa51fca2e981cde2395a9. The tested MSIX identity is 2026.9.503.0. Upgrade evidence confirms successful fresh standalone/bundle installation and all six transitions fromv0.0.0.0,v0.0.0.1, andv2026.9.4-msix.1, with the same package family and retained LocalState.Passed locally: 45 source-selection tests, MSIX release-identity and package verification suites; payload/runtime, Gateway isolation plugin, cache-key, workflow configuration and signing-input suites. Documentation checks report zero findings; workflow architecture wiring and
git diff --checkpassed.The correction regression failed before its fix. The architecture regression also failed before the fix: the old payload script accepted an ARM64 target while running x64 Node. Coverage checks the actual npm lifecycle architecture, cold and cached mismatch rejection before staging/output mutation, cached-install architecture metadata, and payload/plugin validation. The payload fixture suite passed in both native architecture jobs in CI.
Official signing/publication and local installation were not run.