Repository navigation
feat(desktop): add Windows build machines like Linux ones - #3662
Merged
janicduplessis merged 3 commits intoOct 13, 2026
Merged
janicduplessis merged 3 commits into
janicduplessis merged 3 commits into
Conversation
janicduplessis
added this pull request to stack #3619
October 13, 2026 08:42
janicduplessis
force-pushed
the
feat/3659-windows-desktop-wizard
branch
from
October 13, 2026 08:51
0341430 to
a47ec29
Compare
janicduplessis
marked this pull request as ready for review
October 13, 2026 16:50
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Oct 13, 2026
janicduplessis
force-pushed
the
feat/3659-windows-desktop-wizard
branch
from
October 13, 2026 17:58
a47ec29 to
0d2268a
Compare
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Oct 13, 2026
janicduplessis
force-pushed
the
feat/3659-windows-desktop-wizard
branch
from
October 13, 2026 19:11
0d2268a to
5b22003
Compare
janicduplessis
force-pushed
the
feat/3659-windows-desktop-wizard
branch
from
October 13, 2026 20:29
5b22003 to
4c47583
Compare
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.
Description
Depends on #3653 (stack: #3610 -> #3618 -> #3621 -> #3631 -> #3638 -> #3639 -> #3647 -> #3653 -> this).
Windows machines can now take offloaded Android builds (#3640) and run
stim-server serviceandstim-server setup --buildas a per-user scheduled task (#3658). Stim Desktop still left them out:Solution
A Windows peer (Tailscale
OS: "windows") gets the same treatment as a Linux one.TailnetOSgainswindows, and the Linux-only branches now key on "not macOS" (buildsAndroidOnly). Setup-related functions take the peer'sTailnetOSinstead of a Linux flag.For a Windows peer, the wizard:
npx.cmd. Plainnpxresolves to npm'snpx.ps1, which the default script execution policy on Windows desktops (Restricted) blocks.@of@stim-cli/server@…as its splatting operator.--path-prependremedy for a version manager'snode.exeshim, as feat: run stim-server service and setup on Windows #3658 documents.Outside the wizard, the remote machine tip, the Machine page empty state, and the new-peer and build-slot suggestions count Windows peers. A Windows row hides the Simulators toggle. The hosted-simulators tip and the device-limit suggestion stay Mac-only.
The CLI rules from #3639 and #3653 already key on "not macOS" (doctor's device-host ask,
cannotHost, the device pool and hosting candidates). This PR adds Windows cases to their tests.The generated
npx --package "@stim-cli/server@<version>"command works on Windows only once a published server release includes #3658, which lives on its own branch off #3631.Test plan
Fixture renders, and a real
windows-latestrunner on the tailnet asstim-windows-wizard, prepared from #3658's branch through a throwaway branch'swindows-debug.yml.This MacBook's screen was locked, so I drove
AddMachineModelwith its production dependencies from an uncommitted XCTest harness: realtailscale status, the HTTPS journal probe, this branch's CLI, and a scratchSTIM_HOME.stim-windows-wizard(and another agent'sstim-windows-paths) as Windows peers. Picking it set Builds only.npx --packagewith feat: run stim-server service and setup on Windows #3658's built server and added--yes, because npm has no release with Windows setup. The backtick continuation parsed.stim-server deviceslisted only the build request, so no device-host request was sent.npx --yes --package "@stim-cli/server@1.20.2" stim-server --versionprinted1.20.2in PowerShell, so the quoted form parses. The runner's command usednpx, notnpx.cmd; the switch tonpx.cmdcame after the runner was stopped, and it rests on npm installingnpx.cmdnext tonpx.ps1.The real "Set it up" capture predates the mirror's "waiting for approval in PowerShell" wording, which a unit test covers.
Unit tests cover:
macsunchanged;windowspeer.Fixes #3659