Conversation
Integrate verified Gateway MSIX discovery, dedicated profiles, Companion-owned runtime startup and shared wizard onboarding. Recommend native setup from the actual device probe, reuse capability/permission selection, and automate acquisition with progress and checkmarks. Use OPENCLAW_GATEWAY_MSIX_PATH for the temporary local installer source instead of a workstation-specific path. Consolidate unpublished implementation history so private local paths are not published. Preserve Windows installation consent, per-handshake ownership checks, pairing gates and gated registry publication. Validation: full Release development build; Shared 4013, Tray 3001, SetupEngine 1353 and Connection 870 tests passed (35 skipped). Strict Release Gateway MXC E2E passed all 17 tests. Rubber-duck findings addressed and verified. Structured autoreview remains blocked by bundle size. Full current-head interactive native completion and normal-owner handoff remain unverified. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c4966eb3-4283-43c3-8945-203924da51a7
|
🦞👀 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. Reviewed September 18, 2026, 3:39 PM ET / 19:39 UTC (Revision 2). ClawSweeper reviewWhat this changesAdds guided native Windows Gateway package installation, dedicated profiles, supervised startup, and shared onboarding, while shortening optional wizard steps for native and WSL setup. Regression provenancePossible regression — suspected (reviewed change). No predecessor PR is attributed. Merge readiness⛔ Blocked before merge - 8 items remain Keep open: this remains useful work absent from main, and both prior correctness findings remain unresolved. The new screenshots materially improve happy-path evidence, but upgrade validation and native credential-handoff safety remain incomplete. Priority: P2 Review scores
Verification
How this fits togetherCompanion setup prepares a local Gateway and collects capability and provider choices. The new native runtime verifies package and listener ownership before credentials are sent, then transfers ongoing operation to the connection manager. flowchart TD
A[Gateway choice and permissions] --> B[Verify or install Windows package]
B --> C[Prepare dedicated profile]
C --> D[Start and verify owned listener]
D --> E[Shared onboarding wizard]
E --> F[Validate configuration and health]
F --> G[Publish saved Gateway]
G --> H[Connection manager]
Before merge
Findings
Agent review detailsSecurityNeeds attention: Package identity and exact-device pairing checks are present, but native authorization still needs proof that listener replacement cannot authorize the wrong connected peer. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Preserve explicit setup choices, share runtime-backed authorization across native connection surfaces, and provide a usable acquisition/recovery path with verified upgrade preservation and credential handoffs. Do we have a high-confidence way to reproduce the issue? Yes for the two correctness findings: source traces show explicit WizardAnswers being bypassed and native interactive credentials always rejected. Neither was executed during this read-only review; the handshake replacement concern remains unproven. Is this the best way to solve the issue? Partly: reusing the shared wizard and separating runtime ownership is appropriate, but defaults must preserve explicit answers and every interactive credential consumer must use the correct runtime verifier. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 84efd0731cda. 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 (1 earlier review cycle)
|
|
This looks great! |






