Skip to content

CoderRelay v0.8.0 — Verified Automatic Updates and Faster macOS Startup

Latest

Choose a tag to compare

@Lortzing Lortzing released this 25 Jul 03:21

CoderRelay v0.8.0

CoderRelay v0.8.0 重点完善了跨平台发布体验,引入经过校验的自动更新机制,并显著优化了 macOS 命令启动速度。

主要更新

跨平台自动更新

从 v0.8.0 开始,可直接运行:

cdy update

其他用法:

cdy update -y
cdy update --force
  • -y:跳过更新确认。
  • --force:即使当前版本与最新版本相同,也重新安装最新稳定版。

更新器会:

  1. 查询最新的稳定 GitHub Release。
  2. 检测当前操作系统、CPU 架构和安装方式。
  3. 选择匹配的安装资产。
  4. 下载目标文件和 SHA256SUMS.txt
  5. 校验文件大小和 SHA-256。
  6. 校验通过后执行平台对应的升级流程。

更新不再直接追踪 main 分支,而是安装最新稳定 Release。

Windows 自动更新

支持以下安装形式:

  • Windows Setup 安装版;
  • Windows Portable 便携版;
  • x86;
  • x86_64;
  • ARM64。

Setup 安装版会在当前 CoderRelay 进程退出后,静默启动新版本安装程序。

便携版会下载对应 ZIP,校验并提取新的 cdy.exe,随后在当前进程退出后原地替换旧文件。

macOS 自动更新

macOS 更新器会:

  1. 下载与当前架构匹配的 DMG;
  2. 校验 DMG 的 SHA-256;
  3. 自动挂载 DMG;
  4. 查找其中的 PKG;
  5. 调用 macOS 系统安装器完成升级;
  6. 卸载临时挂载的磁盘映像。

由于 PKG 安装到 /usr/local,更新过程中可能要求输入管理员密码。

支持:

Intel x86_64
Apple Silicon ARM64

Linux 自动更新

支持自动识别当前安装方式:

  • DEB:使用 apt-getdpkg
  • RPM:使用 dnfyumrpm
  • TAR.GZ:校验后原地替换当前 cdy 可执行文件。

支持:

x86_64
AArch64

Python 包稳定版更新

通过以下方式安装的 CoderRelay 也支持 cdy update

  • uv tool
  • pipx
  • pip

更新器会识别当前 Python 环境所属的包管理器,并继续使用相同工具安装最新稳定 Tag。

例如,通过 uv tool 安装的版本不会因为系统中同时存在 pipx 而切换安装方式。

macOS 启动速度优化

此前 macOS 版本使用 PyInstaller --onefile 构建。

单文件程序每次启动时都需要将 Python 运行时和依赖解压到临时目录,因此即使运行:

cdy --help

也可能产生明显延迟。

v0.8.0 改为 PyInstaller --onedir 目录式运行时:

/usr/local/lib/coder-relay/
├── cdy
└── _internal/

命令入口保持不变:

/usr/local/bin/cdy
    → ../lib/coder-relay/cdy

运行时只在安装阶段写入一次,后续命令启动不再重复解压。

可以使用以下命令测试:

time cdy --help
time cdy --help

安全校验

自动更新要求 Release 中同时存在:

SHA256SUMS.txt

更新器会检查:

  • 下载文件大小;
  • SHA256SUMS.txt 中是否包含目标资产;
  • 文件实际 SHA-256 是否与清单一致;
  • GitHub 提供的资产摘要,如果可用。

以下情况会立即停止更新:

  • 找不到当前平台对应的资产;
  • Release 缺少 SHA256SUMS.txt
  • 校验清单中缺少目标文件;
  • 文件大小不匹配;
  • SHA-256 不匹配;
  • 下载或安装过程失败。

校验失败时不会覆盖当前安装。

数据保留

更新过程不会删除:

~/.config/coder-relay/
~/.codex/auth.json
~/.codex/config.toml

以下数据会继续保留:

  • 已保存的 Profile;
  • Profile 备份;
  • 当前活动状态;
  • 自动切换状态;
  • Codex 登录信息;
  • Codex 配置文件。

更新命令

交互式更新:

cdy update

跳过确认:

cdy update -y

重新安装当前最新稳定版:

cdy update --force

从 v0.7.0 升级

v0.7.0 及更早版本本身不包含自动下载和安装逻辑,因此无法直接通过旧版 cdy update 升级到 v0.8.0。

需要手动下载安装 v0.8.0 一次。

从 v0.8.0 开始,后续稳定版本可直接使用:

cdy update

安装资产

Windows

CoderRelay-Setup-0.8.0-windows-x86.exe
CoderRelay-Setup-0.8.0-windows-x86_64.exe
CoderRelay-Setup-0.8.0-windows-arm64.exe

CoderRelay-Portable-0.8.0-windows-x86.zip
CoderRelay-Portable-0.8.0-windows-x86_64.zip
CoderRelay-Portable-0.8.0-windows-arm64.zip

macOS

CoderRelay-0.8.0-macOS-x86_64.dmg
CoderRelay-0.8.0-macOS-arm64.dmg

Linux

coder-relay-0.8.0-linux-x86_64.tar.gz
coder-relay-0.8.0-linux-aarch64.tar.gz

coder-relay_0.8.0_amd64.deb
coder-relay_0.8.0_arm64.deb

coder-relay-0.8.0-1.x86_64.rpm
coder-relay-0.8.0-1.aarch64.rpm

校验文件

SHA256SUMS.txt

其他改进

  • Python 包更新不再直接安装 GitHub main
  • Python 更新会保留原有包管理器。
  • macOS 卸载支持清理目录式运行时和命令符号链接。
  • Windows 安装器测试使用独立进程等待和真实退出码。
  • Windows 安装失败时会输出完整 Inno Setup 日志。
  • 各平台构建成功后独立上传 Release 资产。
  • 单个平台或架构失败不会阻止其他成功资产发布。

注意事项

当前 Windows 和 macOS 安装包未进行数字签名或 Apple 公证。

因此:

  • Windows 可能显示 SmartScreen 或“未知发布者”提示;
  • macOS 可能显示无法验证开发者或阻止打开的提示。

请仅从 CoderRelay 官方 GitHub Release 下载文件,并使用 SHA256SUMS.txt 校验完整性。