Skip to content

feat(update): launch-time update checker with snooze and dependency alerts - #53

Merged
mcoliver merged 1 commit into
mainfrom
feature/launch-update-checker
Sep 27, 2026
Merged

mcoliver merged 1 commit into
mainfrom
feature/launch-update-checker

Conversation

@mcoliver

@mcoliver mcoliver commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Addresses Issue #34.

This PR introduces automatic launch-time checking for OpenUTV updates, addressing user needs for polite notification, snooze controls, and Windows dependency update alerts without interrupting critical pipeline workflows.

Architectural Decisions

  • Check & Alert (Non-blocking): We notify the user rather than forcing silent background updates in-place. Silently rewriting binaries during playback or session work can cause file locking, library collisions, or breaking active studio sessions.
  • Snooze & Skip Controls:
    • Remind Me Tomorrow (1 Day): Mutes startup checks for 24 hours.
    • Remind Me in 1 Week (7 Days): Mutes startup checks for 7 days.
    • Skip This Version: Permanently suppresses alerts for the specific release version while still allowing future releases to be reported.
  • Detached Startup Check: Initiated via detached background thread/process so UTV startup time is unaffected (0ms blocking latency).
  • Windows OpenUTVDeps Detection: Inspects installed OpenUTVDeps runtime installations (directory patterns and Windows Uninstall registry) and queries GitHub releases for utv-dependencies, alerting users if their core runtime is outdated and providing a direct link or installer.
  • Package Manager Integration:
    • macOS: Offers Homebrew Cask upgrade if installed via utv cask.
    • Windows: Offers Chocolatey / Scoop one-click command triggers if detected.

Changes

  • Updated src/bin/nsapps/UTV/openutv-check-updates.py:
    • Added configuration persistence in update_settings.json (~/.openutv, %APPDATA%, or ~/Library/Application Support/OpenUTV).
    • Added --startup mode with a 3-second render settle delay and silent fallback.
    • Added multi-choice dialogs for macOS (AppleScript), Windows (Tkinter with MessageBoxW fallback), and Linux (Zenity / Kdialog).
    • Added Windows OpenUTVDeps version detection and utv-dependencies release querying.
  • Updated src/plugins/rv-packages/visto_help_menu/openrv_help_menu_mode.mu:
    • Added checkUpdatesOnStartup() called asynchronously upon mode initialization.

Closes #34

…ection

- Check for OpenUTV updates asynchronously on startup in detached QProcess without blocking UI
- Support snooze options ('Remind Me Tomorrow' / 1 day, 'Remind Me in 1 Week' / 7 days) and 'Skip This Version'
- Persist snooze, skip, and check preferences in update_settings.json across platforms
- Support detecting and prompting for newer OpenUTVDeps Windows runtime releases via utv-dependencies repo
- Integrate package manager upgrade commands (Homebrew, Chocolatey, Scoop)

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
@mcoliver
mcoliver merged commit 705d349 into main Sep 27, 2026
13 checks passed
@mcoliver
mcoliver deleted the feature/launch-update-checker branch September 27, 2026 00:37
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.

feat: auto update notifications

1 participant