Repository navigation
fix: follow stable Gateway releases for MSIX publication - #140
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: blocked before merge. Reviewed September 30, 2026, 11:04 PM ET / October 1, 2026, 03:04 UTC (Revision 4). ClawSweeper reviewWhat this changesThe branch makes MSIX publication follow a captured stable Gateway release and updates signing validation, launcher metadata, runtime fixtures, tests, and release guidance. Merge readiness⛔ Blocked before merge - 2 items remain The publication change remains necessary: current main still requires fixed release approval fields. No actionable patch defect was found, but the previously requested package and runtime qualification remains incomplete. Priority: P2 Review scores
Verification
How this fits togetherThe Windows packaging workflow selects upstream OpenClaw, builds x64 and ARM64 packages, and validates them before signing or retaining Store submission assets. The captured source snapshot now supplies the release identity throughout that process. flowchart LR
A[Stable release and dispatch input] --> B[Capture immutable source]
B --> C[Build Windows packages]
B --> D[Validate release inputs]
C --> D
D --> E[Protected signing]
D --> F[Store submission bundle]
E --> G[GitHub release]
Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep one immutable stable-source snapshot throughout publication, with package upgrade and runtime qualification tied to its exact payload commit. Do we have a high-confidence way to reproduce the issue? Not applicable to this publication-policy improvement; current main's fixed approval fields and the introduced resolver changes establish the before/after behavior from source. Is this the best way to solve the issue? Yes, reusing the existing immutable source owner avoids competing release identity logic; qualification must still establish compatibility for the selected payload. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 11f19be0e863. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles)
|
92fa7ae to
748227a
Compare
What Problem This Solves
Gateway MSIX builds were pinned to 2026.9.5 while Store and official publication still required the approved 2026.9.4 commit. Operators could not publish the current stable Gateway without editing version-specific policy fields.
User Impact
New builds and manually dispatched Store/official releases follow the moving Gateway stable channel (
openclaw@latest), not a fixed 2026.9.7 pin. Publication modes accept an emptyopenclaw_refor a full SHA matching the captured stable release. A full SHA remains an assertion, never an arbitrary source override. Publication remains manual and restricted to main.The release trust decision deliberately changes from a separately reviewed upstream commit to the stable release captured by that workflow run, as explicitly requested by the operator for both default builds and official publication. Exceptional reviewed
stableVersionpins remain supported. MSIX rebuild revision resets to zero for the new Gateway train; package-only rebuilds still need a revision increment.Why This Change Was Made
Remove static source approval fields and use the existing immutable source snapshot throughout authorization. The signing validator restores the same-run artifact and verifies run ID, packaging commit, signing mode, and channel provenance before checking package identities, payload commits/versions, hashes, inventories, and bundle contents. Retries never re-resolve latest.
Migrate launcher build metadata and the runtime proof fixture off the removed pins; packaged builds retain their supplied identity, while ordinary builds report unknown for unspecified payload identity. Update release documentation.
Built on merged #138. The separate signature-restoration PR #139 would independently restore rejection of unsigned stable tags.
Evidence
Current head: 748227a, rebased onto main 7d7acad (#141). Source/signing tests below were run on 2b00cb3; the follow-up changes only fixture metadata path containment.
Review feedback and CI repair
unknown. The repaired test scopes both Package and Payload rows and checks the ANSI transition at each parenthetical commit, preserving the style contract. The fresh Windows host job passed, including static analysis, managed tests, NativeAOT CLI proof, and PowerShell policy suites: run 36805244776. Both architecture builds and bundles also passed on that head; its upgrade lane was superseded by the fixture-fix pushes. Exact-head CI is rerunning.ClawSweeper revision 2 for head
2b00cb3b9fbdd9faa6dbf9deed6276c289fe26ccconfirms the full-SHA finding is resolved and reports no actionable code or security findings. Its remaining compatibility qualification request is tracked by the ongoing Windows package build/upgrade lanes and the documented release proof requirements.CodeQL repair (
92fa7ae): the runtime fixture accepts the prepared payload root, validates normalized metadata and application child paths before filesystem access, and rejects symlinked metadata. The PowerShell entry point retains its application-directory parameter and checks the expectedapplayout. Focused local probes verified regular metadata, escaping-symlink rejection, payload-root forwarding, and invalid-layout rejection. JavaScript syntax, diff checks, and independent P0/P1 review passed. All three CodeQL analyses and the aggregate check passed on pre-rebase head 92fa7ae, with no open branch scanning alerts. That head also passed host, architecture builds, bundles, and the identity-reset scenario; the remaining serial upgrade scenarios were superseded by this rebase.Rebase validation: only docs/release-process.md conflicted. Preserved main's parallel upgrade matrix and current Store-baseline behavior. Git range-diff confirms the PR code patches are unchanged. Workflow signing configuration, upgrade matrix tests, documentation references, and diff checks pass after rebase. Fresh CI uses main's parallel upgrade scenarios.