Problem
The Windows tray currently appears to ship through three different distribution/update paths:
-
Inno Setup installer via installer.iss
- Release workflow builds
OpenClawTray-Setup-x64.exe and OpenClawTray-Setup-arm64.exe.
- This looks like the friendly/default install path.
-
Portable ZIP artifacts
- Release workflow builds
OpenClawTray-<version>-win-x64.zip and OpenClawTray-<version>-win-arm64.zip.
- Workflow comments say these ZIPs are for Updatum auto-update.
- App code configures Updatum like a portable/single-file update flow, not like installer/MSIX update flow.
-
MSIX packages
- CI/release builds
OpenClawTray-<version>-win-x64.msix and OpenClawTray-<version>-win-arm64.msix.
- Release notes describe MSIX as useful for packaged Windows consent surfaces such as camera/microphone permissions.
That means install/update behavior is ambiguous: a user may install with the .exe, but the in-app updater may consume ZIP assets; MSIX has its own install/update semantics but is not wired into the in-app updater.
Why this matters
We should make a deliberate packaging decision before the Windows tray gets broader distribution:
- avoid users accidentally crossing install technologies during update
- avoid duplicated signing/release complexity if we do not need all formats
- define which package is the supported/default path
- define how camera/microphone/screen permissions should behave for unpackaged vs packaged installs
- make Updatum asset selection explicit and tested
Current evidence
installer.iss is active in the tag release workflow and builds signed installer .exe assets.
.github/workflows/ci.yml builds portable ZIPs and comments that they are for Updatum auto-update.
.github/workflows/ci.yml also builds MSIX packages.
App.xaml.cs configures UpdatumManager with InstallUpdateSingleFileExecutableName = "OpenClaw.Tray.WinUI" and does not explicitly target installer or MSIX assets.
Decision needed
Pick one of these strategies:
- Installer-first: EXE installer is the blessed install/update path; configure updater to download/run the installer, and demote ZIP/MSIX as secondary/manual assets.
- Portable-first: ZIP is the blessed install/update path; keep Inno only for convenience install and document that it transitions to ZIP-based self-update.
- MSIX-first: MSIX is the blessed install/update path; use MSIX/App Installer update semantics and remove or demote the custom updater/installer.
- Hybrid, explicitly supported: keep multiple paths, but document and test which updater applies to each installed form.
Proposed acceptance criteria
- Document the supported/default install path in README/release notes.
- Document whether
.exe, .zip, and .msix are primary, secondary, or deprecated.
- Make Updatum asset selection explicit, including architecture matching.
- Add/update tests or a release checklist proving the updater downloads the intended asset type.
- Ensure the updater does not accidentally update an MSIX install with ZIP files or an installer install with an incompatible portable layout.
- If multiple install paths remain, document how each one updates.
Problem
The Windows tray currently appears to ship through three different distribution/update paths:
Inno Setup installer via
installer.issOpenClawTray-Setup-x64.exeandOpenClawTray-Setup-arm64.exe.Portable ZIP artifacts
OpenClawTray-<version>-win-x64.zipandOpenClawTray-<version>-win-arm64.zip.MSIX packages
OpenClawTray-<version>-win-x64.msixandOpenClawTray-<version>-win-arm64.msix.That means install/update behavior is ambiguous: a user may install with the
.exe, but the in-app updater may consume ZIP assets; MSIX has its own install/update semantics but is not wired into the in-app updater.Why this matters
We should make a deliberate packaging decision before the Windows tray gets broader distribution:
Current evidence
installer.issis active in the tag release workflow and builds signed installer.exeassets..github/workflows/ci.ymlbuilds portable ZIPs and comments that they are for Updatum auto-update..github/workflows/ci.ymlalso builds MSIX packages.App.xaml.csconfiguresUpdatumManagerwithInstallUpdateSingleFileExecutableName = "OpenClaw.Tray.WinUI"and does not explicitly target installer or MSIX assets.Decision needed
Pick one of these strategies:
Proposed acceptance criteria
.exe,.zip, and.msixare primary, secondary, or deprecated.