Skip to content

Redesign WSL gateway setup and OpenClaw onboard UX - #925

Merged
steipete merged 37 commits into
mainfrom
maint/pr-792-onboarding-review
Jul 5, 2026
Merged

Redesign WSL gateway setup and OpenClaw onboard UX#925
steipete merged 37 commits into
mainfrom
maint/pr-792-onboarding-review

Conversation

@steipete

@steipete steipete commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Maintainer replacement for #792. GitHub rejected a direct push to the contributor fork despite maintainerCanModify=true. This branch preserves every contributor commit and adds the final maintainer review fixes.

Summary

  • Problem: The WSL gateway setup flow did not clearly show what OpenClaw installs, which Windows permissions/capabilities apply, or what is happening during setup and onboard recovery.
  • Why it matters: Power users need transparency and recovery context without adding extra clicks for the common path.
  • What changed: Reworked setup into a Windows-native WinUI flow: security notice, setup choice, capability/permission/install review, setup progress, gateway-installed milestone, OpenClaw onboard transcript, and updated complete/error states.
  • User impact: Users see the selected capability profile, relevant Windows permission status, install details, progress, recovery actions, and a clear handoff before OpenClaw onboard. Launch at startup now defaults on intentionally so OpenClaw is ready after reboot; users can turn it off on the final screen.
  • What did NOT change (scope boundary): Install pipeline steps, gateway protocol, credential model, pairing protocol, and node/MCP command contracts are unchanged.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor
  • Docs / instructions
  • Tests / validation
  • Security hardening
  • Chore / infra

Scope (select all touched areas)

  • Tray / WinUI UX
  • Windows node capability
  • Local MCP / winnode
  • Gateway / connection / pairing
  • Setup / onboarding
  • Permissions / privacy / security
  • Tests / CI / docs

Linked Issue/PR

Validation

Required closeout:

  • .\build.ps1
  • dotnet test .\tests\OpenClaw.SetupEngine.Tests\\OpenClaw.SetupEngine.Tests.csproj --no-restore363 passed
  • dotnet test .\tests\OpenClaw.Shared.Tests\\OpenClaw.Shared.Tests.csproj --no-restore2689 passed, 31 skipped
  • dotnet test .\tests\OpenClaw.Tray.Tests\\OpenClaw.Tray.Tests.csproj --no-restore1454 passed

Maintainer closeout (70b5648) after config/security-boundary patch:

  • dotnet restore .\src\OpenClaw.SetupEngine.UI\OpenClaw.SetupEngine.UI.csproj -r win-x64
  • .\build.ps1
  • dotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj --no-restore367 passed
  • dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore2691 passed, 31 skipped
  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore1512 passed
  • dotnet test .\tests\OpenClaw.Connection.Tests\OpenClaw.Connection.Tests.csproj --no-restore395 passed
  • dotnet test .\tests\OpenClaw.WinNode.Cli.Tests\OpenClaw.WinNode.Cli.Tests.csproj --no-restore120 passed (known OnnxRuntime version conflict warnings)

Final maintainer closeout (b2841c9598cd9942ee740721685cb5519bcc2bc8) after wizard-state, capability-contract, and active-endpoint review:

  • build.ps1 on Windows 11 ARM64 ✅

  • OPENCLAW_RUN_INTEGRATION=1 dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore2722 passed

  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore1516 passed

  • dotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj367 passed

  • dotnet test .\tests\OpenClaw.Connection.Tests\OpenClaw.Connection.Tests.csproj --no-restore399 passed

  • Focused active-endpoint regressions (custom port, SSH local forward, invalid tunnel ports) ✅ 4 passed

  • AutoReview ✅ 0 actionable findings

  • Rubber-duck review found and drove the mixed WSL+SSH endpoint fix; final implementation review clean.

  • Exact-head successful WSL setup/connect E2E ✅ 15 passed, 2 expected MXC skips (job 85262965268)
    Additional sweep:

  • dotnet test .\tests\OpenClaw.Connection.Tests\OpenClaw.Connection.Tests.csproj376 passed

  • dotnet test .\tests\OpenClaw.WinNode.Cli.Tests\OpenClaw.WinNode.Cli.Tests.csproj120 passed

  • dotnet test .\tests\OpenClawTray.FunctionalUI.Tests\OpenClawTray.FunctionalUI.Tests.csproj10 passed

  • dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm6476 passed

  • dotnet test .\tests\OpenClaw.E2ETests\OpenClaw.E2ETests.csproj20 skipped (real-gateway gated)

  • dotnet test .\tests\OpenClaw.Tray.IntegrationTests\OpenClaw.Tray.IntegrationTests.csproj18 skipped (integration-gated)

