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
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

本文件记录面向用户和集成方的重要变化。完整的发布叙事、升级说明和下载入口见对应版本的中文发布说明;实现证据和测试门禁见技术发布说明。

## [0.4.1] - 2026-08-08

### 新增

- Release 新增独立的 Windows x64 Automation ZIP,并继续提供单文件 GUI、Windows 完整包和 SHA-256 校验文件。
- 新增版本化中文发布说明、自动化接口中文快速入门,以及发布元数据和打包契约校验。

### 变更

- Windows Node CLI 在批量改写 rollout 时复用持久 PowerShell worker,避免为每个文件重复启动进程。
- 合并 rollout 内容扫描并复用不可变内容摘要;事务日志在 Windows 上复用已校验的写入租约。
- 缓存托管备份的大小与文件数统计,并在提交、恢复和回滚结束后刷新统计。

### 修复

- 活跃 rollout 在扫描期间变化时按“已跳过锁定文件”处理,不再中止其余历史会话同步。
- 备份统计刷新失败会作为警告返回,已提交或已恢复的操作仍会继续完成清理流程。
- 保持事务记录顺序、崩溃恢复、checked apply 重新校验和旧版备份恢复兼容性。

### 升级说明

- v0.4.0 Windows GUI 可以直接使用内置更新升级;内置更新仍只替换单文件 GUI。
- 升级不要求迁移配置、SQLite 或备份;自动化接口用户请手动下载新的 Automation ZIP 或 Windows 完整包。

[中文发布说明](docs/release-notes/v0.4.1-zh.md) · [完整变更对比](https://github.com/Dailin521/codex-provider-sync/compare/v0.4.0...v0.4.1)

## [0.4.0] - 2026-08-04

### 新增
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ $planDigest = $planResponse.data.digest

- [Windows GUI 说明](docs/README_GUI_ZH.md)
- macOS GUI 说明:[中文](docs/README_MAC_GUI_ZH.md) · [English](docs/README_MAC_GUI_EN.md)
- [v0.4.1 中文发布说明](docs/release-notes/v0.4.1-zh.md)
- [v0.4.0 中文发布说明](docs/release-notes/v0.4.0-zh.md)
- [v0.4.0 技术发布说明](docs/RELEASE_NOTES_V0.4.0.md)
- [更新日志](CHANGELOG.md)
Expand Down
6 changes: 3 additions & 3 deletions desktop/CodexProviderSync.App/CodexProviderSync.App.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
<AssemblyName>CodexProviderSync</AssemblyName>
<Product>Codex Provider Sync</Product>
<Company>Dailin521</Company>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
</PropertyGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
<Nullable>enable</Nullable>
<AssemblyName>CodexProviderSync.Automation</AssemblyName>
<RootNamespace>CodexProviderSync.Automation</RootNamespace>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions desktop/CodexProviderSync.Core/CodexProviderSync.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<RootNamespace>CodexProviderSync.GuiE2E</RootNamespace>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions desktop/CodexProviderSync.Mac/CodexProviderSync.Mac.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
<AssemblyName>CodexProviderSync</AssemblyName>
<Product>Codex Provider Sync</Product>
<Company>Dailin521</Company>
<Version>0.4.0</Version>
<AssemblyVersion>0.4.0.0</AssemblyVersion>
<FileVersion>0.4.0.0</FileVersion>
<Version>0.4.1</Version>
<AssemblyVersion>0.4.1.0</AssemblyVersion>
<FileVersion>0.4.1.0</FileVersion>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>

Expand Down
1 change: 1 addition & 0 deletions docs/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ Before each `sync` or `switch`, the tool creates a backup under:

- [Windows GUI guide](README_GUI_ZH.md)
- [macOS GUI guide](README_MAC_GUI_EN.md)
- [v0.4.1 Chinese release announcement](release-notes/v0.4.1-zh.md)
- [v0.4.0 Chinese release announcement](release-notes/v0.4.0-zh.md)
- [v0.4.0 technical release notes](RELEASE_NOTES_V0.4.0.md)
- [Changelog](../CHANGELOG.md)
Expand Down
58 changes: 58 additions & 0 deletions docs/release-notes/v0.4.1-zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<!-- release-title: v0.4.1 - 更快、更稳的大量历史会话同步 -->

> v0.4.1 面向拥有大量历史会话或大型 rollout 文件的用户,显著减少 Windows 同步过程中的重复进程启动、文件扫描和事务日志读取,同时完善备份统计与发布包交付。升级不改变配置、认证或自动化协议。

## 🚀 升级后,你可以

- **更快地同步大量历史会话**:Windows Node CLI 会复用同一个改写 worker,Core 也减少重复内容扫描和事务日志校验。
- **更可靠地看到备份占用信息**:备份文件数和大小会被缓存,并在提交、恢复或回滚结束后刷新;刷新失败会明确显示警告。
- **按使用场景选择下载包**:普通用户继续下载单文件 GUI,自动化用户可单独下载 Automation ZIP,也可下载包含全部工具的 Windows 完整包。

## 📦 下载

| 使用场景 | 下载 | 更新方式 |
| --- | --- | --- |
| 只需要 Windows GUI | [单文件 GUI](https://github.com/Dailin521/codex-provider-sync/releases/download/v0.4.1/CodexProviderSync.exe) | 支持软件内自动更新 |
| 脚本、CI 或 AI Agent | [Windows x64 自动化接口包](https://github.com/Dailin521/codex-provider-sync/releases/download/v0.4.1/codex-provider-sync-v0.4.1-automation-win-x64.zip) | 手动下载更新 |
| GUI 与自动化接口都需要 | [Windows x64 完整包](https://github.com/Dailin521/codex-provider-sync/releases/download/v0.4.1/codex-provider-sync-v0.4.1-win-x64.zip) | 手动下载更新 |

[查看全部 SHA-256 校验值](https://github.com/Dailin521/codex-provider-sync/releases/download/v0.4.1/checksums.txt)

当前 Windows 程序尚未进行代码签名,首次运行可能出现 SmartScreen 的“发布者未知”提示。请确认文件来自本项目 GitHub Release,并按需使用 SHA-256 校验下载内容。

## ⬆️ 升级说明

1. v0.4.0 Windows GUI 用户可以直接使用内置更新:每天首次启动会自动检查稳定版,也可以点击“检查更新”。
2. 内置更新只升级 GUI,不会安装 `CodexProviderSync.Automation.exe` 或协议描述文件;自动化用户请手动下载对应 ZIP。
3. 升级不要求迁移 `config.toml`、SQLite 数据库或已有托管备份。更新后建议先点击“刷新”或运行 `codex-provider status` 核对路径与 Provider。
4. 同步、切换或恢复前仍建议关闭 Codex Desktop、Codex App 和 app-server,以避免 SQLite 被占用或活跃 rollout 被跳过。

## 🛡 安全保障

- 工具不负责登录、认证或切换账号,不会修改 `auth.json`,也不会复制凭据到备份或测试夹具。
- 工具只同步会话可见性相关元数据,不改写对话正文、消息历史、会话标题、`updated_at` 或 `encrypted_content`。
- 写操作仍在目标修改前创建托管备份,并保留事务记录、失败回滚和崩溃恢复能力。
- checked apply 仍会在执行前重新验证目标状态;Windows 进程仍不会通过 WSL UNC 路径直接修改 SQLite。

## ⚙️ 自动化接口(实验性)

普通桌面用户可以跳过本节。v0.4.1 没有更改自动化协议版本;`describe`、`status`、`plan`、`sync`、`switch`、`restore` 和 `prune` 的调用方式保持兼容。新的独立 Automation ZIP 包含可执行文件、协议 schema 和中文快速说明。

## ⚠️ 重要说明

- 如果结果显示 `Skipped locked rollout files`,说明活跃会话在同步期间仍在写入;其余历史会话已继续处理。结束对应会话后再次同步即可完整改写。
- `\\wsl.localhost\...` 和 `\\wsl$\...` SQLite Home 在 Windows 中仅用于安全诊断;请进入对应 WSL 发行版,用 Linux 路径运行 CLI。
- 含 `encrypted_content` 的会话跨 Provider 或账号后,通常只能恢复列表可见性;继续对话或 compact 仍可能出现 `invalid_encrypted_content`。
- Codex Desktop 首屏可能只显示最近 50 条会话;本工具不会修改 `updated_at` 来改变排序。

## 🔍 验证结果

- PR #75 的 Node CLI 验证通过 207 项测试;100 个 rollout 文件的本地基准仅使用一个 Windows worker,约 1.1 秒完成。
- v0.4.1 发布准备验证通过 385 项 .NET 测试(1 项按环境跳过)和 210 项 Node 测试,Release 构建为 0 警告、0 错误。
- GitHub Actions `ci` 已在合并提交前通过;Release 工作流还会再次校验版本一致性、完整测试、Windows 发布构建、打包内容和 SHA-256 文件。

[查看 v0.4.0 到 v0.4.1 的完整代码变更](https://github.com/Dailin521/codex-provider-sync/compare/v0.4.0...v0.4.1)。

## 🙏 贡献者

感谢本轮审查与测试反馈帮助完善活跃 rollout 跳过策略、备份统计刷新、跨平台测试和恢复警告展示。
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codex-provider-sync",
"version": "0.4.0",
"version": "0.4.1",
"description": "Synchronize Codex session provider metadata across rollout files and SQLite state.",
"type": "module",
"files": [
Expand Down