-
Notifications
You must be signed in to change notification settings - Fork 625
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
What do you need? / 你需要什么?
Summary
Switch the DeepChat auto-update mechanism back to using GitHub Releases as the update provider, and introduce a simple channel model where canary builds come from pre-releases and stable builds only track published releases.
Motivation
- GitHub Releases already provides a first-class notion of releases vs pre-releases, which maps well to a canary (pre-release) vs stable (release) update channel.
- electron-updater has built-in support for GitHub Releases as a provider, including reading release metadata and assets from the repository's tagged releases.
- Reference: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
- Reference: https://www.electron.build/auto-update.html
Desired behavior
- When the app is in "canary" mode, the auto-updater should detect and offer updates from GitHub pre-releases (e.g. tagged canary builds or "Pre-release" marked versions).
- When the app is in "stable" mode, the auto-updater should ignore pre-releases and only detect updates from normal GitHub releases.
- Existing versioning stays semver-based (e.g.
x.y.z,x.y.z-canary.n), and update checks use electron-updater's standardlatest.yml/ GitHub metadata flow without custom feed URLs.
Implementation notes
- Use
electron-updaterwith the GitHub provider configuration so that release metadata and assets are published as GitHub Releases artifacts in CI. - Configure CI to upload the built artifacts and metadata (
latest.yml, platform-specific files) to the correct GitHub release or pre-release, instead of a custom/generic update server. - Add an internal "update channel" setting (e.g.
updateChannel = "stable" | "canary") that controls whether the app considers GitHub pre-releases or only full releases when callingautoUpdater.checkForUpdatesAndNotify().
Acceptance criteria
- Stable users only see updates when a new GitHub Release (not marked as pre-release) is published with valid update assets for their platform.
- Canary users can receive updates from GitHub pre-releases, and the app correctly differentiates between canary and stable versions when checking for updates.
- No manual feed URL management is required in the app code; configuration is driven via electron-builder / electron-updater publish settings and GitHub Releases.
coderabbitai
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request