Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/Hub/Hub.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GeneralUpdate.Core" Version="10.5.0-beta.2" />
<PackageReference Include="GeneralUpdate.Differential" Version="10.5.0-beta.2" />
<PackageReference Include="GeneralUpdate.Drivelution" Version="10.5.0-beta.2" />
<PackageReference Include="GeneralUpdate.Extension" Version="10.5.0-beta.2" />
<PackageReference Include="GeneralUpdate.Bowl" Version="10.5.0-beta.2" />
<PackageReference Include="GeneralUpdate.Core" Version="10.5.0-beta.6" />
<PackageReference Include="GeneralUpdate.Differential" Version="10.5.0-beta.6" />
<PackageReference Include="GeneralUpdate.Drivelution" Version="10.5.0-beta.6" />
<PackageReference Include="GeneralUpdate.Extension" Version="10.5.0-beta.6" />
<PackageReference Include="GeneralUpdate.Bowl" Version="10.5.0-beta.6" />
Comment on lines +10 to +14
</ItemGroup>

<!-- Push 示例需要自托管 SignalR Hub -->
Expand Down
2 changes: 1 addition & 1 deletion src/Hub/Samples/CompleteUpdateSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public async Task RunAsync(AppConfig config, CancellationToken ct)
{
Console.WriteLine($" v{v.Version} — {v.Name} ({v.Size} bytes)");
Console.WriteLine($" Hash: {v.Hash?[..16]}...");
Console.WriteLine($" IsCrossVersion: {v.IsCrossVersion}");
Console.WriteLine($" PackageType: {v.PackageType}");
}
}
})
Expand Down
4 changes: 1 addition & 3 deletions src/Hub/Samples/OssSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,7 @@ public async Task RunAsync(AppConfig config, CancellationToken ct)
{
foreach (var v in e.Info.Body)
{
var type = v.IsCrossVersion == true
? $"[差分 {v.FromVersion} → {v.Version}]"
: "[完整包]";
var type = v.PackageType == 1 ? "[差分]" : "[完整包]";
Console.WriteLine($" v{v.Version} {type}");
Console.WriteLine($" Name: {v.Name}");
Console.WriteLine($" Size: {v.Size} bytes");
Expand Down
44 changes: 22 additions & 22 deletions website/docs/agent-skills/generalupdate-advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ title: 🔧 generalupdate-advanced — 高级定制参考

涵盖扩展点架构、Pipeline 管道、差分引擎、Bowl 崩溃守护、事件系统、文件系统工具等。

> ⚠️ **API 版本说明**:本指南基于 **NuGet v10.5.0-beta.4**。
> 以下功能在 v10.5.0-beta.4 中全部**可用**:
> ⚠️ **API 版本说明**:本指南基于 **NuGet v10.5.0-beta.6**。
> 以下功能在 v10.5.0-beta.6 中全部**可用**:
> - ✅ `IUpdateHooks` 生命周期钩子(`Hooks<T>()`)
> - ✅ `IStrategy` 自定义策略注入(`Strategy<T>()`)
> - ✅ `SilentPollOrchestrator` 静默轮询器(`Option.Silent`)
Expand Down Expand Up @@ -49,7 +49,7 @@ title: 🔧 generalupdate-advanced — 高级定制参考

---

## 1. Pipeline 管道系统(v10.5.0-beta.4 可用)
## 1. Pipeline 管道系统(v10.5.0-beta.6 可用)

GeneralUpdate 使用 Pipeline 管道模式处理更新包的校验、解压、补丁应用。

Expand Down Expand Up @@ -84,7 +84,7 @@ await new PipelineBuilder(context)

---

## 2. 策略系统(v10.5.0-beta.4 可用)
## 2. 策略系统(v10.5.0-beta.6 可用)

GeneralUpdate 内置三种平台策略,通过 `IStrategy` 接口实现:

Expand All @@ -99,7 +99,7 @@ GeneralUpdate 内置三种平台策略,通过 `IStrategy` 接口实现:

---

## 3. Bowl 崩溃守护(v10.5.0-beta.4
## 3. Bowl 崩溃守护(v10.5.0-beta.6

Bowl 是一个崩溃监控组件,通过 `BowlContext` 配置。

Expand Down Expand Up @@ -139,11 +139,11 @@ Console.WriteLine($"Result: Success={result.Success}, Restored={result.Restored}
| `DumpType` | DumpType | Mini / Full |
| `OnCrash` | delegate | 崩溃回调 |

> ⚠️ NuGet v10.5.0-beta.4 中 Bowl 和 Core **无类型冲突**,可以同时引用。
> ⚠️ NuGet v10.5.0-beta.6 中 Bowl 和 Core **无类型冲突**,可以同时引用。

---

## 4. EventManager 事件系统(v10.5.0-beta.4 可用)
## 4. EventManager 事件系统(v10.5.0-beta.6 可用)

EventManager 是一个全局单例,提供事件的发布和订阅:

Expand All @@ -170,7 +170,7 @@ EventManager.Instance.Dispose();

---

## 5. 文件系统工具(v10.5.0-beta.4 可用)
## 5. 文件系统工具(v10.5.0-beta.6 可用)

### BlackList(黑名单)

Expand Down Expand Up @@ -199,7 +199,7 @@ var snapshot = tree.CreateSnapshot(@"C:\Program Files\MyApp");

---

## 6. 差分引擎(v10.5.0-beta.4 可用,无需额外安装包)
## 6. 差分引擎(v10.5.0-beta.6 可用,无需额外安装包)

差分类型已内嵌在 `GeneralUpdate.Core` 中,**无需额外**安装 `GeneralUpdate.Differential` 包。

Expand Down Expand Up @@ -252,7 +252,7 @@ var dirtyMatcher = new DefaultDirtyMatcher(); // 或实现 IDirtyMatcher

## 7. AOT / NativeAOT 兼容性

GeneralUpdate.Core v10.5.0-beta.4 支持 .NET Native AOT(`net8.0` 和 `net10.0`):
GeneralUpdate.Core v10.5.0-beta.6 支持 .NET Native AOT(`net8.0` 和 `net10.0`):

```xml
<PropertyGroup>
Expand Down Expand Up @@ -295,26 +295,26 @@ var result = GeneralDrivelution.InstallDriver(driverPath);

| 主题 | 可用性 | 参考 |
|------|--------|------|
| Pipeline 管道 | ✅ v10.5.0-beta.4 | `GeneralUpdate.Core.Pipeline` |
| 策略系统 | ✅ v10.5.0-beta.4 | `GeneralUpdate.Core.Strategy` |
| FileTree | ✅ v10.5.0-beta.4 | `GeneralUpdate.Core.FileSystem` |
| BlackList | ✅ v10.5.0-beta.4 | `UpdateRequest.Files/Formats/Directories` → `ToBlackPolicy()` |
| Pipeline 管道 | ✅ v10.5.0-beta.6 | `GeneralUpdate.Core.Pipeline` |
| 策略系统 | ✅ v10.5.0-beta.6 | `GeneralUpdate.Core.Strategy` |
| FileTree | ✅ v10.5.0-beta.6 | `GeneralUpdate.Core.FileSystem` |
| BlackList | ✅ v10.5.0-beta.6 | `UpdateRequest.Files/Formats/Directories` → `ToBlackPolicy()` |
| 差分引擎 | ✅ 内嵌 Core | `DiffPipelineBuilder` / `DiffPipeline` |
| AOT | ✅ v10.5.0-beta.4 | `JsonSerializerContext` 子类 |
| EventManager | ✅ v10.5.0-beta.4 | `GeneralUpdate.Core.Event` |
| Bowl 崩溃守护 | ✅ v10.5.0-beta.4 | `GeneralUpdate.Bowl.Bowl` |
| IUpdateHooks | ✅ v10.5.0-beta.4 | `GeneralUpdate.Core.Hooks` — `Hooks<T>()` |
| 自定义 Strategy 注入 | ✅ v10.5.0-beta.4 | `Strategy<T>()` |
| AOT | ✅ v10.5.0-beta.6 | `JsonSerializerContext` 子类 |
| EventManager | ✅ v10.5.0-beta.6 | `GeneralUpdate.Core.Event` |
| Bowl 崩溃守护 | ✅ v10.5.0-beta.6 | `GeneralUpdate.Bowl.Bowl` |
| IUpdateHooks | ✅ v10.5.0-beta.6 | `GeneralUpdate.Core.Hooks` — `Hooks<T>()` |
| 自定义 Strategy 注入 | ✅ v10.5.0-beta.6 | `Strategy<T>()` |
| IPC 替换接口 | ❌ 暂不支持 | 使用 NamedPipe 替代方案 |
| SilentPollOrchestrator | ✅ v10.5.0-beta.4 | `Option.Silent` + `SetOption()` |
| Option 系统 | ✅ v10.5.0-beta.4 | `SetOption<T>(Option<T>, T)` |
| SilentPollOrchestrator | ✅ v10.5.0-beta.6 | `Option.Silent` + `SetOption()` |
| Option 系统 | ✅ v10.5.0-beta.6 | `SetOption<T>(Option<T>, T)` |

---

## ✅ 高级定制验证清单

### Bowl 崩溃守护
- [ ] 如果用 Bowl:项目中同时引用 `GeneralUpdate.Core` 和 `GeneralUpdate.Bowl`(v10.5.0-beta.4 无冲突)
- [ ] 如果用 Bowl:项目中同时引用 `GeneralUpdate.Core` 和 `GeneralUpdate.Bowl`(v10.5.0-beta.6 无冲突)
- [ ] `BowlContext` 的 `ProcessNameOrId` 与实际进程名匹配
- [ ] `TargetPath` 设置为应用安装根目录,非子目录
- [ ] `WorkModel` 根据场景选择 Correct(Normal/Upgrade)
Expand Down
6 changes: 3 additions & 3 deletions website/docs/agent-skills/generalupdate-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ UpgradeApp.exe (Upgrade —— 升级程序)
## 安装 NuGet

```bash
dotnet add package GeneralUpdate.Core --version 10.5.0-beta.4
dotnet add package GeneralUpdate.Core --version 10.5.0-beta.6
```

> 如果要用崩溃守护(Bowl),再加一个包:`dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.4`
> 如果要用崩溃守护(Bowl),再加一个包:`dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.6`
> 差分更新功能已经内置在 Core 里,**不需要**额外装 `GeneralUpdate.Differential`。

---
Expand Down Expand Up @@ -146,7 +146,7 @@ await new GeneralUpdateBootstrap()
})
.AddListenerProgress((_, e) =>
{
// v10.5.0-beta.4 新增的第 7 个事件
// v10.5.0-beta.6 新增的第 7 个事件
})
.LaunchAsync();
```
Expand Down
24 changes: 13 additions & 11 deletions website/docs/agent-skills/generalupdate-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ title: 🔄 generalupdate-migration — 迁移指南

# 🔄 GeneralUpdate 迁移指南

帮助开发者从旧版本 GeneralUpdate 迁移到最新稳定版 API(v10.5.0-beta.4)。
帮助开发者从旧版本 GeneralUpdate 迁移到最新稳定版 API(v10.5.0-beta.6)。

> ⚠️ **目标版本:NuGet v10.5.0-beta.4**
> 开发分支(v10.5.0-beta.2)API 与稳定版有根本性差异。
> ⚠️ **目标版本:NuGet v10.5.0-beta.6**
> 开发分支(v10.5.0-beta.x)API 与稳定版有根本性差异。

---

Expand All @@ -24,15 +24,15 @@ title: 🔄 generalupdate-migration — 迁移指南
- 是否使用了 Differential: ______(是/否)

### 迁移后目标
- 目标版本: ______(v10.5.0-beta.4 / 继续用开发分支)
- 目标版本: ______(v10.5.0-beta.6 / 继续用开发分支)
- 是否需要新的功能(Bowl/IPC 替换/AOT): ______
```

---

## 迁移路径

### 路径 A:v9.x → v10.5.0-beta.4
### 路径 A:v9.x → v10.5.0-beta.6

这是最大的跳跃。v9.x 和 v10 的架构完全不同。

Expand All @@ -46,7 +46,7 @@ v9.x (单进程, HttpClient 直连)
├── 无 manifest.json → 必须携带 manifest
└── API 命名空间全部重命名
v10.5.0-beta.4 (双进程, UpdateRequest + Bootstrap)
v10.5.0-beta.6 (双进程, UpdateRequest + Bootstrap)
```

**迁移步骤:**
Expand All @@ -56,7 +56,7 @@ v10.5.0-beta.4 (双进程, UpdateRequest + Bootstrap)
// var updater = new GeneralUpdater("https://api/method");
// updater.Start();

// ✅ v10.5.0-beta.4 写法
// ✅ v10.5.0-beta.6 写法
await new GeneralUpdateBootstrap()
.SetConfig(new UpdateRequest
{
Expand All @@ -70,17 +70,19 @@ await new GeneralUpdateBootstrap()
.LaunchAsync();
```

| v9.x API | v10.5.0-beta.4 对应 | 说明 |
| v9.x API | v10.5.0-beta.6 对应 | 说明 |
|----------|---------------------|------|
| `GeneralUpdater` | `GeneralUpdateBootstrap` | 完全重命名 |
| `SetApiUrl()` / `SetMethod()` | `UpdateRequest.UpdateUrl` | 统一到 UpdateRequest |
| `CheckUpdateAsync()` | `.LaunchAsync()` | 异步改为返回 Bootstrap 实例 |
| 单进程直接更新 | Client + Upgrade 双进程 | 必须创建独立 Upgrade 项目 |
| N/A | `generalupdate.manifest.json` | 必须随首发版本发布 |

### 路径 B:v10.5.0-beta.x (开发分支) → v10.5.0-beta.4
### 路径 B:v10.5.0-beta.x (开发分支) → v10.5.0-beta.6

| 开发分支 API (v10.5.0-beta.x) | 稳定版替代 (v10.5.0-beta.4) | 处理方式 |
| 开发分支 API (v10.5.0-beta.x) | 稳定版替代 (v10.5.0-beta.6) | 处理方式 |

| 开发分支 API (v10.5.0-beta.x) | 稳定版替代 (v10.5.0-beta.6) | 处理方式 |
|-------------------------------|---------------------------|---------|
| `new Option()` / `SetOption()` | 存在且兼容 | 直接使用,命名空间有调整 |
| `.Hooks<T>()` / `IUpdateHooks` | 存在且兼容 | 直接使用 |
Expand All @@ -98,7 +100,7 @@ await new GeneralUpdateBootstrap()
### 编译验证
- [ ] `dotnet build` 无错误
- [ ] 无 `MissingMethodException` 的风险
- [ ] 无 `CS0433` 类型冲突(v10.5.0-beta.4 中 Core + Bowl 无冲突,可同时引用)
- [ ] 无 `CS0433` 类型冲突(v10.5.0-beta.6 中 Core + Bowl 无冲突,可同时引用)

### 架构验证
- [ ] 项目已拆分为 Client + Upgrade 两个独立项目
Expand Down
18 changes: 9 additions & 9 deletions website/docs/agent-skills/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ title: 🚀 Agent Skills 总览

覆盖 50+ 真实 Issue 发现的已知问题,提供即用型代码生成 + 深度故障排查。

> **Current Version: 0.0.2-beta.1** — targets NuGet `GeneralUpdate.Core 10.5.0-beta.4`
> 兼容性:`v10.5.0-beta.4`(NuGet 最新预览版)
> **Current Version: 0.0.2-beta.1** — targets NuGet `GeneralUpdate.Core 10.5.0-beta.6`
> 兼容性:`v10.5.0-beta.6`(NuGet 最新预览版)
> 所有模板已通过 `dotnet build` 编译验证(0 errors)。

---
Expand Down Expand Up @@ -327,12 +327,12 @@ Cursor 支持 `.cursorrules` 文件,类似 Claude Code 的 skills:

## API 兼容性说明

> ⚠️ **NuGet 引用规则(v10.5.0-beta.4)**:
> - Core only: `dotnet add package GeneralUpdate.Core --version 10.5.0-beta.4`
> - With Bowl: 同时引用 `GeneralUpdate.Core` 和 `GeneralUpdate.Bowl`(v10.5.0-beta.4 中无类型冲突)
> ⚠️ **NuGet 引用规则(v10.5.0-beta.6)**:
> - Core only: `dotnet add package GeneralUpdate.Core --version 10.5.0-beta.6`
> - With Bowl: 同时引用 `GeneralUpdate.Core` 和 `GeneralUpdate.Bowl`(v10.5.0-beta.6 中无类型冲突)
> - Differential 已嵌入 Core,**无需**额外引用 `GeneralUpdate.Differential`

> ⚠️ **API Surface**: v10.5.0-beta.4 采用了全新的配置系统:
> ⚠️ **API Surface**: v10.5.0-beta.6 采用了全新的配置系统:
> - ✅ `UpdateRequest` / `UpdateRequestBuilder` — 替代旧的 Configinfo
> - ✅ `SetSource(updateUrl, appSecretKey)` — 零配置入口
> - ✅ `SetOption<T>(Option<T>, T)` — 可编程配置系统
Expand All @@ -354,7 +354,7 @@ Cursor 支持 `.cursorrules` 文件,类似 Claude Code 的 skills:
- **GeneralUpdate Issues**: [GeneralUpdate/issues](https://github.com/GeneralLibrary/GeneralUpdate/issues) — 核心库 Bug 和功能请求

提交时请附上以下信息以便快速排查:
- GeneralUpdate 版本号(如 v10.5.0-beta.4
- GeneralUpdate 版本号(如 v10.5.0-beta.6
- 平台(Windows / Linux / macOS)
- 更新策略(标准 / OSS / 静默 / 差分 / 推送)
- 完整错误日志(可从 `Logs/generalupdate-trace-*.log` 获取)
Expand All @@ -365,14 +365,14 @@ Cursor 支持 `.cursorrules` 文件,类似 Claude Code 的 skills:

### 0.0.2-beta.1 — 2026-06-16

Updated for GeneralUpdate v10.5.0-beta.4 API:
Updated for GeneralUpdate v10.5.0-beta.6 API:
- Configinfo → UpdateRequest (namespace: `GeneralUpdate.Core.Configuration`)
- Event args moved to `GeneralUpdate.Core.Download` and `GeneralUpdate.Core.Event`
- Added SetSource(), SetOption(), `Hooks<T>()`, `Strategy<T>()` API coverage
- Updated all strategy examples to use the new API
- Updated CustomHooks.cs and CustomStrategy.cs to show v10.5 capabilities
- Fixed IsComplated → IsCompleted
- NuGet version bumped to `10.5.0-beta.4`
- NuGet version bumped to `10.5.0-beta.6`
- Added 2 new skills: generalupdate-migration, generalupdate-security-audit

### 0.0.1-beta.1 — 2026-06-16
Expand Down
2 changes: 1 addition & 1 deletion website/docs/doc/GeneralUpdate.Bowl.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Bowl **不负责**下载、解压或替换升级包。它的唯一职责是:

| 项目 | 说明 |
| --- | --- |
| **版本** | `10.5.0-beta.2` |
| **版本** | `10.5.0-beta.6` |
| **目标框架** | `netstandard2.0`(兼容 .NET Framework 4.6.1+ / .NET Core 2.0+ / .NET 5+) |
| **依赖包** | `System.Collections.Immutable`, `System.Text.Json` |
| **内置工具** | Windows: `procdump.exe` / `procdump64.exe` / `procdump64a.exe`;Linux: `procdump` deb/rpm 包 + `install.sh`;macOS: `/usr/bin/lldb` |
Expand Down
2 changes: 1 addition & 1 deletion website/docs/doc/GeneralUpdate.Core.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ GeneralUpdate.Core 是整个生态的**核心引擎**。它不负责生成补丁

| 项目 | 说明 |
| --- | --- |
| **版本** | `10.5.0-beta.2` |
| **版本** | `10.5.0-beta.6` |
| **目标框架** | `netstandard2.0`; `net8.0`; `net10.0`(兼容 .NET Framework 4.6.1+ / .NET Core 2.0+ / .NET 5+;`net8.0`+ 支持 AOT/Trim) |
| **依赖包** | `GeneralUpdate.Differential`(差分算法)、`System.Text.Json`、`Microsoft.AspNetCore.SignalR.Client` |
| **兼容性** | Windows / Linux / macOS;支持 x86 / x64 / ARM64 |
Expand Down
2 changes: 1 addition & 1 deletion website/docs/doc/GeneralUpdate.Differential.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ sidebar_position: 6

| 项目 | 说明 |
| --- | --- |
| **版本** | `10.5.0-beta.2` |
| **版本** | `10.5.0-beta.6` |
| **目标框架** | `netstandard2.0`(兼容 .NET Framework 4.6.1+ / .NET Core 2.0+ / .NET 5+) |
| **依赖包** | 无外部依赖(纯 .NET BCL) |
| **兼容性** | 所有支持 .NET Standard 2.0 的平台 |
Expand Down
2 changes: 1 addition & 1 deletion website/docs/doc/GeneralUpdate.Drivelution.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ sidebar_position: 8

| 项目 | 说明 |
| --- | --- |
| **版本** | `10.5.0-beta.2` |
| **版本** | `10.5.0-beta.6` |
| **目标框架** | `net8.0` / `net10.0`(多目标) |
| **依赖包** | `Microsoft.Extensions.DependencyInjection`、`Microsoft.Extensions.Logging.Abstractions`、`Microsoft.Extensions.Options` |
| **兼容性** | Windows(完整支持,需管理员权限)/ Linux(需 root/sudo)/ macOS(受 SIP 和系统扩展策略影响) |
Expand Down
2 changes: 1 addition & 1 deletion website/docs/doc/GeneralUpdate.Extension.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ sidebar_position: 7

| 项目 | 说明 |
| --- | --- |
| **版本** | `10.5.0-beta.2` |
| **版本** | `10.5.0-beta.6` |
| **目标框架** | `netstandard2.0`(兼容 .NET Framework 4.6.1+ / .NET Core 2.0+ / .NET 5+) |
| **依赖包** | `Microsoft.Extensions.DependencyInjection`、`Microsoft.Extensions.Logging.Abstractions`、`Microsoft.Extensions.Options`、`Newtonsoft.Json`、`System.Net.Http`、`System.IO.Compression`、`System.IO.Compression.ZipFile` |
| **兼容性** | 所有支持 .NET Standard 2.0 的平台 |
Expand Down
11 changes: 11 additions & 0 deletions website/docs/releaselog/GeneralUpdateReleaselog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ tags: [log]

# 📒Release log

### 📍2026-06-20 — v10.5.0-beta.6

- fix(core): resolve 16 audit findings — race conditions, design flaws, glue code, and performance issues
- feat(core): PackageType enum migration + chain/full fallback mechanism
- feat(core): unified HTTP auth provider + custom headers + CVP fix
- fix(core): skip redundant chain packages after full fallback
- fix(core): eliminate all AOT-incompatible patterns for Native AOT support
- fix: resolve CI failures and address Copilot review comments
- feat: align all components to SemVer 2.0 for version comparison (#521)
- chore: bump version to v10.5.0-beta.6 and fix CI pipeline

### 📍2026-06-14

- **GeneralUpdate.Core**: 修复代码审计发现的 BSDIFF 溢出、Zip 路径遍历、ProcessExit 死锁、IPC 密钥硬编码等严重/高危安全问题;修复下载管道失败后继续启动 Upgrade 的错误行为;备份功能默认关闭(不再默认备份);移除 UpgradeMode 透传字段;新增跨版本优先更新(CVP-first)策略,自动降级为链式更新
Expand Down
Loading
Loading