feat: make automatic update checks optional - #221
Conversation
Add an "Automatically Check for Updates" toggle in Settings > General so users can disable Sparkle's scheduled daily checks. Manual checks via the "Check for Updates" button remain available. The "Automatically Install Updates" toggle is disabled when automatic checks are off, since background downloads only happen after scheduled checks. Closes #219
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit bf8f796. Configure here.
| )) | ||
| .toggleStyle(.switch) | ||
| .controlSize(.small) | ||
| .disabled(!updateManager.automaticallyChecksForUpdates) |
There was a problem hiding this comment.
Install toggle stays enabled
Medium Severity
GeneralSettingsView keeps updateManager as a plain optional instead of observing UpdateManager, so changes to automaticallyChecksForUpdates do not reliably invalidate the settings body. The new .disabled(!updateManager.automaticallyChecksForUpdates) on “Automatically Install Updates” can stay stale, leaving that toggle interactive after automatic checks are turned off.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit bf8f796. Configure here.


Summary
Adds an "Automatically Check for Updates" toggle in Settings → General → Updates, so users can disable Sparkle's scheduled daily update checks (
SUEnableAutomaticCheckswas previously hardcoded totruein Info.plist with no way to opt out).SPUUpdater.automaticallyChecksForUpdates(Sparkle persists it to UserDefaults; Info.plist default staystrue, so behavior is unchanged for existing users)Closes #219
Test plan
xcodebuild -scheme Capso -configuration Debug buildsucceedsNote
Low Risk
Localized preferences and Sparkle binding changes; default behavior remains automatic checks via Info.plist.
Overview
Users can now turn off daily background update checks from Settings → General → Updates via a new "Automatically Check for Updates" toggle, wired through
UpdateManagerto Sparkle’sSPUUpdater.automaticallyChecksForUpdates(with KVO so UI stays in sync when Sparkle changes the value)."Automatically Install Updates" is disabled when automatic checks are off, since background installs depend on scheduled checks. The manual Check for Updates row copy is updated to describe on-demand checks instead of implying daily automatic checks.
Reviewed by Cursor Bugbot for commit bf8f796. Bugbot is set up for automated code reviews on this repo. Configure here.