Skip to content

Fix setup triage quick wins#879

Open
shanselman wants to merge 1 commit into
mainfrom
setup-triage-clear-prs
Open

Fix setup triage quick wins#879
shanselman wants to merge 1 commit into
mainfrom
setup-triage-clear-prs

Conversation

@shanselman

@shanselman shanselman commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Validation

  • .\build.ps1
  • dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore — 2629 passed, 31 skipped
  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore — 1433 passed
  • dotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj --no-restore — 361 passed
  • Focused setup UI contract: dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore --filter FullyQualifiedName~SetupWelcomePage_RunsExistingConfigDetectionOffUiThread
  • Focused preflight-wsl UTF-16 parsing bug still present in v0.6.0 (re: #660 closed prematurely) #661 parser proof before issue closure: dotnet test .\tests\OpenClaw.SetupEngine.Tests\OpenClaw.SetupEngine.Tests.csproj --filter "FullyQualifiedName~WslInstallSupport_TryParseWslVersion" — 33 passed
  • PR CI: CodeQL, repo hygiene, unit tests, setup E2E slices, and x64/arm64 builds passed on Fix setup triage quick wins #879.

Real behavior proof

  • Automated proof: setup detection now crosses an await Task.Run(() => ExistingConfigDetector.Detect(...)) boundary before dialog/navigation, and the contract test pins the disabled/busy button state, async detection boundary, null/closed window guard, XamlRoot guard, and safe navigation path.
  • Adversarial review proof: Codex (gpt-5.3-codex) and Opus (claude-opus-4.6) both flagged the same setup-window close race; fixed by capturing the setup window once, treating null/closed as unsafe to continue, guarding XamlRoot, and only restoring the button while the captured window remains open.
  • Final structured review: python .\.agents\skills\autoreview\scripts\autoreview --mode local --prompt "Scope baseline: review the current local changes for issues #847, #867, #868 and the review-triggered WelcomePage window lifecycle fix..." reported no accepted/actionable findings.
  • Visible UI proof: Not captured yet; ClawSweeper requested current-head real setup/UI proof before merge.

Address clear automated issue candidates from setup triage: improve architecture-aware WSL virtualization guidance, move existing setup detection off the setup UI thread with lifecycle guards, and add wizard default answer matrix coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed June 27, 2026, 7:46 PM ET / 23:46 UTC.

Summary
The branch moves welcome-page existing setup detection to a background task with busy/lifecycle guards, makes unsupported-machine WSL guidance architecture-aware, and adds setup wizard/default-answer regression tests.

Reproducibility: yes. for source-level reproduction of the main setup freeze: current main calls ExistingConfigDetector.Detect synchronously from the install click path, and that detector reads wsl.exe output before the timeout check. No live Windows WinUI/WSL reproduction was run in this read-only review.

Review metrics: 2 noteworthy metrics.

  • Changed surface: 5 files changed, +220/-20. The diff is bounded to setup UI, setup diagnostics, and focused setup/tray tests.
  • Visible proof artifacts: 0 current-head UI artifacts. The PR changes a visible setup flow, and repository policy requires direct proof of the active changed state.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Result: blocked until real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P1] Add redacted current-head proof showing the install click path displays the checking state, keeps the setup window responsive, and reaches the confirmation/navigation path.

Proof guidance:

  • [P1] Needs real behavior proof before merge: The PR body provides tests and source-contract proof but explicitly says visible UI proof is not captured; add redacted current-head setup screenshot, recording, terminal/live output, or logs and update the PR body for re-review.

Mantis proof suggestion
A short visual setup proof would directly verify the WinUI busy state and responsive dialog/navigation behavior that tests cannot show. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis visual task: verify clicking Install new WSL Gateway shows Checking existing setup..., keeps the setup window responsive, and reaches the confirmation dialog on current PR head.

Risk before merge

  • [P1] Current-head real setup/UI proof is still missing, so the busy/disabled button state, responsive window behavior, and confirmation/navigation path are not demonstrated in a real run.
  • [P1] The broader wizard-combination work at Automation validation for wizard combinations #847 remains only partially addressed by representative no-auth unit coverage unless maintainers explicitly accept that narrower scope.

