Uh oh!
There was an error while loading. Please reload this page.
fix(installer): honest progress + runnable remedies for WSL GPU setup (#415) - #449
Merged
Merged
Conversation
…#415) The NVIDIA container toolkit setup ran entirely through Log (file-only), so the console sat blank through the 30s WSL probe, the multi-hundred-MB Ubuntu install, and the 180s toolkit install — and on failure printed a vague "set it up manually inside WSL later" with no actual commands. - Add Wait-JobWithProgress: spinner + elapsed/timeout heartbeat while a background job runs, bounded, stops the job on timeout. No GPU sub-step now goes silent for more than ~2s. - Add Show-GpuManualRemedy: copy-pastable install commands (same --tlsv1.2 + connect/max-time floor as the automated path) plus a `tracebloc doctor` follow-up, printed on every timeout/failure branch. - Ubuntu install is now a progress-tracked job instead of a silent `cmd /c ... | Out-Null`. - Visible Info intro (optional; CPU mode works either way) + Ok on success; drop the vague dead-end copy. - Extract shared spinner frames ($script:SpinnerFrames). - 11 Pester tests. Acceptance: no silent window >10s; timeout output carries runnable remedies. Kept in Step 1 (the --gpus flag must be decided before New-K3dCluster; moving it would force cluster recreation, #431). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
shujaatTracebloc
marked this pull request as draft
July 28, 2026 11:55
shujaatTracebloc
marked this pull request as ready for review
July 28, 2026 13:28
saadqbal
approved these changes
Jul 28, 2026
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 freeto 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.
Closes#415.
Problem
On a GPU machine the NVIDIA container toolkit setup inside WSL2 ran entirely through
Log(which writes to the log file only), so the console sat blank through the 30s WSL probe, the multi-hundred-MB Ubuntu install, and the 180s toolkit install. On timeout it printed a vague "You can set it up manually inside WSL later" / "GPU setup may need manual attention" with no actual commands.Fix
Wait-JobWithProgress— waits on a background job with a spinner +elapsed / timeoutheartbeat, bounded, stops the job best-effort on timeout. Every long GPU sub-step (WSL probe, Ubuntu install, toolkit install, verify) now goes through it, so no window is silent for more than ~2s.Show-GpuManualRemedy— prints copy-pastable remedy commands (mirroring the in-WSL steps, carrying the same--tlsv1.2 --connect-timeout 30 --max-time 30floor as the automated path) and atracebloc doctorfollow-up. Called on every timeout/failure branch.cmd /c "wsl --install -d Ubuntu" | Out-Null.Infointro (optional; CPU mode works either way) +Okon success; the vague dead-end copy is gone.$script:SpinnerFrames(reused byWait-ProcessWithDeadline).GPU setup stays in Step 1 (before
New-K3dCluster) because the--gpusflag must be decided there; moving it post-install would force cluster recreation — the exact churn #431 warns about. It remains non-fatal, so CPU mode always completes cleanly.Acceptance criteria
tracebloc doctor)Tests
11 new Pester tests (
Wait-JobWithProgress,Show-GpuManualRemedy,Install-NvidiaContainerToolkit).Verified locally (CI-identical):
check-style.sh: cleanNote
Low Risk
Installer-only UX and error messaging for best-effort GPU setup; behavior remains non-fatal with CPU fallback, covered by new Pester tests.
Overview
Improves Windows installer UX for optional NVIDIA container toolkit setup in WSL2 (#415): long steps no longer leave the console silent, and failures print actionable recovery steps instead of vague hints.
Wait-JobWithProgresspolls background jobs with a shared braille spinner andelapsed / timeoutline (~2s heartbeat), stops the job on timeout, and replaces bareWait-Jobfor WSL list, Ubuntu install, toolkit install, and verify. Spinner frames move to$script:SpinnerFrames(also used byWait-ProcessWithDeadline).Show-GpuManualRemedyprints copy-pastable WSL commands (matching the automated path) plustracebloc doctoron timeout/failure branches. Ubuntu install runs in a progress-tracked job (600s cap) instead of silentcmd /c | Out-Null. VisibleInfo/Oklines replace log-only progress; GPU setup stays non-fatal (CPU fallback).Pester tests lock the new helpers and GPU flow contracts;
manifest.sha256updated forinstall-k8s.ps1.Reviewed by Cursor Bugbot for commit b83c7b1. Bugbot is set up for automated code reviews on this repo. Configure here.