What Problem This Solves
Companion needs a guided onboarding path connecting the Windows Gateway MSIX to its existing setup wizard without separate install, availability-check, and wizard-launch clicks.
User Impact
Eligible devices see native Gateway setup recommended first. Users choose Windows capabilities and permissions, then Companion automatically prepares the package/profile and opens the shared Gateway wizard with progress indicators and completion checkmarks. WSL alternatives appear only when native setup is unavailable.
Windows installation consent and provider sign-in remain interactive. The native Gateway runs as the signed-in Windows user; this PR does not provision an isolated MXC session. Store delivery is not available yet. Missing-package development installs require
OPENCLAW_GATEWAY_MSIX_PATHbefore launching Companion and an ARM64 package. Healthy installed packages do not require that setting.Why This Change Was Made
Private workstation paths were removed from code, tests and docs. Unpublished history was consolidated into one sanitized commit, so the removed paths are absent from the outgoing history as well. No local-directory links, runtime profiles, credentials or MSIX payloads are included.
Native package and runtime handoffs
MSIX discovery and installation. Companion checks current-user package name, publisher, health and package-qualified execution aliases, never a generic PATH command. Only a missing package opens Windows App Installer for the configured MSIX after manifest preflight. Windows owns signature validation and consent. Companion waits for verified registration; opening the installer alone is not success. Store delivery remains a follow-up.
Dedicated profiles and process ownership. Each Gateway gets separate configuration, credentials, identity and workspace without replacing the default profile. Companion owns the packaged launcher; the launcher owns Node's separate job. Listener verification therefore checks direct job membership or a live, same-user descendant chain anchored to the retained, expected-package launcher, plus consistent loopback TCP snapshots. Credentials are withheld until ownership is verified. The shared wizard uses authenticated Gateway RPC, not a new cross-package handoff protocol. After configuration/health checks and registry publication, the connection manager takes over startup/reconnect and stops the owned runtime on disconnect, switch or shutdown, preserving profile data.
flowchart TD D{"Gateway package registered?"} -->|No| I["Windows App Installer: signature and consent"] D -->|Yes| V["Verify package health and qualified aliases"] I -->|Registration observed| V V --> P["Prepare dedicated Gateway profile"] P --> L["Companion-owned packaged launcher"] L --> N["Package-owned Node Gateway"] N --> O["Verify loopback listener ownership"] O --> W["Authenticated shared Gateway wizard"] W --> H["Restore reload; validate config and health"] H --> R["Stop setup runtime; publish Gateway record"] R --> M["Connection manager: start, reconnect, stop"]Evidence
The sanitized source passed the full build, 9,237 Shared/Tray/SetupEngine/Connection tests, and all 17 strict Gateway MXC E2E tests. Regular suites had 35 skips; strict MXC had none.
Earlier live isolated UI proof showed completed support/package/profile rows followed by automatic entry into the shared Gateway wizard. Full current-head native interactive completion and normal-owner handoff remain unverified, so this PR is a draft.
Change Type
Scope
winnodeRequired proof pools
windows-11-arm64: native package/runtime behavior and ARM64 build.windows-winui-interactive: recommendation, permissions, progress and shared-wizard UX.windows-clean-installer-upgrade: missing-package acquisition; full signed clean-install/upgrade matrix outstanding.windows-wsl-gateway-e2e: shared onboarding and connection/pairing regression coverage.windows-wsl-mxc: real Gateway-to-Windows-node containment proof, without skips.Validation
Commands ran on the same source tree preserved in sanitized commit
0207e1f1; only history was consolidated afterward..\build.ps1 -DevBuild -Configuration Releasedotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restoredotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restoredotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj --no-restoredotnet test .\tests\OpenClaw.Connection.Tests\OpenClaw.Connection.Tests.csproj --no-restore.\scripts\validate-mxc-e2e.ps1 -NoBuild -Configuration Release -RuntimeIdentifier win-arm64 -ResultsDirectory .\TestResults\NativeSanitizedMxcE2E.\scripts\validate-docs.ps1An unrelated chat timing test failed once, then passed in isolation and in the full rerun. Earlier MXC attempts failed during WSL import/restart; the latest current-source Release run passed.
Rubber-duck review identified missing per-handshake ownership authorization and restart racing native finalization. Both were fixed, regression-covered and verified in a focused follow-up with no remaining high-confidence findings in that verification. Structured
python .agents\skills\autoreview\scripts\autoreview --mode localremained blocked by its bundle-size limit; no clean structured review is claimed.Real Behavior Proof
0207e1f1source tree for build/tests and strict MXC. Earlier native UI capture predates the final installer-path and handoff-guard changes.OpenClaw onboardwithout an extra launch action.Security Impact
Compatibility and Migration
OPENCLAW_GATEWAY_MSIX_PATHreplaces the machine-specific development installer path.Review Conversations