Maintainer options:

  1. Decide the mitigation before merge
    Land the narrow setup UI and diagnostics fixes after current-head real setup/UI proof shows the checking state, responsive dialog/navigation path, and ARM64 wording path; keep the broader wizard matrix tracked separately unless maintainers choose otherwise.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] Human follow-up should wait for contributor-supplied real current-head setup/UI proof; there is no narrow code repair for automation to perform from this review.

Security
Cleared: No concrete security or supply-chain concern found; the diff changes setup UI control flow, diagnostic text, and tests only.

Review details

Best possible solution:

Land the narrow setup UI and diagnostics fixes after current-head real setup/UI proof shows the checking state, responsive dialog/navigation path, and ARM64 wording path; keep the broader wizard matrix tracked separately unless maintainers choose otherwise.

Do we have a high-confidence way to reproduce the issue?

Yes for source-level reproduction of the main setup freeze: current main calls ExistingConfigDetector.Detect synchronously from the install click path, and that detector reads wsl.exe output before the timeout check. No live Windows WinUI/WSL reproduction was run in this read-only review.

Is this the best way to solve the issue?

Yes directionally: moving the pre-dialog setup probe off the UI thread while preserving replacement semantics is the narrow maintainable fix, and the ARM64 wording change is a focused copy/test repair. The remaining blocker is real current-head proof, not a definite code defect found in review.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d08a3e749973.

Label changes

Label justifications:

  • P1: The PR targets a first-run setup hang in the local WSL gateway path and related provider/channel onboarding validation.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body provides tests and source-contract proof but explicitly says visible UI proof is not captured; add redacted current-head setup screenshot, recording, terminal/live output, or logs and update the PR body for re-review.
Evidence reviewed

Acceptance criteria:

  • [P1] Current-head setup/UI proof showing the checking state, responsive window, and confirmation/navigation path with private details redacted.
  • [P1] ./build.ps1.
  • [P1] dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore.
  • [P1] dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore.
  • [P1] dotnet test ./tests/OpenClaw.SetupEngine.Tests/OpenClaw.SetupEngine.Tests.csproj --no-restore.

What I checked:

Likely related people:

  • shanselman: Current-main history and GitHub PR metadata tie shanselman to recent setup UI/test guardrails, setup timeout hardening, and the merged commit that last rewrote the affected setup files before this PR. (role: recent setup UI and validation contributor; confidence: high; commits: 58e363d993f2, 06b63ac6ce7d, 97a87d7413e3; files: src/OpenClaw.SetupEngine.UI/Pages/WelcomePage.xaml.cs, src/OpenClaw.SetupEngine/SetupSteps.cs, tests/OpenClaw.Tray.Tests/AppRefactorContractTests.cs)
  • bkudiess: Recent merged setup wizard protocol resilience and dependency-recovery work touched the central wizard runner and UI paths adjacent to this PR's wizard coverage. (role: recent setup wizard contributor; confidence: medium; commits: 84d2e6ab80c8, 1e6951331f1c; files: src/OpenClaw.SetupEngine/SetupWizardRunner.cs, src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs, docs/ONBOARDING_WIZARD.md)
  • christineyan4: Recent merged install wizard/channel rendering work touched visible channel setup behavior adjacent to the provider/channel coverage added here. (role: adjacent channel wizard contributor; confidence: medium; commits: 992da748c31b, c8c263f27d4c; files: src/OpenClaw.SetupEngine.UI/Pages/WizardPage.xaml.cs, src/OpenClaw.SetupEngine.UI/WizardConsoleTail.cs, tests/OpenClaw.Tray.Tests/WizardConsoleTailTests.cs)
  • TheAngryPit: Recent setup-connect E2E and CI work touched the validation surface that would likely host broader provider/channel matrix proof. (role: adjacent E2E validation contributor; confidence: medium; commits: e70868d82bf0, bb5b127234a7; files: .github/workflows/ci.yml, tests/OpenClaw.E2ETests/Setup/E2ESetupFixture.cs, tests/OpenClaw.E2ETests/Setup/MxcSetupAndConnectTests.cs)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 Urgent regression or broken agent/channel workflow affecting real users now. labels Jun 27, 2026
@shanselman

Copy link
Copy Markdown
Contributor Author

@openclaw-mantis visual task: verify clicking Install new WSL Gateway shows Checking existing setup..., keeps the setup window responsive, and reaches the confirmation dialog on current PR head.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P1 Urgent regression or broken agent/channel workflow affecting real users now. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Virtualization text in setup may be misleading Setup UI becomes unresponsive while installing WSL gateway

1 participant