v0.5.5 — Quit-relaunch update detection + Workspaces delete button
Quit-relaunch update detection + Workspaces delete button
The "Update available" menu item now reliably appears after a quit + relaunch, and Workspaces in Settings can finally be removed via a visible toolbar button instead of a hidden swipe gesture.
What's new
- Quit-and-relaunch refreshes the update check.
UpdateChecker.startPeriodicChecks()now bypasses the 24-hourlastCheckedAtdebounce on launch via the newforceCheck()helper. The previous behavior cached the check across relaunches, which silently swallowed update notifications when a new release was published inside the same 24-hour window as a prior cached check — exactly the case where a user who had Scene running before the new release would never see it until tomorrow. The hourly background timer and the wake-from-sleep trigger keep the 24-hour debounce; those fire automatically without explicit user intent and the GitHub rate-limit guard belongs there, not on user-driven relaunches. - Delete button in Workspaces tab toolbar.
WorkspacesTabnow has atrashbutton next to "+ New" and "Duplicate", matchingLayoutsTab. The previousList.onDeleteswipe affordance is preserved as a secondary entry point but is barely discoverable on macOS NavigationSplitView — multiple users believed the four seeded workspaces (Coding / Meeting / Reading / Streaming) couldn't be removed.
Why this matters
The 0.4.3 update-checker was deliberately conservative — once-per-24h GitHub polling to stay polite. But that conservatism turned into a silent UX failure when the app cached a result on version N, the user closed it, version N+1 shipped, and the user reopened within 24 hours expecting the new release in the menu. Quit + relaunch is a strong "give me fresh state" signal. Hourly + wake-from-sleep aren't — those run silently in the background and still need the rate guard. Splitting the two policies fixes the user-facing case without giving up the rate-limit safety net for unattended polling.
The Workspaces delete fix is plain-old discoverability: the swipe gesture works on macOS NavigationSplitView, but it's invisible. Adding a trash button matches the LayoutsTab pattern and removes the "I can't delete the seeded workspaces" support thread.
Under the hood
SceneApp/SceneApp/UpdateChecker.swift—startPeriodicChecks()now callsforceCheck()(new helper) instead ofcheckIfDue().forceCheck()skips theUserDefaults-backed 24-hour debounce and firesperformCheck()directly.checkIfDue()is unchanged, still used by the hourly timer and the wake-from-sleep observer.SceneApp/SceneApp/Settings/WorkspacesTab.swift— added atrashtoolbar button +deleteSelected()private helper, mirroring the LayoutsTab pattern.- No SceneCore changes. 177/177 unit tests still pass.
- Hardened runtime, Developer ID signed, Apple notarized, stapled.
Install
Homebrew (recommended):
brew upgrade --cask scene # existing users
brew install --cask chifunghillmanchan/tap/scene # new users
DMG: download Scene-0.5.5.dmg below, double-click, drag into Applications. Universal binary — works on Apple Silicon and Intel.
Upgrade notes
- Existing v0.5.x users: Accessibility grant survives this upgrade automatically. The in-app "Update available" menu item should appear within seconds of relaunching v0.5.4 (the new debounce-bypass logic is in v0.5.5 but v0.5.4's hourly timer + wake-from-sleep will still pick this release up within an hour).
- Stuck on v0.5.3 or earlier and not seeing the update notification? Run
defaults delete com.hillman.SceneApp com.scene.UpdateChecker.lastCheckedAtin Terminal, then quit + relaunch Scene. The 24h debounce in those releases is the bug v0.5.5 fixes — once you're on v0.5.5, this manual step is no longer needed for any future release. - Upgrading from v0.4.3 or earlier: the v0.5.0 cdhash transition still applies — re-grant Accessibility once in System Settings → Privacy & Security → Accessibility. The always-visible
tccutil resetrescue command inside the onboarding window (V0.5.4+) has the exact recovery if your previous grant gets stuck.