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