Skip to content

fix(updater): keep nightly staged updates replaceable - #25129

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
updater-staged-schedule-recovery-next
Oct 25, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
updater-staged-schedule-recovery-next

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

A cmux NEXT NIGHTLY can enter Sparkle's silent-install path when an older SUAutomaticallyUpdate preference 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 --check
  • Fleet package test: cmux-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)
  • Independent Codex correctness-first review: SHIP at 437e98b789be39ab3b25be5642eb658d51bfbffd

Closes the NIGHTLY symptom where SULastCheckTime stopped after staging and idle install never fired.

Agent session: huge-blue

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 437e98b: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr25129 -f ref=updater-staged-schedule-recovery-next -f platform=macos -f backend_mode=local

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

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Oct 25, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-em8km created for this PR by the cmux coordinator.

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@blacksmith-sh

blacksmith-sh Bot commented Oct 25, 2026

Copy link
Copy Markdown

Found 9 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp3w90iah7/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpt21_j_t1/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'/
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'
View Logs
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'/
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'
View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo
teamleaderleo merged commit f4bb7ac into feat-cmux-next Oct 25, 2026
150 of 167 checks passed
@teamleaderleo
teamleaderleo deleted the updater-staged-schedule-recovery-next branch October 25, 2026 21:31
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 437e98b7 Deployed Oct 25, 2026 by teamleaderleo via namespace autofix #2623
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant