Consolidate setup UI into tray host - #690
Conversation
Host setup UI from the tray executable and use a guarded self-restart after setup completes. Remove the separate setup UI executable from build, signing, and Inno packaging while keeping setup engine/UI code isolated as referenced projects. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Delay setup and hub activation until initial frame content is ready, and prevent setup startup from also processing hub deep links. This avoids blank shells without placeholder loading UI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove duplicate disconnect from the hosted setup wizard cancellation path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs maintainer review before merge. Reviewed June 5, 2026, 1:26 PM ET / 17:26 UTC. Summary Reproducibility: not applicable. this is a packaging/topology PR rather than a bug report. The relevant behavior is release/installer flow validation, which the PR body reports for build, tests, local x64 installer, fresh install, and uninstall. 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 only after maintainers explicitly accept the single-executable setup topology and verify release-style x64/ARM64 installer, upgrade, protocol shortcut, restart, and uninstall behavior; otherwise preserve a supported compatibility entrypoint. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a packaging/topology PR rather than a bug report. The relevant behavior is release/installer flow validation, which the PR body reports for build, tests, local x64 installer, fresh install, and uninstall. Is this the best way to solve the issue? Unclear until maintainer acceptance: hosting setup in the tray is a coherent way to remove dual-app deployment, but the best permanent answer depends on whether maintainers accept dropping standalone setup executable entrypoints. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 99efc50cbc22. Label changesLabel justifications:
Evidence reviewedWhat 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
|
Log autostart enable failures after setup without blocking the tray restart handoff. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
This PR folds the setup experience into the main
OpenClaw.Tray.WinUIapp so we no longer package and deploy a second setup executable alongside the tray app.The setup engine and setup UI projects remain separate to preserve clean separation of concerns, but the setup UI is now hosted by the tray process. This keeps the previous setup flow and handoff behavior intact while reducing packaging complexity, avoiding dual-app deployment/runtime issues, and lowering installer size.
What changed
OpenClaw.Tray.WinUIinstead of launchingOpenClaw.SetupEngine.UI.exe.OpenClaw.SetupEngineandOpenClaw.SetupEngine.UIas separate projects/layers for maintainability.Why
Previously, setup shipped as a separate app. That created duplicated deployment concerns: both apps needed compatible packaging/runtime behavior, signing expectations, payload validation, and setup handoff handling.
By hosting setup inside the tray app, we reduce installer size and remove the second app deployment surface while preserving the existing setup UX.
Validation
./build.ps1dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore— 2045 passed, 29 skippeddotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore— 940 passed./scripts/build-inno-local.ps1 -Arch x64 -Fast