Repository navigation
fix(updater): keep nightly staged updates replaceable - #25129
Conversation
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on e01ff7d to compare; do not merge until green; see lane-rules |
|
Bead |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (subagent, correctness first): SHIP at 437e98b
The access-control blocker is fixed: the private defaults store remains in UpdateController.swift and the extension calls a narrow internal mutation seam. Behavior review confirms background mode is configured before updater start, scheduled checks remain enabled, and the app-owned staged installer remains replaceable. Diff checks pass; native package execution is delegated to the fleet/CI path.
|
Found 9 test failures on Blacksmith runners: Failures
|
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
A cmux NEXT NIGHTLY can enter Sparkle's silent-install path when an older
SUAutomaticallyUpdatepreference remains set. Sparkle then owns the staged installer and stops the normal replaceable background-check path, so a restart can install the stale item while newer nightlies wait. This PR makes background mode own the staged reply by disabling that legacy silent-install preference when the updater is configured, preserving the scheduled check cadence and allowing the staged item to be replaced by the newest feed result.The regression test seeds the persisted automatic-download preference, enables background mode, and verifies the silent path is disabled. Existing background-install tests continue to cover staged install and prompt behavior.
Validation:
git diff --checkcmux-ci run --class isolated --script scripts/ci/run-swift-testing-suites.sh --ref <head> --arg Packages/macOS/CmuxUpdater(huge-blue client is not authorized for the fleet controller; the PR's routed CI covers the same package)437e98b789be39ab3b25be5642eb658d51bfbffdCloses the NIGHTLY symptom where
SULastCheckTimestopped after staging and idle install never fired.Agent session: huge-blue