fix(desktop): complete setup for standard Windows users - #560
Merged
Merged
Conversation
davidmckayv
requested review from
MikeRyanDev,
guidovizoso,
mxmzb and
tylerslaton
as code owners
September 15, 2026 16:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Launching OpenBot as a standard Windows user failed during setup because
Get-WindowsOptionalFeaturerequires elevation. Read WSL and Virtual Machine Platform state throughWin32_OptionalFeature, and recognize modern WSL installations throughWslService. Unknown or unreadable states still produce detection errors, and missing prerequisites retain their existing setup guidance.Windows CI now runs the native setup probe under a temporary Users-only account with its own loaded profile. It selects the exact executable from Cargo's build output, requires one passing test, and removes the temporary account, profile, and files afterward.
If Windows Installer returns policy rejection 1625 while installing Podman, setup now tells the user to ask an administrator to allow installation or install Podman for their account. The error retains its exit code and log path, without retrying or changing Windows policy.
Setup also recognizes an existing stopped default Podman machine. Podman's quiet output appends
*to the default machine name, so the previous exact comparison missedopenbot*and attempted duplicate initialization. Detection now reads the rawNamefrom JSON output; unreadable output remains an error.A fresh Windows account also reached container startup and migrations but could not start the host API because Bun was absent. Setup now acquires the repository-pinned Bun 1.3.14 runtime in the current user's OpenBot folder using a pinned SHA256, extracts only the expected executable, checks its version, and passes its absolute path to dependency installation and host startup. Existing Bun installations are retained; download, extraction, and runtime failures preserve their diagnostics.
Fixes FOR-307
Where it runs
Prerequisite detection runs in the local Windows desktop process, and machine detection runs during desktop engine setup. CI creates a temporary local account and profile, then removes them after the test. There is no new server state, cross-process serialization, browser fan-out, listener, port, or schedule; a second server replica behaves as before.
Boundary and audit
The prerequisite probes are read-only. Server gateway calls, authorization, client trust, and audit events are unchanged.
Changelog
No changelog entry: this changes desktop prerequisite and engine detection, installation guidance, and CI coverage; an already-running server deployment behaves the same.
Proof
e4c5062b: CI has 19 successful checks, 3 skipped, no failures or pending checks. Includes the native Windows prerequisite test under a real Users-only account.OpenBotStandardUsers-only account in its own AppData profile, and verified that the desktop process was not elevated. The original app reproduced the reported elevation error; this build passed the prerequisite checks.computer_navigatecall tohttps://example.com, returningExample Domain, and a realshowLineChartcall with Jan=120, Feb=180, Mar=240. Visually inspected screenshots show the actual page in the app's expanded assistant screen and the rendered chart titledWindows standard-user check. This is supported by persisted tool calls/results, not just the assistant's claim.55569917-dab5-857a-bfe3-9324b633d3d5, agentpicked-harness.Validation environment: AWS Windows Server 2022. Its default
DisableMSI=1policy blocked unmanaged per-user MSI installation; the test VM policy was temporarily set to0and restored immediately after prerequisite installation. OpenBot does not change that policy and now explains policy rejection 1625. After the test harness lost its generated account password, the task-owned account was recovered and a fresh configuration root was used with the same installed build and already-validated engine/runtime. OpenAI credentials were entered through the real setup UI. The earlier Qwen refusal and failed automated prompt submission were superseded by the successful OpenAI turn; no speculative product fix was added for those harness/model failures.AWS validation instance confirmed stopped after evidence capture. PR is ready for review; no merge performed.