Files
OpenNest/docs/auto-update.md
T
ajandClaude Sonnet 5 18d63ffd61 feat(desktop): add Velopack auto-update support
Lets the desktop app self-update like CncSender, but only restarts after
the user confirms via a clickable status-bar prompt -- an open, unsaved
nest must never be discarded automatically. The feed URL is a blank-by-
default, per-machine setting (File > Options), since it's operator
infrastructure that doesn't belong in source control; Deploy-OpenNest.ps1
packages releases for whatever feed host/path the operator supplies.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-12 06:54:46 -04:00

1.6 KiB

Desktop auto-update

The Windows desktop app (OpenNest.exe) can self-update via Velopack: OpenNest.UpdaterService polls a static file feed every 30 minutes, downloads a newer release in the background, and only restarts to apply it after the user confirms (a clickable status-bar item appears once a download finishes). It never force-restarts; an open, unsaved nest is never discarded automatically.

Configuring the feed

The feed URL is a per-machine setting (OpenNest.Properties.Settings.UpdateFeedUrl), set from File > Options > Auto-update feed URL. It is blank by default, which disables update checks entirely — this is intentional: the feed URL is operator infrastructure, not something that belongs in source control, so no default ships in the repo. Enter a feed's base URL (http://host:port) and restart the app to pick it up.

Velopack only applies updates to an installed copy (UpdateManager.IsInstalled); running from a build output directory never attempts an update.

Hosting a feed

Any static file server that can serve a vpk pack output directory works. scripts/Deploy-OpenNest.ps1 builds a self-contained win-x64 publish, packs it with the vpk CLI (dotnet tool install -g vpk), and scps the result to a directory you provide:

./scripts/Deploy-OpenNest.ps1 -FeedHost <host> -FeedUser <user> -RemoteDataDir <path>

Bump <Version> in OpenNest/OpenNest.csproj before each run. This is independent of the GitHub release process and of Publish-Windows.ps1 — the latter always overrides <Version> via -p:Version, so the two don't conflict.