Real behavior proof

  • Environment tested: Windows ARM64, Debug win-arm64, isolated tray data.
  • Original screenshot sequence commit: 70b5648f26db5e2fe743a807a2cd9e3124ebce92.
  • Final reviewed commit: b2841c9598cd9942ee740721685cb5519bcc2bc8.
  • Final-head Windows VM delta: permission rows refresh when returning from Settings; a hand-tuned capability set is visibly marked Custom capabilities (review); setup/direct-onboard requests cannot replace an already-active wizard; direct onboard uses the active gateway's custom endpoint while SSH-backed records stay on their Windows-side local forward.
  • Local VM limitation: Parallels on Apple ARM exposes Windows virtualization features but cannot create a WSL2 VM (HCS_E_HYPERV_NOT_INSTALLED). This VM therefore proves installer/UI/error/rollback behavior only. Exact-head GitHub Actions Windows E2E successfully proved distro creation, gateway startup, pairing, and setup/connect completion.
  • Final-head Windows VM UIA proof after expanding fine-tuning: every runtime-gated capability is present, the false Device toggle is absent, and the always-on device info/status disclosure is present:
{"ExactHead":"b2841c9598cd9942ee740721685cb5519bcc2bc8","Labels":[{"Label":"System","Present":true},{"Label":"Canvas","Present":true},{"Label":"Screen capture","Present":true},{"Label":"Camera","Present":true},{"Label":"Location","Present":true},{"Label":"Browser","Present":true},{"Label":"Device","Present":false},{"Label":"Text-to-speech","Present":true},{"Label":"Speech-to-text","Present":true},{"Label":"Basic device info and status stay available while Node Mode is on.","Present":true}]}
  • Exact steps or command run:
.\build.ps1
$env:OPENCLAW_FORCE_ONBOARDING="1"
.\run-app-local.ps1 -NoBuild -Isolated -AllowNonMain
00-security-notice 01-welcome 02-connect-existing-advanced 03-capabilities-profile 04-capabilities-permissions 05-capabilities-install-review 06-setting-up-wsl-gateway 07-gateway-installed 08-openclaw-onboard 10-complete-success 11-complete-error
  • Observed result: Flow shows the new native setup sequence, inline permissions/install review, collapsed live activity, gateway-installed handoff before onboard, transcript-style onboard, More options recovery, and mascot corner-badge complete states.

Key excerpts:

AFTER_PROFILE_STANDARD_PLUS_TTS
{
  "ExistingKey": "keep-me",
  "AutoStart": true,
  "EnableNodeMode": true,
  "NodeSystemRunEnabled": true,
  "NodeCanvasEnabled": true,
  "NodeScreenEnabled": true,
  "NodeCameraEnabled": false,
  "NodeLocationEnabled": false,
  "NodeBrowserProxyEnabled": false,
  "NodeTtsEnabled": true,
  "NodeSttEnabled": false
}
AFTER_COMPLETION_AUTOSTART_FALSE_ONLY
{
  "ExistingKey": "keep-me",
  "AutoStart": false,
  "EnableNodeMode": true,
  "NodeSystemRunEnabled": true,
  "NodeCanvasEnabled": true,
  "NodeScreenEnabled": true,
  "NodeCameraEnabled": false,
  "NodeLocationEnabled": false,
  "NodeBrowserProxyEnabled": false,
  "NodeTtsEnabled": true,
  "NodeSttEnabled": false
}
USES_BUNDLED_DEFAULT_RUNTIME_ONLY=False

Maintainer proof for the patched security/config behavior on 70b5648f26db5e2fe743a807a2cd9e3124ebce92:

SetupReviewSummary_UsesActiveSetupConfig: custom DistroName=CustomClaw, BaseDistro=Debian, GatewayPort=19999, Gateway.Bind=lan, and HTTPS install host produce CustomClaw/LAN:19999 review and completion text.
WriteSettingsJson_AppliesConfiguredCapabilitiesBeforePersisting: System/Camera/Location/Browser/Stt disabled in SetupConfig.Capabilities persist as false Node* runtime gates in settings.json.

Code/security re-review and rubber-duck review found the previous hard-coded setup-copy and capability-persistence findings fixed with no remaining blocker.
Runtime capability enforcement proof:

NodeCapabilityGatingTests (real OpenClaw.Tray.WinUI predicates used by gateway node registration and MCP-only serving)
Passed! - Failed: 0, Passed: 25, Skipped: 0, Total: 25

Focused persistence regression proof:

Focused SetupConfig persistence tests
Passed! - Failed: 0, Passed: 3, Skipped: 0, Total: 3

Security Impact (required)

  • New permissions/capabilities? No — no new capability or OS permission surface added.
  • Secrets/tokens handling changed? No.
  • New/changed network calls? Yes — direct onboarding now uses the active gateway record's endpoint, including its custom port, and resolves SSH-backed records to the Windows-side local forward.
  • Command/tool execution surface changed? No.
  • Data access scope changed? Yes — default capability profile is now Standard instead of silently inheriting the prior full default; users can still choose Full access before install.
  • If any Yes, explain risk + mitigation: The default is intentionally more explicit and reviewable. The capability profile, relevant Windows permissions, and install review are visible before setup runs. Endpoint resolution is centralized and rejects invalid tunnel ports, preventing credentials from bypassing a configured SSH forward.

Compatibility / Migration

  • Backward compatible? Yes.
  • Config/env changes? No.
  • Migration needed? No.
  • If yes, exact upgrade steps: N/A.

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only conversations that still need reviewer or maintainer judgment.

Rubber-duck review

Final rubber-duck/Hanselman reviews found no code blocker after fixes. Post-rebase dual review found no high-consensus issues; single-model feedback was fixed or validated. Final review additionally made custom capability states explicit, refreshed Windows permission status after returning from Settings, prevented an active onboard wizard from being replaced, and kept custom-port onboarding on the active record without bypassing SSH local forwards. Exact-head Windows E2E passed.

Copilot and others added 30 commits July 1, 2026 22:37
Presentation-only redesign of the OpenClaw Windows setup/onboarding flow.
No changes to connection, pairing, the install pipeline, credentials, or the
gateway protocol.

- Welcome: 2-card chooser (Install a local gateway [WSL, recommended] /
  Connect to an existing gateway).
- Capabilities: rebuilt into a stepped, accreting flow like the gateway-onboard
  transcript: (1) what your agent can do (profile + fine-tune toggles), (2)
  Windows permissions (merged in from the old standalone step; each OS
  permission row shows only when its capability is enabled), (3) review &
  install. Honors SetupConfig.SkipPermissions by hiding step 2 (2-step flow)
  without touching the SetupConfig schema. Writes the 9 CapabilitiesConfig
  flags before the pipeline runs.
- Gateway onboard: restyle + vertical transcript of answered steps; auto-scroll
  keeps the active step's title in view (so long option lists no longer hide the
  step intro). Protocol methods unchanged.
- Progress: tighter step rows; "Live activity" ledger flows below the steps and
  opens downward instead of being pinned to the window bottom; themed spinner.
- Complete: summary cards + node-mode callout (removed the "what changed"
  expander).
- Brand-red accent themed for the setup window only (light + dark). Filled
  controls use WCAG-AA reds (white text >= 5:1); the bright coral #FF5C5C failed
  AA at 3.03:1, so it is kept only for accent text/links.
- Shared SetupPermissionHelper used by both the merged step and the legacy
  standalone PermissionsPage (kept for the dev preview route).
- Dev-only preview route via OPENCLAW_SETUP_PREVIEW_PAGE, gated to DEBUG builds
  (inert in Release) so it can never bypass the setup run lock or pipeline.

