mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
89 lines
3.6 KiB
Markdown
89 lines
3.6 KiB
Markdown
|
|
# Git 提交分析报告
|
|||
|
|
|
|||
|
|
## 基本信息
|
|||
|
|
- **哈希**: 1ee6e68f33f0a1bbeccf7cef8f3767e65d6916c9
|
|||
|
|
- **短哈希**: 1ee6e68
|
|||
|
|
- **作者**: lincube <lincube3@hotmail.com>
|
|||
|
|
- **时间**: 2026-05-28 10:28:31 +0800
|
|||
|
|
- **合入作者**: Cursor <cursoragent@cursor.com>
|
|||
|
|
|
|||
|
|
## 提交信息摘要
|
|||
|
|
refactor(launcher): converge plugin pending to Host via PluginPackaging
|
|||
|
|
|
|||
|
|
## 变更统计
|
|||
|
|
| 指标 | 数值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 变更文件数 | 32 |
|
|||
|
|
| 新增行数 | 881 |
|
|||
|
|
| 删除行数 | 1917 |
|
|||
|
|
| 净变化 | -1036 |
|
|||
|
|
|
|||
|
|
## 详细变更分析
|
|||
|
|
|
|||
|
|
### 架构变更概述
|
|||
|
|
此提交进行了重要的架构调整:将插件待处理(pending)功能从 Launcher 移到了 Host(主程序),并引入了新的 PluginPackaging 项目。
|
|||
|
|
|
|||
|
|
### 新增项目
|
|||
|
|
1. **LanMountainDesktop.PluginPackaging** - 新的插件打包项目
|
|||
|
|
- `PendingPluginUpgradeStore.cs` - 待处理插件升级存储
|
|||
|
|
- `PluginPackageInstallOptions.cs` - 插件包安装选项
|
|||
|
|
- `PluginPackageInstallResult.cs` - 插件包安装结果
|
|||
|
|
- `PluginPackageInstaller.cs` - 插件包安装器
|
|||
|
|
- `PluginPackageManifest.cs` - 插件包清单
|
|||
|
|
- `PluginPackageManifestReader.cs` - 插件包清单读取器
|
|||
|
|
- `PluginPackagingConstants.cs` - 插件打包常量
|
|||
|
|
|
|||
|
|
### 删除项目
|
|||
|
|
1. **LanMountainDesktop.PluginUpgradeHelper** - 已删除的插件升级辅助项目
|
|||
|
|
- `Program.cs` - 主程序(372行)
|
|||
|
|
|
|||
|
|
### 主要删除的文件
|
|||
|
|
1. `FlexibleHostLocator.cs` - 灵活主机定位器(634行)
|
|||
|
|
2. `UpdateCheckService.cs` - 更新检查服务(161行)
|
|||
|
|
3. `LauncherClient.cs` - Launcher 客户端(210行)
|
|||
|
|
4. `CliLauncherUpdateBridge.cs` - CLI Launcher 更新桥接(48行)
|
|||
|
|
5. `IpcLauncherUpdateBridge.cs` - IPC Launcher 更新桥接(171行)
|
|||
|
|
|
|||
|
|
### 主要变更的文件
|
|||
|
|
1. `PendingPluginUpgradeService.cs` - 大幅简化
|
|||
|
|
2. `PluginMarketInstallService.cs` - 大幅简化,移除了通过 Launcher 安装的逻辑
|
|||
|
|
3. `PluginRuntimeService.cs` - 新增 `ApplyPendingPluginOperations()` 方法
|
|||
|
|
4. 多个文档文件更新 - 反映架构变更
|
|||
|
|
|
|||
|
|
### 架构变化要点
|
|||
|
|
|
|||
|
|
#### 1. 职责转移
|
|||
|
|
- **之前**:Launcher 负责插件待处理安装/升级
|
|||
|
|
- **现在**:Host(主程序)负责在启动时应用待处理插件操作
|
|||
|
|
|
|||
|
|
#### 2. 新的流程
|
|||
|
|
1. 插件市场下载包到用户的待处理队列
|
|||
|
|
2. 下次 Host 启动时,在插件发现前应用待处理操作
|
|||
|
|
3. Launcher 保留 CLI 命令作为维护兼容性入口
|
|||
|
|
|
|||
|
|
#### 3. 新增功能
|
|||
|
|
- `PluginRuntimeService.ApplyPendingPluginOperations()` - 应用待处理插件操作
|
|||
|
|
- `PendingPluginUpgradeService.AddPendingInstallOrUpgrade()` - 添加待处理安装或升级
|
|||
|
|
- 新增 `RestartRequired` 状态到 `AirAppMarketInstallState`
|
|||
|
|
|
|||
|
|
## 代码审查要点
|
|||
|
|
|
|||
|
|
### 优势
|
|||
|
|
1. **架构更清晰**:Launcher 专注于版本管理和更新,Host 专注于插件运行时
|
|||
|
|
2. **减少权限需求**:插件安装不需要通过 Launcher,减少了权限提升的场景
|
|||
|
|
3. **简化代码**:删除了大量桥接代码和复杂的协调逻辑
|
|||
|
|
4. **更好的用户体验**:插件安装在 Host 启动时完成,用户体验更流畅
|
|||
|
|
|
|||
|
|
### 潜在风险
|
|||
|
|
1. **功能回归风险**:删除了大量代码,需要确保所有功能都已正确迁移
|
|||
|
|
2. **兼容性**:CLI 命令作为兼容性入口,需要确保仍然正常工作
|
|||
|
|
3. **升级路径**:现有用户的待处理插件队列需要正确迁移
|
|||
|
|
4. **错误处理**:Host 启动时的插件安装失败需要妥善处理
|
|||
|
|
|
|||
|
|
### 建议
|
|||
|
|
1. 完整测试插件市场安装/升级流程
|
|||
|
|
2. 测试 CLI 插件命令的兼容性
|
|||
|
|
3. 测试待处理插件操作在 Host 启动时的应用
|
|||
|
|
4. 验证升级路径,确保现有用户平滑过渡
|
|||
|
|
5. 检查错误处理和日志记录是否完善
|