Repository navigation
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 real behavior proof before merge. What this changesThis PR adds explicit Windows bundled-Bun adoption, guarded service recovery, desktop setup repairs, and a nonpublishing signing rehearsal. Example: A Windows x64 user has a running Node Gateway registered as a protected Scheduled Task.
Review scores
ProductKind: Feature · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 5 items remain Keep this maintainer-led draft open: explicit Windows runtime adoption remains distinct from main’s fresh setup, and this review established no new actionable code defect. Priority: P2 Before merge
FindingsNone. Tests
Agent review detailsHow this fits togetherThe Tauri companion sends confirmed runtime observations to the canonical CLI, which owns Windows service replacement, runtime-pin persistence, readiness, and recovery; release workflows separately build and sign installers. flowchart TD
Desktop[Desktop confirmation] --> CLI[Canonical CLI]
Desktop --> UAC[One shot UAC handoff]
UAC --> CLI
CLI --> Owner[Windows service owner]
Owner --> Gateway[Gateway and runtime pin]
Owner --> Receipt[Private result receipt]
Receipt --> Desktop
Release[Protected main rehearsal] --> Artifacts[Temporary signed artifacts]
Technical reviewBest possible solution: Complete qualification through the existing CLI and Windows service owners while retaining explicit adoption and the approved publication-off boundary. Do we have a high-confidence way to reproduce the issue? Current main’s Linux-only adoption gates establish the missing Windows capability from source; no target runtime was executed during this review. Is this the best way to solve the issue? Extending explicit adoption through the canonical CLI and native service transaction is appropriate, and the maintainer has already approved the direction and publication restriction. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against fada6e0812ce. Merge-risk optionsMaintainer options:
Provenance checked
TestingProof path: shipped entry point. SecurityNeeds attention: The elevated adoption and recovery paths still need final-effect authority evidence. EvidenceWhat I checked:
PR surfacePR surface statistics unavailable: the file list is incomplete. Review metrics
LabelsLabel changes: No label changes. Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (49 earlier review cycles; latest 8 shown)
Reviewed October 13, 2026, 5:17 AM ET / 09:17 UTC (Revision 50). |
81a0ebc to
8dff06a
Compare
8dff06a to
d8916dc
Compare
d8916dc to
6edc21d
Compare
Retain the installed HOME only when the elevated plan omits it and filesystem identity proves it is the current OS account profile. Keep explicit overrides and the strict preservation audit unchanged.
Integrate Windows runtime adoption with current main's Bun staging and private CLI owners. Preserve registration revalidation and the shared readiness deadline, remove obsolete unsigned preparation paths, and require Foundation Authenticode verification before installer publication.\n\nRelease-note context: Windows desktop consumes the signed shared Bun pin on x64 and ARM64; Startup and protected Scheduled Task adoption retain their guarded service-owner boundary. Native release-profile qualification remains separate from this source change.
Include Windows in the RuntimeAction type, implementation and operation-queue dispatch gates. The queue and tray already exposed the Windows action, but the Linux-only consumer gates prevented the native application from compiling. Restore main's first-install admission for an absent service with unknown mutation capability. Sealed definitions still refuse, existing-service adoption still requires writable capability, and the CLI retains native permissions and expected-pin authority. The existing Linux and macOS regression test exposed the dropped condition. Release-note context: preserve the same explicit bundled-runtime adoption path on Linux and Windows. Native compilation is the regression boundary; the failed first attempt is retained in qualification evidence.
Keep Linux envelope corruption coverage and exercise Windows raw-resource checksum rejection for enveloped, truncated and empty inputs. Both paths must reject before private runtime state is created. Match the existing signed-Windows missing-runtime diagnostic in the missing-manifest test. Production admission and publication behavior are unchanged; the first native suite's two stale test failures remain in qualification evidence.
Require successful Windows signing for new and reused publication cases, and account for native registration revalidation within the existing inspection deadline.
Account for registration and runtime revalidation in the updater timeout fixtures while retaining the same budgets and no service mutations. Keep the native SID audit test in the daemon partition after its mocks changed test classification, and avoid consecutive ignored destructuring in the identity-budget assertion.
A successful service install can be followed by a dashboard connection failure. Reobserve the local Gateway when setup is retried, preserving the existing service instead of attempting another fresh installation. Keep explicit CLI repair and remote choices available. Four regressions reproduce the previous behavior; the focused dashboard file passes 24 tests on Node and pinned Bun. Targeted lint, formatting and independent P2 review pass. Native runtime guards, signing and publication policy are unchanged.
|
@clawsweeper re-review Please refresh the review for exact head |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review Please review exact head |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review Please review head |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review The PR body now records final original-attempt CI for exact head Please review this unchanged head against the reconciled evidence. The prior request was superseded and is not being counted as completed review. |
|
🦞👀 Re-review progress:
|
What Problem This Solves
Adds explicit Windows x64/ARM64 bundled-Bun adoption to the Tauri desktop companion. Main supplies fresh Windows setup; this change lets an existing Node Gateway move to the signed bundled runtime through the canonical service owner. The branch consumes main's signed production Windows pins and removes the obsolete unsigned preparation entry.
User Impact
Windows publication remains OFF. The PR remains draft because native qualification and CI attribution are incomplete. There is no Windows release asset, updater feed or automatic updater activation.
Passive startup, reconnect, Quit and app replacement preserve the existing Gateway's runtime and registration. Switching requires Use bundled runtime… and confirmation. Fresh installation and Startup adoption remain unelevated. Protected S4U adoption uses one UAC handoff while the desktop stays unelevated; cancellation and stale consent must preserve the existing Gateway.
Azure federation, Foundation signing access, the first signed x64/ARM64 fork release and generated production pins are complete. Shared release
openclaw-v1.4.3-20261010-65d94e7156-webkit-01f208ae7a-r2admits both Windows architectures withauthenticodeSigned: trueandtestOnly: false.Why This Change Was Made
The desktop passes confirmed observations to the canonical CLI. The existing Windows service owner controls the replacement transaction: native lock, expected runtime pin/definition, backup, stop, publish, start, readiness and guarded recovery. Startup registration stays Startup registration. Protected S4U adoption invokes the installed CLI once through
ShellExecuteExW("runas")with--expected-runtime-pin; a private, same-account, nonce-bound receipt returns the result. There is no resident privileged helper or automatic migration.The shared stager verifies archive/payload hashes and stores immutable signed runtime bytes per user. Main's pin validator, exact bigint file identities, backup matching and Windows test targets remain intact. Qualification repairs preserve effective Node heap settings and recognize equivalent native home/temporary paths without relaxing explicit-environment or foreign-profile checks.
The existing desktop release owner gains a nonpublishing signing rehearsal. Only protected-main
workflow_dispatch, with source SHA equal to workflow SHA, may enter. Separate native x64/ARM64 build and signing jobs use the existingrelease-signingenvironment, Azure OIDC and Artifact Signing, Foundation account/profile, SHA256 and RFC3161 timestamping. They verify pinned Bun and installer identity. Outputs are three-day Actions artifacts; the rehearsal cannot reach a release, tag, feed, public asset or publication credential. Signing access and branch policy are unchanged. Existing Linux publication and historical mixed-platform recovery remain intact.Qualification also repaired partial-setup Retry through the existing bootstrap owner, Linux handled-navigation behavior, and Windows release executables opening an extra console. Release builds now select the GUI subsystem; native CI checks the built PE header. Debug builds retain console output.
Evidence
Current pushed head:
76a8560ec6f4694699f606e26ae071e065b9b0a4. Its three-file delta fromf7602c3bba68d2cf6cfcec4065e8e72a1541e7f7fixes the Windows release subsystem, adds a built-PE guard, and documents the behavior. Independent P2 autoreview is scoped-clean. The selected case intest/scripts/ci-workflow-guards.test.tspasses on Node 24 and pinned Bun (node scripts/run-vitest.mjs run test/scripts/ci-workflow-guards.test.ts -t "keeps Windows rehearsal artifacts isolated from release and feed publication" --maxWorkers=1; 19.39s / 27.22s wrapper wall time); scopedcheck-changedpasses in 280.13s, with rustfmt and diff checks passing. Both actual f760 Windows artifacts were PE console-subsystem binaries, and the new guard failed against the installed x64 binary before the fix. Both current-version Windows packages are now independently verified; native console-free launch proof remains pending.Current-head packaged binaries
Native run 38368593003 is terminal SUCCESS, 4/4 platform jobs, attempt 1. Both archives match their GitHub service digests and exact run/head identity. Selected 2026.10.2 apps have the correct architecture and GUI subsystem 2; their Bun manifests/hashes match the signed production pins and independently pass Foundation Authenticode, digest, RFC3161 timestamp, chain and CRL verification.
117988468641951a87c43b9ce047ce444a78db854673662d79666ceabe8517eb1ab506ba194f8b13d6cd765f1daa0b70d25bcfa07e12a46e67967d783cb481322f6959d7fcc117983474650165a51cfb99a4bba5b43f6e26b68bc5b65d6a219eee8e4022af0a5c81172a7f8a52383057ace13f69767cd86e4cd540a76a3a518f404d95f870477807e398e0Both ZIPs also retain an older cached 0.1.0 app with console subsystem 3. Those byte-identical older payloads are separately identified and excluded from current-version proof. The rehearsal builds without that Cargo cache and rejects anything except one installer of its admitted version. App and NSIS files remain unsigned, unpublished CI proof artifacts. No Windows executable from this new head was run locally or on a lease; artifact inspection does not establish interactive qualification.
The matching current-head CLI package from main run 38368686521, artifact
11798088528, has verified service digest and tarball SHA2568b3e8fac6f097d6efd124a8bae0f4e5ce6ba2d9ad8791c72ea5af161fd3b2b0a. Its build metadata embeds the exact 76a commit and its complete runtime pin matches source. This is metadata verification, not package execution.Retained native x64 proof — f760 artifacts
The last executed app and CLI are f760, not the new GUI-fix head. Native build run 38356676815 passed all four platforms. The x64 NSIS SHA256 is
acd4663393b2f4c91ffde0dd0829452cdf2d43455e91adeb4dfca1579f23b1f6; packaged app SHA256 is480d2435040a390870e82f6865893c85bce3a24884ea72def8807b09649445d3. The matching CLI artifact from run 38356770517 has tarball SHA25663a720d5f8d944af73fce5c24c834a7e2122135878533a578118ff07bfa40652and embeds the exact f760 commit. GitHub artifact service digests and runtime manifests were verified.Packaged Bun hashes match the production pins: x64
65b0f43ec6e50e1c11358d41aa7108d09394e81da76ea5d8c3151964619abb9f; ARM6450dc2915c6aa5fdb7f2bf27cf828fe6b5df75be3de7a627f0a288078f89d0d60. Both pass independent Foundation signature, digest, timestamp and chain verification. App and NSIS files are unsigned, unpublished CI proof artifacts. Runtime signing does not establish installer signing or ARM64 app qualification.Get-AuthenticodeSignature: Valid, Foundation subject and exact pin hash. Default managed discovery installed the CLI and reached a rendered dashboard, RPC readiness and health/readiness HTTP 200. Startup registration and medium app/Gateway tokens were verified.The one fresh Windows lease subsequently lost SSH/VNC. A cloud audit confirmed the backing instance terminated; the cause was not established. The broker lease is now released, with cleanup complete and no remaining host/provisioning resource. Downloaded evidence is retained; final guest cleanup and receipts stranded after termination are not claimed. No replacement lease was allocated. The shared ARM64 VM remains untouched.
CI and review
Native run 38368593003 is SUCCESS, 4/4 platform jobs, original attempt 1. Main-tier run 38368686521 is terminal FAILURE, 133 successful / 13 failed / 13 skipped jobs, original attempt 1. Its twelve specific failures are shown below; the thirteenth failure is the aggregate CI gate. The final Node shards 17 and 40 passed, as did Docker, the published-driver update and iOS. The skipped draft auto-run is not counted as proof. No rerun or prior-head run is relabeled.
checks-fast-contracts-channelscontrol-ui-i18nmacos-swift (tests)check-dependencieschecks-node-compact-large-12checks-node-compact-large-37checks-node-compact-large-28checks-windows-node-test-1checks-node-compact-large-3checks-ui-e2e-real-gateway (2/2)checks-node-compact-large-44checks-node-compact-large-25agents.delete30s timeouts match the preceding unclassified failures. Frozen-main failures occurred at different 180s/setup boundaries.Three specific failures are demonstrated inherited, one has mixed per-issue evidence, one has an identified upstream source fix, and seven remain unclassified. No blanket inherited-red exception is claimed. Passing main replays, unchanged source and matching test titles do not resolve an unknown failure.
Independent P2 review covers the full frozen authored diff in 18 sections, separate UI/Linux deltas, mechanical rebase continuity, the partition repair and the latest GUI delta. It is not a fresh review of incoming main. ClawSweeper's exact-head review completed at 2026-10-13T09:17:00.143Z on
76a8560ec6f4694699f606e26ae071e065b9b0a4: zero discrete code findings, with a needs-human/security hold for final-effect authority, current-package behavior, Linux handled navigation, upgrade/data compatibility and the seven unclassified CI failures. The review command reports Complete. The earlier superseded request is not counted. The PR remains draft.Earlier evidence, kept at its actual head
Earlier release-profile x64 runs demonstrated confirmed S4U adoption with the expected pin, Startup adoption, held-lock recovery, disabled already-selected actions and Gateway preservation through reconnect/Quit. Earlier principal refusal, recovery control and injected revoked-recovery cases are native owner integrations, not actual app/UAC revocation races. Earlier real app replacement retained two synthetic saved Gateways and an appearance preference, with Windows updates disabled. An earlier official 2026.10.2 driver upgrade retained installed/serving identity, Node/policy and logical data through Doctor and cleanup; its original encoding/cron fixture failures remain recorded, and intended Unicode is not claimed. These results do not substitute for final-package qualification.
Publication/rehearsal guards passed 16 selected cases on Node 24 and pinned Bun. The forbidden-ref rehearsal run skipped all twelve jobs and produced zero artifacts. This proves branch admission, not positive signing. Positive signing from protected main remains a pre-shipping task.
Both captures were inspected and cropped to synthetic app content; they retain earlier package provenance.
Remaining Gates
Before ready: current-head console-free native launch; real initial-fetch Retry recovery; Linux handled-navigation proof; resolve existing-Node white dashboard; S4U and Startup stale-state/held-lock rollback/adoption with exact file identities; reassigned-principal and revoked-recovery refusal before service I/O; genuine standard-account refusal; earlier-app saved-state replacement; official 2026.10.2 driver → candidate upgrade with Unicode/binary/session/disabled-cron data, durable history, Doctor and cleanup; complete exact-head CI attribution and ClawSweeper review. Native execution is blocked by the terminated lease; prepared packets are not completed proof.
Before shipping, separate from landing: positive artifact-only signing rehearsal from protected main after landing; ARM64 interactive app qualification when the shared VM is free; Peter's updater-feed/release decision. Windows publication remains disabled. No merge or release has been performed.