Add uninstall choice for local WSL gateway - #591
Conversation
Prompt users during uninstall before removing the local WSL gateway and route the uninstall through a direct WSL cleanup helper so OpenClaw binaries are not launched from the install directory. The helper unregisters OpenClawGateway, cleans setup-managed gateway artifacts, and preserves generated gateway state when the user declines removal. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs maintainer review before merge. Reviewed May 29, 2026, 5:55 PM ET / 21:55 UTC. Summary Reproducibility: not applicable. as a bug reproduction; this PR changes installer behavior. The PR body plus inspected screenshots give a high-confidence behavior path for the prompt/progress/completion flow, while cleanup postconditions are supported by contributor smoke notes. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the interactive uninstall flow once maintainers accept the installer-owned direct cleanup path, keeping the reparse-point guard and silent/Yes/No smoke coverage as the merge standard. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction; this PR changes installer behavior. The PR body plus inspected screenshots give a high-confidence behavior path for the prompt/progress/completion flow, while cleanup postconditions are supported by contributor smoke notes. Is this the best way to solve the issue? Yes, with maintainer acceptance: copying the helper to AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 64b650cb3313. Label changesLabel changes:
Label justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
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
|
Refuse recursive gateway directory deletion when the target is a junction or symlink, matching the SetupEngine safety guard and preventing cleanup from crossing outside the app-owned WSL directory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@clawsweeper re-review please. I added a reparse-point guard before recursive deletion of the app-owned WSL gateway directory and pinned it with installer assertion coverage. Validation rerun: PowerShell parser, targeted InstallerIssAssertionTests, ./build.ps1, Shared tests, Tray tests, reparse-point dry-run, and ARM64 Inno compile all passed. |
|
🦞👀 I queued a lightweight read-only assist pass. It will post a separate answer comment and will not edit the durable ClawSweeper review comment or trigger close, merge, repair, label, or branch changes. Request: re-review please. I added a reparse-point guard before recursive deletion of the app-owned WSL gateway directory and pinned it with installer assertion coverage. Validation rerun: PowerShell parser, targeted InstallerIssAssertionTests, ./build.ps1, Shared tests, Tray tests, reparse-point dry-run, and ARM64 Inno compile all passed. |
|
ClawSweeper assist: This needs a full correctness re-review, not a lightweight Q&A answer. The supplied context shows the prior blocker was the missing reparse-point guard, and the PR now has a new commit claiming to add that guard plus assertion coverage. Evidence:
Suggested next action: Use Source: #591 (comment) |
Summary
This changes the Windows installer uninstall flow so users explicitly choose whether the local WSL gateway should be removed.
OpenClawGatewayWSL distro.{app}during uninstall, preventing install-directory file locks.--terminate,--shutdown,--unregister) and waits synchronously before uninstall continues.Screenshots
Standard uninstall confirmation
New local gateway choice prompt
Gateway removal progress
Completion dialog
Verification
Automated validation:
./build.ps1dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restoredotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restorescripts/Uninstall-LocalGateway.ps1InstallerIssAssertionTests./scripts/build-inno-local.ps1 -Arch arm64 -Fast -Version 0.0.0-local -NoPublishReal installer smoke validation with disposable temp install roots and a disposable imported
OpenClawGatewayWSL distro:Cleanup checks after smoke validation:
OpenClawGatewaydistro remained.openclaw://protocol registration was restored after each smoke run.