激进的更新

This commit is contained in:
lincube
2026-04-16 01:59:21 +08:00
parent 03e32ee6cb
commit 2f0c178df2
50 changed files with 26059 additions and 184 deletions

View File

@@ -0,0 +1,8 @@
# Launcher Upgrade Checklist
- [x] Build passes for `LanMountainDesktop.Launcher`.
- [x] `update check` command returns structured JSON result.
- [x] `plugin update` command returns structured JSON result.
- [x] Legacy plugin install arguments still execute.
- [x] OOBE and splash are implemented as separate windows.
- [x] Update and rollback logic use version directory markers.

View File

@@ -0,0 +1,54 @@
# Launcher Upgrade Spec
## Goal
Upgrade `LanMountainDesktop.Launcher` into the unified Launcher for:
- OOBE first-run entry
- startup splash window
- silent/incremental/rollback update
- plugin install/update
## Scope (Phase 1)
- Avalonia GUI launcher with two windows:
- `OOBEWindow` (first run only)
- `SplashWindow` (every launch)
- Default command `launch`
- CLI commands:
- `update check|download|apply|rollback`
- `plugin install|update`
- Legacy compatibility:
- `--source --plugins-dir --result` still works for plugin install
## Update Behavior
- ClassIsland-style deployment folders:
- `app-<version>-<number>/`
- marker files `.current`, `.partial`, `.destroy`
- Signed file map:
- `files.json`
- `files.json.sig`
- `public-key.pem`
- Incremental update:
- `replace` from archive
- `reuse` from current deployment
- `delete` skip file in target deployment
- Rollback:
- snapshot metadata is written before apply
- automatic rollback on apply failure
- manual rollback via command
## OOBE and Splash
- OOBE is independent from splash.
- OOBE shows only:
- welcome text: `欢迎使用阑山桌面`
- arrow button for continue
- Splash shows only:
- app name: `阑山桌面`
## Extensibility
- `IOobeStep` for future multi-step OOBE
- `ISplashStageReporter` for future startup progress visualization

View File

@@ -0,0 +1,12 @@
# Launcher Upgrade Tasks
- [x] Convert `LanMountainDesktop.Launcher` to Avalonia launcher entry.
- [x] Add OOBE window with first-run marker handling.
- [x] Add splash window for every startup.
- [x] Implement unified command parsing with default `launch`.
- [x] Keep legacy plugin install args compatibility.
- [x] Add plugin pending upgrade queue processing.
- [x] Implement incremental update apply with signed file map.
- [x] Implement snapshot-based rollback and manual rollback command.
- [x] Add update check/download/apply/rollback CLI commands.
- [x] Add launcher spec files under `.trae/specs/launcher-upgrade/`.