Before/after + real onboard walkthrough screenshots in docs/onboarding-redesign/.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refine the setup flow around transparent WSL gateway installation, native WinUI styling, milestone handoff, and onboarding recovery actions. Keep gateway/install behavior unchanged while making the user-facing steps clearer and more consistent.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restore the main-branch off-UI-thread existing gateway detection contract for the redesigned Welcome page, and make onboarding progress indicators advance through the gateway install and onboard steps separately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove stale setup screenshots, delete the unused tray SetupWizardWindow and obsolete SetupEngine permissions page, and route direct OpenClaw onboard entry points through the new gateway-installed handoff so users keep the redesigned setup context.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Expose preview-only setup error and OpenClaw onboard error states so the PR screenshot set can cover the recovery UI without checking image artifacts into the repo.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the OpenClaw mascot with a corner success badge for the setup complete state, matching the gateway-installed and setup-failed visual language.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Delete the abandoned Onboarding V2 preview harness and visual-diff assets, remove stale lobster branding references, and harden the gateway-installed handoff with inline feedback if onboarding cannot start immediately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Persist capability profile selections into the runtime node settings used after tray restart, and save the final launch-at-startup choice before restarting the tray.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ensure capability profile selections are written to the runtime Node* settings used after restart, and persist only the final startup preference when setup completes so direct onboard does not reset existing capability choices.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Start direct onboard windows directly at the gateway-installed handoff and surface permission status read failures inline so setup never silently degrades.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Hide and skip persisting the startup preference for direct OpenClaw onboard sessions so existing AutoStart choices are not overwritten, while fresh setup still defaults startup on.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
When direct OpenClaw onboard hides the startup preference row, compute the completion AutoStart payload from the row visibility so existing Start with Windows choices are preserved.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allow idle setup windows to switch to the safe direct-onboard handoff, remove an unreachable wizard error branch, and make corrupt settings backups collision-proof.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Drop an accidentally committed local cache file from the onboarding review cleanup.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Only apply the Standard profile fallback for the bundled placeholder config, allow idle setup windows to switch to the direct-onboard handoff, and clean up small review edge cases.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove a local impeccable cache artifact from the post-rebase review fixes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Presentation-only redesign of the OpenClaw Windows setup/onboarding flow.
No changes to connection, pairing, the install pipeline, credentials, or the
gateway protocol.

- Welcome: 2-card chooser (Install a local gateway [WSL, recommended] /
  Connect to an existing gateway).
- Capabilities: rebuilt into a stepped, accreting flow like the gateway-onboard
  transcript: (1) what your agent can do (profile + fine-tune toggles), (2)
  Windows permissions (merged in from the old standalone step; each OS
  permission row shows only when its capability is enabled), (3) review &
  install. Honors SetupConfig.SkipPermissions by hiding step 2 (2-step flow)
  without touching the SetupConfig schema. Writes the 9 CapabilitiesConfig
  flags before the pipeline runs.
- Gateway onboard: restyle + vertical transcript of answered steps; auto-scroll
  keeps the active step's title in view (so long option lists no longer hide the
  step intro). Protocol methods unchanged.
- Progress: tighter step rows; "Live activity" ledger flows below the steps and
  opens downward instead of being pinned to the window bottom; themed spinner.
- Complete: summary cards + node-mode callout (removed the "what changed"
  expander).
- Brand-red accent themed for the setup window only (light + dark). Filled
  controls use WCAG-AA reds (white text >= 5:1); the bright coral #FF5C5C failed
  AA at 3.03:1, so it is kept only for accent text/links.
- Shared SetupPermissionHelper used by both the merged step and the legacy
  standalone PermissionsPage (kept for the dev preview route).
- Dev-only preview route via OPENCLAW_SETUP_PREVIEW_PAGE, gated to DEBUG builds
  (inert in Release) so it can never bypass the setup run lock or pipeline.

Before/after + real onboard walkthrough screenshots in docs/onboarding-redesign/.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refine the setup flow around transparent WSL gateway installation, native WinUI styling, milestone handoff, and onboarding recovery actions. Keep gateway/install behavior unchanged while making the user-facing steps clearer and more consistent.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restore the main-branch off-UI-thread existing gateway detection contract for the redesigned Welcome page, and make onboarding progress indicators advance through the gateway install and onboard steps separately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove stale setup screenshots, delete the unused tray SetupWizardWindow and obsolete SetupEngine permissions page, and route direct OpenClaw onboard entry points through the new gateway-installed handoff so users keep the redesigned setup context.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Expose preview-only setup error and OpenClaw onboard error states so the PR screenshot set can cover the recovery UI without checking image artifacts into the repo.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the OpenClaw mascot with a corner success badge for the setup complete state, matching the gateway-installed and setup-failed visual language.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Delete the abandoned Onboarding V2 preview harness and visual-diff assets, remove stale lobster branding references, and harden the gateway-installed handoff with inline feedback if onboarding cannot start immediately.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Persist capability profile selections into the runtime node settings used after tray restart, and save the final launch-at-startup choice before restarting the tray.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ensure capability profile selections are written to the runtime Node* settings used after restart, and persist only the final startup preference when setup completes so direct onboard does not reset existing capability choices.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Start direct onboard windows directly at the gateway-installed handoff and surface permission status read failures inline so setup never silently degrades.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Hide and skip persisting the startup preference for direct OpenClaw onboard sessions so existing AutoStart choices are not overwritten, while fresh setup still defaults startup on.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
When direct OpenClaw onboard hides the startup preference row, compute the completion AutoStart payload from the row visibility so existing Start with Windows choices are preserved.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allow idle setup windows to switch to the safe direct-onboard handoff, remove an unreachable wizard error branch, and make corrupt settings backups collision-proof.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Drop an accidentally committed local cache file from the onboarding review cleanup.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. labels Jul 5, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e66d158e12

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

