cmux/Sources
Lawrence Chen b42f64fbe3
Fix update attempt refreshing pill without actually updating (#2168)
* Fix update attempt refreshing pill without actually updating

The attemptUpdate() subscriber watched for .updateAvailable state to
auto-confirm, but showUpdateFound used setStateAfterMinimumCheckDelay
which delays the transition by up to 2 seconds. During that window,
dismissUpdateInstallation (from a background probe race) could cancel
the pending transition, reverting state to idle without ever confirming.
The subscriber then tore down on the transient idle, silently abandoning
the update.

Fix: move auto-confirm to the Sparkle driver level via an
autoInstallOnNextUpdate flag. When set, showUpdateFound immediately
calls reply(.install) bypassing the delay entirely. The subscriber
is kept as a fallback but no longer tears down on transient idle
while the flag is active.

Closes https://github.com/manaflow-ai/cmux/issues/2166

* Revert "Fix update attempt refreshing pill without actually updating"

This reverts commit 1cd842dd924bf114b096f222851c47d2e36ad4d9.

* Fix update attempt refreshing pill without actually updating

The attemptUpdate() subscriber tore down monitoring whenever it saw
.idle after observing progress. During check startup (retry loop,
background probe race), state can transiently return to .idle before
Sparkle's interactive check begins. The subscriber interpreted this
as "check completed" and stopped monitoring, so the auto-confirm
for .updateAvailable never fired.

Fix: add !state.isIdle to the teardown guard so monitoring only
stops on terminal failures (.notFound, .error), not transient idle.

Closes https://github.com/manaflow-ai/cmux/issues/2166

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 16:55:29 -07:00
..
Find Add failing regression test for browser find focus (#1891) 2026-03-20 22:12:26 -07:00
Panels Fix browser pane restore after reopen (#2141) 2026-03-25 04:11:43 -07:00
Update Fix update attempt refreshing pill without actually updating (#2168) 2026-03-25 16:55:29 -07:00
AppDelegate.swift Fix window position restore on relaunch (#2129) 2026-03-25 02:05:13 -07:00
AppleScriptSupport.swift fix: read working directory from panelDirectories instead of TerminalPanel 2026-03-20 04:15:44 +08:00
Backport.swift Resync terminal portals after sidebar changes (#1253) 2026-03-12 02:46:30 -07:00
BrowserWindowPortal.swift Fix panel resize stuttering when tiled with browser panels (#1969) 2026-03-24 22:24:17 -07:00
cmuxApp.swift Handle Cmd+O in handleCustomShortcut to prevent Documents folder open (#2034) 2026-03-25 00:26:30 -07:00
CmuxConfig.swift Validate workspace color during cmux.json decode (#2112) 2026-03-24 22:58:27 -07:00
CmuxConfigExecutor.swift Sanitize command before execution, not just display (#2122) 2026-03-25 00:28:30 -07:00
CmuxDirectoryTrust.swift feat: cmux.json for custom commands (#2011) 2026-03-24 22:28:46 -07:00
ContentView.swift Fix titlebar double-click zoom handling (#2130) 2026-03-25 02:15:15 -07:00
GhosttyConfig.swift Add configurable sidebar tint color with light/dark mode support (#1465) 2026-03-15 15:48:57 -07:00
GhosttyTerminalView.swift fix: guard inherited terminal config against stale surfaces (#2101) 2026-03-25 16:49:54 -07:00
KeyboardLayout.swift fix: prevent Japanese IME confirmation Enter from executing command (#2075) 2026-03-24 22:24:13 -07:00
KeyboardShortcutSettings.swift Customizable number shortcuts (#1951) 2026-03-22 14:54:54 -07:00
NotificationsPage.swift Add Jump to Latest to the notifications popover (#1167) 2026-03-10 19:30:17 -07:00
PortScanner.swift Fix workspace creation crash after restore (#1985) 2026-03-25 00:04:03 -07:00
PostHogAnalytics.swift Flush PostHog hourly active events immediately (#934) 2026-03-05 04:00:04 -08:00
RemoteRelayZshBootstrap.swift Support image drag-and-drop into SSH terminals (#1838) 2026-03-20 18:31:19 -07:00
SentryHelper.swift Auto-heal missing CLI listener socket (#679) 2026-02-28 01:19:38 -08:00
SessionPersistence.swift fix: skip identical session autosave writes (#1732) 2026-03-18 03:24:40 -07:00
SidebarSelectionState.swift Implement session persistence pass 1 with multi-window restore 2026-02-22 15:39:59 -08:00
SocketControlSettings.swift Merge remote-tracking branch 'origin/main' into pr-ssh-stack-main 2026-03-13 17:56:38 -07:00
TabManager.swift Fix Cmd+N workspace creation snapshot crashes (#2173) 2026-03-25 16:52:04 -07:00
TerminalController.swift Fix workspace creation crash after restore (#1985) 2026-03-25 00:04:03 -07:00
TerminalImageTransfer.swift Fix SSH image transfer followups (#1904) 2026-03-20 21:32:21 -07:00
TerminalNotificationStore.swift Fix sidebar notification persisting after being read (#1933) 2026-03-24 20:54:41 -07:00
TerminalSSHSessionDetector.swift Fix SSH image transfer cleanup and IPv6 followups (#1907) 2026-03-20 22:04:52 -07:00
TerminalView.swift Add sidebar blur effect with withinWindow blending (#9) 2026-02-04 03:04:45 -08:00
TerminalWindowPortal.swift fix: hide stale terminal portal after restore churn 2026-03-23 19:19:05 -07:00
UITestRecorder.swift Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
WindowAccessor.swift Polish browser suggestions, focus, and tagged reload flow 2026-02-14 21:33:28 -08:00
WindowDecorationsController.swift Refine settings/about titlebar styling and controls alignment 2026-02-14 02:11:35 -08:00
WindowDragHandleView.swift Fix titlebar double-click zoom handling (#2130) 2026-03-25 02:15:15 -07:00
WindowToolbarController.swift Reapply "Merge pull request #239 from manaflow-ai/issue-151-ssh-remote-port-proxying" 2026-03-12 15:54:26 -07:00
Workspace.swift fix: guard inherited terminal config against stale surfaces (#2101) 2026-03-25 16:49:54 -07:00
WorkspaceContentView.swift Fix titlebar double-click zoom handling (#2130) 2026-03-25 02:15:15 -07:00