feature(updater): Implement auto-updating system using AppCast protocol

This commit is contained in:
2026-06-22 02:30:50 +04:00
parent c23b4bd0da
commit 602d294da4
18 changed files with 524 additions and 9 deletions
+14 -2
View File
@@ -41,10 +41,19 @@ Set the launcher Web API base URL at compile time:
--dart-define=MOONWELL_API_BASE_URL=https://host
```
Set the public AppCast feed URL to enable Windows launcher self-updates:
```powershell
--dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
```
The updater is disabled when `MOONWELL_APPCAST_URL` is omitted. Production
feeds must use HTTPS.
Example run command:
```powershell
flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://host
flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
```
## Development
@@ -67,10 +76,12 @@ pre-commit workflow.
Build the Windows launcher:
```powershell
flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://host
flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
```
The Inno Setup installer script lives at `installer/moonwell_launcher.iss`.
See `docs/launcher_self_update.md` for the AppCast format, signing keys, and
manual release procedure.
## Architecture
@@ -99,3 +110,4 @@ See `docs/launcher_web_api_spec.md` for the API and sync contract.
- `docs/project_review.md`: project review with strengths, weaknesses, and
upgrade feasibility notes
- `docs/launcher_web_api_spec.md`: current launcher Web API and sync behavior
- `docs/launcher_self_update.md`: Windows self-update and release operations