Back to Cherry Studio

App Update Architecture

docs/en/references/app-upgrade.md

1.9.131.4 KB
Original Source

App Update Architecture

Overview

Current Cherry Studio clients check for updates through the managed release service at https://releases.cherryai.com.cn. The client selects an update channel and sends application, client, platform, and region metadata.

Update Feed Configuration

  • Packaged builds use publish.url from electron-builder.yml. electron-builder writes this value to the packaged app-update.yml.
  • Development builds set forceDevUpdateConfig = true, so electron-updater reads dev-app-update.yml from the repository root. The default development feed is http://127.0.0.1:3378.
  • Production base URL changes take effect through the build configuration in newly produced application builds.

Channels

The client requests one of these electron-updater channels:

  • latest: stable release channel.
  • rc: release candidate channel.
  • beta: beta release channel.

Request Contract

Before each update check, the client sets these request headers:

HeaderValue
Client-IdPersistent client identifier
App-NameApplication name
App-VersionInstalled version with a v prefix
OSprocess.platform value
X-Regioncn for China, otherwise global
User-AgentGenerated Cherry Studio user agent
Cache-Controlno-cache

The selected electron-updater channel determines whether the client requests the latest, rc, or beta manifest.