Repository navigation
Separate cmux NIGHTLY as standalone app - #164
Conversation
The nightly build is now a distinct app called "cmux NIGHTLY" with bundle ID com.cmuxterm.app.nightly, allowing side-by-side installation with the stable release. The nightly appcast URL is baked into the app's Info.plist by CI, so no in-app channel switching is needed. - Nightly workflow: rename app to "cmux NIGHTLY", set bundle ID to com.cmuxterm.app.nightly, hardcode nightly Sparkle feed URL, publish DMG as cmux-nightly-macos.dmg - Remove "Receive Nightly Builds" toggle from settings - Remove UpdateChannelSettings enum and simplify feed URL resolution to just use SUFeedURL from Info.plist - Remove UpdateChannelSettingsTests (no longer applicable)
Preview Videos and ScreenshotsOpen Workspace (1 hr expiry) · Open Dev Browser (1 hr expiry) · Open Diff Heatmap Screenshot status is unknown for this run. Generated by manaflow preview system |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a80a6e0b5d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| UpdateLogStore.shared.append("update channel: \(isNightly ? "nightly" : "stable")") | ||
| let usedFallback = feedURL == nil || feedURL?.isEmpty == true | ||
| recordFeedURLString(feedURL ?? "https://github.com/manaflow-ai/cmux/releases/latest/download/appcast.xml", usedFallback: usedFallback) | ||
| return feedURL |
There was a problem hiding this comment.
Return fallback feed URL when SUFeedURL is missing
When SUFeedURL is absent or empty in Info.plist (for example in custom/local builds or misconfigured packaging), this delegate now logs and records the stable fallback URL but still returns feedURL directly, which is nil/empty in that case. Sparkle then receives no usable feed URL and update checks can fail, whereas the previous implementation always returned a concrete fallback URL.
Useful? React with 👍 / 👎.
…low-ai#164) The nightly build is now a distinct app called "cmux NIGHTLY" with bundle ID com.cmuxterm.app.nightly, allowing side-by-side installation with the stable release. The nightly appcast URL is baked into the app's Info.plist by CI, so no in-app channel switching is needed. - Nightly workflow: rename app to "cmux NIGHTLY", set bundle ID to com.cmuxterm.app.nightly, hardcode nightly Sparkle feed URL, publish DMG as cmux-nightly-macos.dmg - Remove "Receive Nightly Builds" toggle from settings - Remove UpdateChannelSettings enum and simplify feed URL resolution to just use SUFeedURL from Info.plist - Remove UpdateChannelSettingsTests (no longer applicable)
Summary
com.cmuxterm.app.nightly, installable alongside the stablecmuxreleasecmux-nightly-macos.dmgcontainingcmux NIGHTLY.appreleases/download/nightly/appcast.xml) is baked into the app's Info.plist by CI — no in-app channel switching neededUpdateChannelSettingsenum and simplifiedfeedURLString()to just readSUFeedURLfrom the plistWhat changed
.github/workflows/nightly.ymlcom.cmuxterm.app.nightly, hardcode nightly feed URL, publish ascmux-nightly-macos.dmgSources/Update/UpdateDelegate.swiftUpdateChannelSettingsenum;feedURLString()now readsSUFeedURLdirectly from Info.plistSources/Update/UpdateController.swiftSources/cmuxApp.swift@AppStoragefrom SettingsViewcmuxTests/CmuxWebViewKeyEquivalentTests.swiftUpdateChannelSettingsTests(no longer applicable)How it works
cmux): bundle IDcom.cmuxterm.app,SUFeedURL→ stable appcast (from Info.plist)cmux NIGHTLY): bundle IDcom.cmuxterm.app.nightly,SUFeedURL→ nightly appcast (injected by CI)Test plan
workflow_dispatchwithforce: true)cmux NIGHTLY.appwith bundle IDcom.cmuxterm.app.nightlycmux NIGHTLY.appcan be installed alongside stablecmux.appcmuxstill checks for updates from the stable feed