v0.4.0
No more silent failures: every step of install, reuse, migrate and launch is checked, reported honestly, and recoverable.
Install tells the truth
setup.pyexit code propagated with actionable hints — a dead install can never reportInstallation complete!again; failure offers Retry + Copy diagnostics- Success gated on a post-install smoke test (
import torch+ CUDA visible on NVIDIA), not just exit code 0 - Task list tracks what
setup.pyactually emits ([*] Install <Component>headers + uv package lines) — phases no longer stick on PENDING mid-install - Exact Python pin preflight (
uv self update→ provision → run-verify → force-reinstall if corrupt, downloads forced on, uv data-drive space checked); pin read from upstreamsetup_config.jsonso the next bump can't re-open the hole - Missing-tool checks (
git/uv/python/conda) actually trigger now
Reuse, migrate & clean, safely
- Target-folder triage: empty / healthy / broken-env / repo-no-env / Pinokio / foreign, with Fresh / Install-repair / Choose-empty-folder choices instead of blind merges
- "Use existing" validates first (python exists + runs) and offers repair on failure
- Reinstall always asks first: backup dialog with folder sizes, optional plugins/settings backup (restored automatically), per-model Move-to… rows
move_folderhas live progress, locked-file tolerance and post-verify; model-drive disk gates (warn <50 GB, block <10 GB per drive)- Pinokio trees detected and refused (install/repair/wipe/uninstall) — one-click "reuse its models in a fresh install" instead; reusing a Pinokio install directly is not supported
- Drive roots auto-resolve (
J:\→J:\Wan2GP); picked folders stick even before they exist (fixed fallback toC:\Wan2GP); missing previous install (disconnected drive) warns instead of a blank first run - Keep/Update/Skip choices only appear for healthy installs; uninstall and post-uninstall return to the installer, never an empty dashboard
- Manage → Updates has "🧭 Run Setup again"; uninstall is an explicit Keep my models / Delete everything (sizes shown, AGREE to confirm) / Cancel modal
- Migration modal: explicit Move & restart vs Just switch to it (no second popup, drive roots auto-resolve)
- Live download panel during install: per-file rows with sizes, animated bars and installed versions parsed from uv output
- Active Environment has "reinstall": full env recreate (venv, Python, torch, kernels, smoke test) — "restore" only re-pips requirements
Launch & everyday polish
- Launch pre-flights
import torchand refuses with directions instead of a traceback; exit codes render as numbers; Launch buttons need repo + active env - Default browser honored: Brave/Opera/Vivaldi detected (fixed
%LocalAppData%expansion + Program Files candidates); fallback is logged, successful launches log the browser used - Installer overview shows full per-profile versions (Triton/Sage/Sparge/Flash, kernel labels) like Electron
- Plugin updates highlighted (amber row + bold badge); env unlink narrates deletions (per-directory lines + live current file); unlink/restore hidden without a repo;
[LAUNCH ERROR] undefinedfixed everywhere