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. |
|
Non-git authority boundary is now provisioned: the |
|
Codex review: needs real behavior proof before merge. Reviewed September 23, 2026, 2:45 PM ET / 18:45 UTC (Revision 7). ClawSweeper reviewWhat this changesThe branch adds a stable-release job that submits the validated Windows app bundle to Microsoft Store, with OIDC authentication, submission-ID checks, release documentation, and contract tests. Merge readiness⛔ Blocked before merge - 9 items remain Current main publishes Store-ready bundles as GitHub release assets but does not submit them to Partner Center, so this PR remains useful. The submission path has two API-response handling defects, and its publishing identity and final Store effects remain unproven. Priority: P2 Review scores
Verification
How this fits togetherRelease CI builds and validates a Windows bundle, then publishes a GitHub release. The proposed Store job takes that bundle and release result, obtains publishing authority, and sends a submission to Partner Center. flowchart LR
A[Release tag] --> B[Validated Windows bundle]
B --> C[GitHub release]
C --> D{Stable or correction?}
D -->|Yes| E[OIDC publishing identity]
E --> F[Partner Center draft]
F --> G[Bundle upload and commit]
D -->|No| H[GitHub release only]
Decision needed
Why: The job publishes through an external account after the GitHub release succeeds; code review cannot supply the account setup or authorize the first production rollout. Before merge
Findings
Agent review detailsSecurityNeeds attention: The OIDC and explicit-ID design limits authority, but the external federation and forbidden-identity final effects have not been verified. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep submission-ID-bound publishing, handle conditional and service-populated API fields safely, then enable the Store job after identity, final-effect, and signed-upgrade acceptance are demonstrated. Do we have a high-confidence way to reproduce the issue? No live Partner Center reproduction is available. The source and API contract identify response shapes that reach the two failure paths, while the supplied tests use fixed response doubles. Is this the best way to solve the issue? No, not yet. ID-bound operations are appropriate, but conditional metadata and service-populated package values need safer comparisons before the first automated submission. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a2c4647d4289. LabelsLabel changes:
Label justifications:
EvidenceSecurity concerns:
What 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 (6 earlier review cycles)
|
|
Addressed the accepted ClawSweeper findings on
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Pushed @clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Accepted and fixed both API-contract findings at
Focused Store and workflow contract tests pass. The live @clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Recorded the final-commit owner decision at The policy is required by the production script and deterministic contract tests. The external environment still needs its identifiers and federated credential before genuine Partner Center final-effect proof can exist. @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Proactively fixed the late commit-status defect at @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Global triage: NEEDS_HUMAN_TEST. Take confidence 12%; recommendation confidence 93%; effort medium-to-large; risk high. Reviewed exact head |
Summary
OpenClaw.msixbundleto Partner Center after every stable or correction GitHub releasemicrosoft-storeenvironment; no client secret is storedstore-submission.json, with 90-day hash/submission evidenceStore activation decision
The release owner requested automated Node app Store publishing as an additional channel; the existing EXE/ZIP GitHub release remains supported. The Store job runs only after that GitHub release succeeds. Stable/correction tags publish to both channels; alpha tags remain GitHub-only.
The live
microsoft-storeenvironment now has a custom deployment policy allowing onlyv*tags. Partner Center identifiers and the Entra federated credential remain deployment prerequisites; no credential was added by this PR.Required proof pools
build-msixandbuild-msix-bundlejobs remain authoritative and must succeed before Store submission.Validation
Passed locally at
e70e101b:./scripts/test-microsoft-store-submission.ps1./scripts/test-ci-workflow-contract.ps1./scripts/test-msix-alpha-release.ps1./scripts/test-msix-bundle.ps1./scripts/test-msix-versioning.ps1./scripts/test-msix-preview-source-version.ps1./scripts/test-ci-change-classifier.ps1git diff --checkHost-limited on macOS:
./build.ps1stops at its explicit Windows prerequisite.test-msix-ci-artifacts.ps1requires WindowsExport-Certificate.validate-docs.ps1hits the existing macOS backslash-path handling failure forscripts\\validate-mxc-e2e.ps1in the proof-pool validator.Windows CI is the authoritative exact-head build, package, and suite proof.
Real behavior proof
test-microsoft-store-submission.ps1drives the production wrapper through deterministic OAuth, Dev Center API, and Azure upload doubles. It proves the exact production sequence:OpenClaw.msixbundleto the exact created submission;Negative cases prove that a pre-existing human draft is untouched, a draft replaced after upload is neither deleted nor committed, metadata drift deletes only the automation-owned draft, a short-lived access token reaches no Store API, and standalone
.msixinput fails before authentication. OIDC request-URI tests cover endpoints with and without an existing query string.