Why
The installer runs wsl --update through the Microsoft Store path with a 90s silsilent-timeout job — on Store-blocked corporate networks it silently skips, and Docker Desktop later confronts the user with its own "install WSL" dialog + reboot. This is the root of the "every user has to install WSL themselves" experience. The job also re-runs (up to 90s) on every installer re-run, even when the kernel is current, and its output goes only to the log.
Where
scripts/install-k8s.ps1 (v1.9.6): L413–447.
Scope
- Skip when current: parse
wsl --status / wsl --version before updating.
- Prefer
wsl --update --web-download (bypasses the Store); fall back to the WSL MSI from github.com/microsoft/WSL releases (host already on the documented egress allowlist), checksum-verified.
- Surface failure + the exact next step on screen instead of swallowing into the log.
Acceptance criteria
- Store-blocked machine: kernel updated without any Docker Desktop WSL prompt.
- Machine with current WSL: the whole block completes in <2s on re-run.
Why
The installer runs
wsl --updatethrough the Microsoft Store path with a 90s silsilent-timeout job — on Store-blocked corporate networks it silently skips, and Docker Desktop later confronts the user with its own "install WSL" dialog + reboot. This is the root of the "every user has to install WSL themselves" experience. The job also re-runs (up to 90s) on every installer re-run, even when the kernel is current, and its output goes only to the log.Where
scripts/install-k8s.ps1(v1.9.6): L413–447.Scope
wsl --status/wsl --versionbefore updating.wsl --update --web-download(bypasses the Store); fall back to the WSL MSI fromgithub.com/microsoft/WSLreleases (host already on the documented egress allowlist), checksum-verified.Acceptance criteria