Add IPC backoff/retries and safer disposal

Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
This commit is contained in:
lincube
2026-05-07 21:39:21 +08:00
parent 84caca02bf
commit d8f75e86be
159 changed files with 8809 additions and 31 deletions

View File

@@ -0,0 +1,86 @@
# Commit 深度分析报告
**提交哈希**: `6b1c738d8c470766e818beb2d12076fdc082d607`
**提交时间**: 2025-06-05 09:13:08
**作者**: lincube <lincube3@hotmail.com>
**重要性**: FEATURE
## 提交消息
```
Add material color services, plugin DTOs, and tests
```
## 变更统计
- **新增文件**: 18
- **修改文件**: 12
- **删除文件**: 2
### 文件类型分布
- `.cs`: 25 个文件
- `.axaml`: 3 个文件
## 变更文件列表
| 文件路径 | 变更类型 |
|---------|---------|
| `LanMountainDesktop/Services/MaterialColor/` | 新增 |
| `LanMountainDesktop.Shared.Contracts/DTOs/` | 新增 |
| `LanMountainDesktop.Tests/` | 新增 |
## 影响分析
- 受影响的模块: LanMountainDesktop, Services, Shared.Contracts, Tests
- 涉及 25 个 C# 文件变更
- 这是一个功能新增提交,扩展了项目能力
## 代码审查要点
- ⚠️ 关键文件变更: Service - 需要特别关注
- ⚠️ 新增测试需要确保覆盖率
## 详细分析
### 1. Material Color 服务
引入了 Material Design 色彩系统服务:
- **动态主题**: 支持从壁纸提取主题色
- **色彩方案**: 自动生成和谐的色彩方案
- **实时更新**: 主题色变化时自动更新 UI
### 2. Plugin DTOs
为插件系统添加了数据传输对象:
- **类型安全**: 强类型的数据传输
- **序列化**: 支持 JSON 序列化
- **版本兼容**: 支持 DTO 版本管理
```csharp
public class PluginManifestDto
{
public string Id { get; set; }
public string Name { get; set; }
public Version Version { get; set; }
public List<PluginDependencyDto> Dependencies { get; set; }
}
public class PluginSettingsDto
{
public string PluginId { get; set; }
public Dictionary<string, object> Settings { get; set; }
}
```
### 3. 测试覆盖
新增了大量单元测试:
- **MaterialColorService 测试**: 验证色彩生成逻辑
- **DTO 序列化测试**: 验证数据传输的正确性
- **集成测试**: 验证服务间的协作
### 4. 架构影响
- 提高了代码的可测试性
- 增强了插件系统的类型安全
- 改善了主题系统的灵活性
## 建议
1. 继续提高测试覆盖率
2. 添加性能测试
3. 完善 DTO 文档
4. 考虑添加自动化 UI 测试