Repository navigation
feat(desktop): dual-path WSL install from the storage bundle - #202
Merged
Merged
Conversation
The storage bucket now hosts the hand-uploaded wsl.zip (verified live, 643MB): the pinned WSL runtime MSI plus the Ubuntu 24.04 distro image for the WSL servers feature. One zip means a corporate whitelist rule covers a single URL; the member names are constants because the install flow extracts them by exact name. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Install WSL and Install Ubuntu-24.04 now prefer the pinned wsl.zip from the codev storage host: download, extract members by exact name (zip.js, streamed, testable off Windows), enable VirtualMachinePlatform via offline dism and run the MSI quietly behind a single UAC prompt, or import the bundled distro image with --from-file. The original Microsoft-facing wsl --install paths remain as fallback, taken only when the bundle cannot be obtained — a completed-but-failed elevated install is never retried behind a second UAC prompt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Implements the dual-path WSL installer (the last Phase 3 item besides desktop wiring), consuming the storage bundle at
installers/wsl.zip(verified live: HTTP 200, 643,155,865 bytes).Constants (
@codev/sandboxconst.ts, fork-only)WSL_INSTALLER_ZIP_URL—${INSTALLERS_BASE_URL}/wsl.zip, the single artifact a corporate whitelist rule has to coverWSL_INSTALLER_MSI_NAME—wsl.2.7.11.0.x64.msi(pinned runtime; version rides in the filename)WSL_DISTRO_IMAGE_NAME—ubuntu-24.04.4-wsl-amd64.wsl(distro image for the WSL servers feature; the sandbox rootfs still ships via the image manifest)Install flow (
packages/desktop/src/main/wsl/install-bundle.ts, fork-only)dism /enable-feature VirtualMachinePlatform+msiexec /qn— a single UAC prompt for both steps, with 3010 (reboot required) treated as success and picked up by the existing pending-restart handling.Ubuntu-24.04imports the bundled image viawsl --install --from-file --no-launch; other names keep the--web-downloadpath.wsl --installpaths run only when the bundle cannot be obtained (download/extract failure, non-x64 machine). A completed-but-failed elevated install returns as-is — no second UAC prompt for the same failure.Upstream edits (DIVERGENCES row added)
wsl/runtime.ts: three internals gainexport(runPowerShell,runInteractiveCommand,resolveSystem32Command); no behavior changewsl/servers.ts: theinstall-wsl/install-distrojobs call the dual-path functions; sameWslCommandResultshape, so job/error handling is untouchedCHANGELOG entry added under Unreleased.
Testing
install-bundle.test.ts: download+extract+cache behavior against an in-memory zip, missing-member failure, elevated-script quoting + 3010 tolerance, bundled-distro name matching🤖 Generated with Claude Code