Skip to content

app-updater: minOsVersion gating, optional notes, macOS permission fixes (#565) - #609

Merged
stenya merged 4 commits into
developmentfrom
feature/2026-07-app_update_imporovements
Aug 20, 2026
Merged

app-updater: minOsVersion gating, optional notes, macOS permission fixes (#565)#609
stenya merged 4 commits into
developmentfrom
feature/2026-07-app_update_imporovements

Conversation

@stenya

@stenya stenya commented Aug 20, 2026

Copy link
Copy Markdown
Member

app-updater: minOsVersion gating, optional notes, macOS permission fixes (#565)

Summary

Changes

- minOsVersion OS compatibility gating

Adds support for an optional minOsVersion field in the update JSON. When present:

  • The automatic update checker silently skips the notification if the running OS is older than the required version.
  • The manual "Check for updates" dialog shows an informational warning and hides the download button instead of offering an uninstallable update.
  • Omitting the field keeps existing behavior (fully backward-compatible).

Supported format: "X", "X.Y", or "X.Y.Z" (e.g. "12" for macOS 12+, "10.0.19041" for Windows 10 build 19041+).
The check fails open - if the OS version cannot be parsed, the update is shown.

- Optional generic.notes in the update dialog

The update dialog now renders generic.notes (if present in the update JSON) as pre-formatted text above the release notes section.

- macOS updater: umask and permission handling (#565)

  • Sets umask 022 at the top of install.sh so files copied during an update are world-readable even when the parent process runs with a restrictive umask (e.g. 077).

Testing

  • Auto-update notification is suppressed when minOsVersion exceeds current OS
  • Auto-update notification appears normally when minOsVersion is met or absent
  • Update dialog shows orange warning and hides download button for incompatible OS
  • generic.notes renders above release notes; absent field renders nothing
  • macOS update succeeds when parent process has umask 077

stenya added 4 commits August 6, 2026 12:42
- set umask to 022 in updater install script
- normalize installed app bundle permissions after copy
- enforce root:wheel ownership and readable/traversable modes for users
- fail update and restore backup if permission normalization fails

#565
…uired version

Add optional minOsVersion field support in update.json. When present, the
auto-update checker silently skips the notification if the running OS is older
than the required version. The manual "Check for updates" dialog shows an
informational message instead. Backward-compatible: omitting the field applies
no restriction.
…nt daemon rights regressions (#565)

- keep restrictive-umask mitigation via umask 022 in update install script
- remove updater-side chmod/chown normalization step from execution path
- document why normalization is disabled (daemon requires strict rights for bundled static files in Contents/Resources/etc)
- retain normalization snippet as commented reference only

#565
@stenya
stenya merged commit 08fe343 into development Aug 20, 2026
8 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