Summary
Today users must watch GitHub Releases and reinstall manually. Installed OpenPolySphere should:
- Check for updates — on startup, at most once per day in the background, and on demand from the UI (“Check for updates”).
- Offer an update — show current vs available version, short release notes, and actions: Update / Later / Skip this version.
- Update itself across all supported install methods — without losing user data (settings, models, call history).
Same behavior on every OS; only the install mechanism for the release artifact differs.
Platforms and formats (v0.4.2+)
| OS |
Install method |
Release artifact |
| macOS arm64 / x64 |
.dmg → Applications |
openpolysphere-*-macos-{arm64|x64}.dmg / .zip |
| Windows |
Inno Setup |
openpolysphere-*-windows-x64-setup.exe / portable .zip |
| Linux |
.deb / .rpm / portable .zip |
openpolysphere_*_amd64.deb, .rpm, .zip |
User data is already outside the bundle/install dir:
- macOS:
~/Library/Application Support/OpenPolySphere/
- Linux (deb/rpm):
~/.local/share/OpenPolySphere/ or $XDG_DATA_HOME
- Windows (installer):
%LOCALAPPDATA%\OpenPolySphere\
Updates must not touch models, settings, or the DB in those directories.
Current state
- Product version comes from the release tag (
v0.4.2) at package time (Info.plist, artifact names); workspace crates in Cargo.toml are still 0.1.0.
translator has no version/update API or UI yet.
- Source of truth for new versions: GitHub Releases API (
GET /repos/org-event/OpenPolySphere/releases/latest).
- No code signing / notarization on macOS yet — silent installs will stay limited until signing exists.
Proposed phases
1. Versioning and check
2. Self-update per platform
3. Reliability and UX
Acceptance criteria
- Installed v0.4.x on each of the three OSes sees a new release within a day or immediately via the button.
- User can update from the app without hunting GitHub (at minimum portable + Windows installer; deb/rpm may use guided one-command install).
- After update, settings, models, and call history are preserved.
- CI: unit tests for semver parsing and correct asset selection by
(os, arch).
Out of scope (separate issues)
- Apple notarization and signed updates (Sparkle /
tauri-plugin-updater).
- Delta/patch updates, beta channel, rollback.
Related
- Release workflow:
.github/workflows/release.yml
- User data paths:
crates/translator/src/paths.rs
- Packaging:
scripts/package-{macos-app,linux,windows}.*
- Tauri/updater notes:
docs/tauri-next.md
Help wanted: phase 1 can land as its own PR; phase 2 — one platform at a time. Architecture feedback welcome.
Summary
Today users must watch GitHub Releases and reinstall manually. Installed OpenPolySphere should:
Same behavior on every OS; only the install mechanism for the release artifact differs.
Platforms and formats (v0.4.2+)
.dmg→ Applicationsopenpolysphere-*-macos-{arm64|x64}.dmg/.zipopenpolysphere-*-windows-x64-setup.exe/ portable.zip.deb/.rpm/ portable.zipopenpolysphere_*_amd64.deb,.rpm,.zipUser data is already outside the bundle/install dir:
~/Library/Application Support/OpenPolySphere/~/.local/share/OpenPolySphere/or$XDG_DATA_HOME%LOCALAPPDATA%\OpenPolySphere\Updates must not touch models, settings, or the DB in those directories.
Current state
v0.4.2) at package time (Info.plist, artifact names); workspace crates inCargo.tomlare still0.1.0.translatorhas no version/update API or UI yet.GET /repos/org-event/OpenPolySphere/releases/latest).Proposed phases
1. Versioning and check
OPENPOLYSPHERE_VERSIONfrom CI/tag).GET /api/version—{ "version": "0.4.2", "channel": "stable" }.2. Self-update per platform
.exe, run/SILENTor/VERYSILENT(Inno), restart when done.pkexec/sudo+apt install ./…deb/dnf install ./…rpm, or fallback with a ready terminal command..zipor mount.dmg, replace/Applications/OpenPolySphere.app(via helper/launcher with permissions); Gatekeeper without signing — explicit warning for now.3. Reliability and UX
docs/updates.md+ site/README notes.Acceptance criteria
(os, arch).Out of scope (separate issues)
tauri-plugin-updater).Related
.github/workflows/release.ymlcrates/translator/src/paths.rsscripts/package-{macos-app,linux,windows}.*docs/tauri-next.mdHelp wanted: phase 1 can land as its own PR; phase 2 — one platform at a time. Architecture feedback welcome.