Skip to content

Fix slow installer upgrades and refresh dependencies - #20

Merged
vokac-nri merged 1 commit into
mainfrom
codex/fix-installer-and-update-dependencies
Jul 16, 2026
Merged

Fix slow installer upgrades and refresh dependencies#20
vokac-nri merged 1 commit into
mainfrom
codex/fix-installer-and-update-dependencies

Conversation

@vokac-nri

Copy link
Copy Markdown
Collaborator

Summary

This PR fixes the installer upgrade phase that appeared to grow indefinitely on systems with an existing legacy Nemotron installation. It also refreshes Wails and other compatible application dependencies so Parley picks up fixes published since the currently pinned versions.

Installer upgrade fix

Root cause

The upgrade was not downloading or reinstalling Nemotron. After the application files and shortcuts were already installed, Wails' generated wails.writeUninstaller macro recursively scanned the entire $INSTDIR tree to calculate the Windows Add/Remove Programs EstimatedSize value.

Older Parley releases stored the optional Nemotron model, Python runtime, package cache, and supporting files below $INSTDIR\resources\nemotron. A preserved legacy installation can contain more than 10 GB and tens of thousands of files. Consequently, the final bookkeeping scan took several minutes, continually increased the displayed Size/Files/Folders counters, and ran during a phase where the NSIS Cancel button was unavailable.

Resolution

  • Replaced the generated Wails uninstaller-registration call with a Parley-specific macro.
  • Preserved the same uninstall executable and Add/Remove Programs metadata.
  • Calculated EstimatedSize from only the shipped Parley executable and bundled CPU Whisper resources.
  • Excluded Nemotron model/runtime/cache data from upgrade-time enumeration.
  • Added a build regression test that rejects both the generated wails.writeUninstaller call and any recursive ${GetSize} "$INSTDIR" scan in Parley's installer.

This does not move, delete, reinstall, or otherwise modify an existing Nemotron installation.

Dependency updates

Dependency Previous Updated
Wails Go module v3.0.0-alpha2.109 v3.0.0-alpha2.117
Wails CLI used by release CI v3.0.0-alpha2.109 v3.0.0-alpha2.117
Wails JavaScript runtime 3.0.0-alpha.95 3.0.0-alpha.97
golang.org/x/sys v0.44.0 v0.47.0
modernc.org/sqlite v1.53.0 v1.54.0
Vite 8.1.0 8.1.5
Tailwind CSS/tooling 4.3.1 4.3.3
Lucide React 1.21.0 1.24.0

The lockfile also picks up compatible Radix and transitive patch/minor releases selected by the existing semver ranges. Wails bindings were regenerated with the matching alpha2.117 CLI; the only semantic generated change synchronizes an existing settings-field comment.

React 18 and TypeScript 5 were intentionally retained. Moving to React 19 or TypeScript 7 would be a separate major-version migration with a wider compatibility and behavioral review surface, and neither is required for this Wails update.

CI continues to use npm install rather than npm ci: Tailwind's bundled optional WASM dependencies currently cause npm to reject its own generated lockfile as missing nested optional packages during a clean install.

Validation

  • go test -count=1 ./...
  • go vet ./...
  • Production-tagged Windows executable build
  • npm run build (TypeScript and Vite production build)
  • Wails TypeScript binding regeneration with v3.0.0-alpha2.117
  • Installer build-configuration regression tests
  • git diff --check

NSIS is not installed on the development workstation, so the release workflow remains the compiler-level Windows installer packaging gate. The custom macro uses standard documented NSIS GetSize, FileOpen, FileSeek, registry, and uninstaller commands.

@vokac-nri
vokac-nri merged commit 708f7df into main Jul 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant