fix(setup): validate current OpenClaw package lifecycle#999
fix(setup): validate current OpenClaw package lifecycle#999TheAngryPit wants to merge 19 commits into
Conversation
2257b8b to
953c7cc
Compare
|
Codex review: needs real behavior proof before merge. Reviewed July 26, 2026, 6:41 AM ET / 10:41 UTC. ClawSweeper reviewWhat this changesThis PR adds SHA-256 verification for a CI-composed OpenClaw package before Windows Companion setup installs it, changes Gateway service lifecycle and version-specific command-policy handling, and updates CI, documentation, and regression coverage. Merge readiness⛔ Blocked until stronger real behavior proof is added - 7 items remain Keep open. The PR contains substantive package-integrity and setup-lifecycle work, but its current head does not yet have inspectable current-head real-run output and its required test/E2E jobs remain in progress. It also establishes a CI-composed candidate using a frozen patch from an unmerged external OpenClaw fork, which needs an explicit maintainer support and provenance decision. Likely related people: CassieMei appears to be the primary implementation contributor in this PR's commit history, with low confidence for current-main ownership because local history inspection was blocked. Priority: P1 Review scores
Verification
How this fits togetherWindows Companion provisions a WSL-hosted OpenClaw Gateway, configures the Gateway's node-command policy, waits for it to become healthy, and pairs it with the Windows node. This PR changes package selection and integrity validation before installation, plus the service lifecycle steps that follow installation. flowchart LR
SetupConfig[Setup configuration] --> PackageSelect[Gateway package selection]
PackageSelect --> DigestVerify[SHA-256 verification]
DigestVerify --> GatewayInstall[Gateway install and activation]
GatewayInstall --> HealthCheck[Gateway health check]
HealthCheck --> Pairing[Gateway and node pairing]
Pairing --> WindowsNode[Windows node services]
Decision needed
Why: The code can pin commit and patch hashes, but maintainers must decide whether that external provenance and ongoing cross-repository support burden are acceptable for this repository's validation contract. Before merge
Findings
Agent review detailsSecurityNeeds attention: The package hash checks are a positive control, but the new CI-composition path fetches an unmerged patch from an external fork and needs explicit maintainer provenance approval before it becomes a durable validation dependency. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep ordinary installs on the official 2026.7.1 fallback, require maintainer approval for any long-lived composed-package provenance, and merge only after current-head disposable Windows/WSL evidence proves both successful installation and checksum mismatch rejection before npm. Do we have a high-confidence way to reproduce the issue? No. The PR describes disposable Windows/WSL proof, but the supplied materials do not include inspectable current-head terminal output, logs, or artifacts, and the relevant exact-head E2E jobs are still in progress. Is this the best way to solve the issue? Unclear. SHA-256 verification before installation is a sound boundary, but a permanent composed-package lane based on an unmerged external patch is not clearly the narrowest supported solution until maintainers decide its provenance policy. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against f50af187865c. 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 (30 earlier review cycles; latest 8 shown)
|
|
Status update after current-main integration and fresh official-package validation:
The PR body now contains the full failed-first evidence, scope, validation, and sanitized operator/agent decision record. I am marking it ready so maintainers can review the actual tradeoff rather than leaving the work hidden in draft. This is not a claim that the known stable-package E2E blocker is resolved. No maintainer or automerge action is requested here. |
|
Current-head proof update:
The PR body now distinguishes the Companion fixes from the remaining OpenClaw core dependency and requests review of the beta-default contract. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
434af02 to
8b3d57f
Compare
Security-floor correction publishedCurrent head: This update corrects the ordinary Gateway fallback at the layer that owns it:
Fresh local proof on the exact commit:
GitHub checks started automatically from the push. No manual ClawSweeper re-review command was added. |
Summary
.tgz.2026.7.1, now treated as the minimum security floor. It may advance only to a strictly newer official stable release. The current composed candidate remains separate: OpenClaw2026.7.2from frozenmainplus the current #110382 fix. Digest mismatch fails closed before installation.Change Type
Scope
winnodeLinked work
Frozen composition and artifact
Exact-head CI run:
30180239886main:6277c35d9a97cb128d32ed7ab5632cfc4163c7462296e898e13a5b250bf557e9632e000c093e61f16277c35d9a97cb128d32ed7ab5632cfc4163c7466edc1e40f37b833ec0493ec331eba6cd49db4fb6b1a5b0890db2268c33b8facd8396abed69fa5a0de92df0708f1dbd6eb5e97eabopenclaw-2026.7.2-main-pr110382.tgz4fa6df8a8efdb46bbc93d509552ccd3d7dee962519ad9f3f2e816a6fe3c33e8033,567,130bytes2026.7.2The uploaded artifact contains
provenance.json,SHA256SUMS, and the package. CI checks the source SHA, patch base and head, patch hash, changed-path allowlist, internal package version, and final package digest before any composed E2E consumer runs.Exact-head validation
Published PR head:
f5958e2190e5484a40ce551783765c0637a1786aFresh GitHub checks on this exact head are running. Repository hygiene and the advanced setup gate have passed; the composed-package and complete test jobs remain in progress.
The parent head
1f785aa399abef33b7ed422b394cc1bfb5128310passed:The optional
2026.7.2-beta.3compatibility canary reached a healthy restarted Gateway (HTTP 200) but lost the wizard connection before receiving the response. This lane is markedcontinue_on_error: true; it is not the embedded LKG or composed candidate and does not replace either supported contract.Real behavior proof
The exact-head composed E2E used the artifact described above and passed the complete setup-and-connect scenario on a disposable GitHub Windows/WSL target.
The package-integrity boundary also has failed-first disposable proof:
.tgzto the official installer/npm path.No operator runtime, private data, credentials, or channels were used.
Package and lifecycle compatibility
The embedded LKG, composed candidate, and historical beta canary have different jobs:
2026.7.1is the embedded official LKG fallback and minimum security floor.2026.7.2composed from frozen main plus #110382 is the current reviewed candidate.2026.7.2-beta.3is a non-blocking historical compatibility canary. It is not a production default.The fallback policy is recorded in
docs/adr/0001-gateway-lkg-security-floor.md. Automation accepts only exact official stable versions strictly newer than the current pin; it rejects prereleases, equal versions, and downgrades. Composed packages remain governed by their separate immutable version, URI, and digest contract.Current and composed packages use
gateway.nodes.commands.allow. The pinned historical packages retain their version-appropriate legacy command-policy key. All paths preserve the complete capability-derived allowlist.Selected-port ownership is proven by matching every listener PID from
ssto the managedopenclaw-gateway.serviceMainPID. Unknown, mixed, or unattributable ownership fails closed. The patch does not kill processes or broaden command authority.Security impact
2026.7.1and cannot be replaced by a prerelease or composed package reference.Compatibility and migration
2026.7.1.2026.7.2package described above.Review conversations
2026.7.1minimum security floor and stable-only forward-update rule in ADR 0001.Agent transcript
Redacted operator and agent engineering record
2026.6.11; review showed that this crossed a known security floor. The owning fix(setup): validate current OpenClaw package lifecycle #999 layer now records2026.7.1as the minimum and keeps composed-main packages separate.