Files
LanMountainDesktop/docs/archive/auto_commit_md/20260528_1ee6e68.md
2026-06-08 03:54:33 +08:00

3.6 KiB
Raw Blame History

Git 提交分析报告

基本信息

提交信息摘要

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. 检查错误处理和日志记录是否完善