private async Task ShowGatewayWizardAsync()
{
var (setupWindow, createdNew) = await EnsureSetupWindowAsync();
var (setupWindow, createdNew) = await EnsureSetupWindowAsync(startAtGatewayInstalledMilestone: true);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use the active gateway URL for direct onboard

With this new Settings → OpenClaw onboard path, the setup window is created from the bundled default config, while WizardPage.ConnectClientAsync still uses config.EffectiveGatewayUrl even though it reads credentials from the active GatewayRecord. For an app-managed WSL gateway installed with a custom port or URL, this path now tries the default ws://localhost:18789 and fails to start onboard despite the active record being reachable. Pass the active record URL/config into this milestone path or have the wizard connect to record.Url.

Useful? React with 👍 / 👎.

@steipete

steipete commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Fixed the Device capability contract in 6696f5ac:

Windows ARM64 validation: full build passed; Shared 2691 passed / 31 skipped; Tray 1515 passed; SetupEngine 367 passed. AutoReview and final rubber-duck review both clean. New exact-head CI/E2E is running and remains a merge gate.

@clawsweeper

clawsweeper Bot commented Jul 5, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@steipete

steipete commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Fixed the active-gateway endpoint blocker in b2841c95:

  • Direct onboarding now resolves its WebSocket endpoint from the active GatewayRecord, so custom local gateway ports are preserved.
  • Mixed managed-WSL plus SSH records resolve to the Windows-side ws://localhost:<LocalPort> forward instead of bypassing SSH with the persisted remote URL.
  • Invalid tunnel local ports fail before authentication.
  • Added runtime regressions for custom ports, SSH local forwards, and invalid ports, plus the setup-wizard routing contract.

Windows 11 ARM64 validation: full build passed; Shared 2722/2722; Tray 1516/1516; SetupEngine 367/367; Connection 399/399. AutoReview is clean. Exact-head UIA proof and the PR proof package now point to b2841c95; exact-head hosted setup/connect E2E remains the merge gate.

@clawsweeper

clawsweeper Bot commented Jul 5, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b2841c9598

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

var client = new OpenClawGatewayClient(config.EffectiveGatewayUrl, token, logger: NullLogger.Instance, identityPath: identityPath)
// The active record owns the endpoint as well as the credential identity. Resolve
// tunnel-backed records to their Windows-side local forward instead of bypassing SSH.
var gatewayUrl = GatewayClientEndpointResolver.Resolve(record);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Start the SSH forward before using its local endpoint

For active records that have SshTunnel, this path now switches the wizard to ws://localhost:<LocalPort>, but it never starts or validates that SSH forward. The normal gateway connection path starts the tunnel via _tunnelManager.StartAsync before using the local URL; the setup wizard path does not, while GatewayHostAccessClassifier still exposes the Settings OpenClaw Onboard card for managed WSL records that also carry SSH metadata. In that disconnected/tunnel-down state, onboarding fails even though the active record is valid, so start the tunnel through the same service/manager or avoid resolving tunnel-backed records here unless the forward is known to be up.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. feature: ✨ showcase ClawSweeper spotlight: unusually compelling feature idea for maintainer attention. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jul 5, 2026
@steipete
steipete merged commit adcb4c3 into main Jul 5, 2026
19 checks passed
@steipete
steipete deleted the maint/pr-792-onboarding-review branch July 5, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature: ✨ showcase ClawSweeper spotlight: unusually compelling feature idea for maintainer attention. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants