Repository navigation
Conversation
Reserve immutable per-release MSIX package versions while keeping PR and main previews read-only on the latest published stable release line. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: cb0e5a80-d2cf-41b0-9fb0-21eb32623526
|
🦞👀 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 19, 2026, 4:46 PM ET / 20:46 UTC (Revision 10). ClawSweeper reviewWhat this changesAdds persistent Windows package-version allocation shared across architectures, preserves local development-package upgrades, and displays the installed package version in Settings. Merge readiness⛔ Blocked before merge - 1 item remains Keep open for landing. Current main still lacks durable package-version allocation. The prior authentication, proof, migration-floor, retention, and release-policy concerns are addressed; no blocking patch defect remains. Priority: P2 Review scores
Verification
How this fits togetherThe Windows packaging pipeline converts application releases into Store and development MSIX packages. The new allocator supplies package versions while GitVersion continues to control application and binary versions. flowchart TD
A[Release tag or preview build] --> B{Official upstream release?}
B -->|Yes| C[Reserve or reuse protected Git tag]
B -->|No| D[Read next preview version]
C --> E[Shared package version metadata]
D --> E
E --> F[Store and Dev packages for both architectures]
F --> G[Windows install and Settings version]
Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Land the shared allocator with the adopted fail-closed release contract, permanent reservation protection, and preserved application-version and settings behavior. Do we have a high-confidence way to reproduce the issue? Not applicable as a new allocation capability; current-main source directly confirms that same-base release tags can reuse a Store package version. Is this the best way to solve the issue? Yes. One durable allocation shared by both architectures avoids competing counters, while package-only overrides preserve application versioning and demonstrated local upgrades. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 3fc8372bfaa6. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (9 earlier review cycles; latest 8 shown)
|
Use the supplied GitHub token for both latest-release preview lookup and reservation-ledger requests, with focused leakage and header coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: cb0e5a80-d2cf-41b0-9fb0-21eb32623526
|
@clawsweeper re-review Fixed the P2 authentication finding in 0d94bd6. Both GitHub API clients now construct the Authorization header from the supplied token. Focused PowerShell 7/5.1 tests and full required validation pass. Live redacted proof returned HTTP 200 for v2026.9.4 with the authenticated 5,000-request quota. The PR body now includes refreshed current-head x64/ARM64 Store and signed Dev package hashes. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: cb0e5a80-d2cf-41b0-9fb0-21eb32623526
|
@clawsweeper re-review The six operational blockers from the prior review are now addressed on head
Focused current-head allocator, preview-source, alpha-release, and workflow |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Summary
msix-package/<app-base>/<counter>For app version
X.Y.Z, MSIX uses the third-component rangeZ00-Z99.2026.9.400.0is imported as already used and2026.9.401.0now has a livecanonical reservation. The next unreserved package on the
2026.9.4line istherefore
2026.9.402.0. A future officialv2026.9.5release starts at2026.9.500.0.PR and ordinary main builds do not consume numbers. They resolve the canonical
upstream Latest release and reservation ledger. Assemblies, EXE/ZIP versions,
release tags, package identities, and signing policy remain GitVersion-owned
and unchanged. Packaged Settings App info shows the Windows package identity
version; unpackaged builds continue to show the normal GitVersion display
string.
Only canonical upstream
v*tag builds frompushorworkflow_dispatchrunthe separate
contents: writereservation job. Reservations use atomic refcreation, reruns reuse the same source tag/commit reservation, competing runs
retry after validating the winning record, failed builds keep consumed
numbers, and range/UInt16 exhaustion fails closed.
Allocator adoption and live proof
The canonical allocator was run twice against
v2026.9.4at source commit3c43751b2bace876de3febe478ebabeca172e3acusing this PR's production script.refs/tags/msix-package/2026.9.4/401and returned Storeversion
2026.9.401.0, revision1, allocationreserved.014be340b05e7a0e53734906f009c62ee74c48f9.another number, proving same-source idempotency.
2026.9.402.0, revision2.The active repository tag ruleset Protect MSIX package reservations
(ruleset
23709396) coversrefs/tags/msix-package/**/*and blocks deletionand non-fast-forward updates. Reservation tags are permanent release records;
alpha cleanup must not delete them.
Maintainer decision: the canonical reservation ledger is adopted as an
intentional fail-closed release dependency. Authentication, permission,
allocation, malformed-ledger, exhaustion, or retry-limit failures stop the
tagged workflow before EXE/ZIP publication. The remedy is to repair and rerun
the same source tag, not bypass allocation or publish a partial release.
Imported floor provenance
.github/msix-version-baseline.jsonnow records the independent provenance forthe already-used
2026.9.400.0floor:01f2bf7ef407f8b9125f40bf1a4638c0361818c2ded1d4aed4d1a69859a817dc57087f2c6142deab10531666502, package SHA-2564612ff57a12489584a853a5eed38f687d6a8ac2f89836eb74c4eab8b1514d4db10531117192, package SHA-256febd4c4db99d153eea85c97000dd3583364ce671c3e8598bd7bf972a89cc788dBoth manifests were independently inspected as
2026.9.400.0with identityOpenClawFoundation.OpenClawand publisherCN=4BA40A7A-B719-4C40-BF91-84AF4F1136FC; metadata hashes matched the packagebytes.
Real behavior proof
Fresh install from CI-produced signed Dev MSIX:
Retained-settings upgrade proof at implementation head
dc19c513:2026.9.401.3286to2026.9.401.3287without uninstalling1AFBA36378E84FB164C6DAEC84A9445FE04FF01D25B6FABE49F9EB11B3903325AppTheme,EnableMcpServer, andShowCompletedSessions) remained identicalVersion 2026.9.401.3287andInstall type Packaged (MSIX)2026.9.5.0, proving the override isMSIX-only
Validation
Current head:
5fd42205523c7360b5c445acc1caff079b6bf429Current-head focused validation:
scripts/test-msix-versioning.ps1: 212 cases, 3,521 assertions, 591 mocked HTTP requestsscripts/test-msix-preview-source-version.ps1: passedscripts/test-msix-alpha-release.ps1: passedscripts/test-ci-workflow-contract.ps1: passed2026.9.402.0git diff --check: passedThe prior implementation head passed the repository's Windows build, both full
test projects, all focused MSIX/workflow suites, and both architecture artifact
jobs. The current fix only adds migration provenance and updates operational
documentation; the new-head Windows CI is authoritative for those host-specific
gates.