Skip to content

AtomCode 自动更新与版本发布分析

基于 release API 抓包、本地备份 binary 对比、二进制字符串分析 2026-06-22


1. 发布版本系统

1.1 版本来源

API: https://api.atomgit.com/api/v5/repos/atomgit_atomcode/atomcode/releases/latest
下载: https://api.atomgit.com/atomgit_atomcode/atomcode/releases/download/<tag>/<binary>
页面: https://atomgit.com/atomgit_atomcode/atomcode/releases

1.2 支持平台与下载文件

平台二进制文件
Linux x64atomcode-v{version}-linux-x64
Linux arm64atomcode-v{version}-linux-arm64
macOS x64atomcode-v{version}-darwin-x64
macOS arm64 (Apple Silicon)atomcode-v{version}-darwin-arm64
Windows x64atomcode-v{version}-windows-x64.exe
HarmonyOS arm64atomcode-v{version}-ohos-arm64

每个平台同时提供 .tar.gz 压缩包。

1.3 版本管理文件

latest.json — 包含最新版本元数据(从 release API 获取)

2. 本地发现的版本

文件版本哈希大小创建时间
/usr/local/bin/atomcodev4.25.3 (current)11f30561...28,447,568 B06-20 23:28
~/.local/bin/atomcode.bakv4.25.1 (backup)5a026dd8...28,431,488 B06-19 13:59
staged/(空)06-20 23:28

backup binary 是之前的版本(二进制大小差 ~16KB),自动更新前被备份。


3. 更新流程(推断)

启动时检查 auto_update = true
  → 请求 releases/latest API
  → 比较本地版本与远程版本
  → 如有新版本:
    1. 备份当前 binary 到 atomcode.bak
    2. 下载新 binary 到 staged/
    3. 替换 atomcode binary
    4. 重启 daemon
    5. 清理 staged/

3.1 CLI 命令

命令功能
/upgrade升级到最新版本
/upgrade rollback回滚到备份版本
/upgrade --force跳过版本检查强制升级
sudo atomcode upgrade需要提权安装
brew upgrade atomcodeHomebrew 方式升级
--dev 参数禁用自动更新

4. v4.25.3 Release Notes 完整挖掘

通过 AtomGit API 获取到完整发布的版本说明:

4.1 新功能

写入审批增强:

  • Workspace-aware 自动审批:工作区内非敏感写入操作自动批准
  • 敏感路径保护~/.ssh.env/etc 等敏感路径始终提示审批
  • "总是允许" per 规范路径:出站写入权限按规范路径粒度缓存

4.2 修复

Windows 终端鼠标交互:

  • 移除 Windows 控制台模式的主动管理
  • conhost 和 Windows Terminal 上拖拽选择、复制、粘贴、滚轮恢复原生
  • conhost 鼠标滚轮修复

JetBrains IDE / JediTerm:

  • 修复 JediTerm 鼠标移动乱码(不再启用 Kitty 键盘协议)
  • 修复 panic 时 Kitty 协议残留

写入审批:

  • 修复"总是允许"退化为"允许一次"的 bug
  • edit_file / write_file 的"总是允许"现在按工具粒度缓存

4.3 文档更新

  • Slash-command 参考从 23 条补全至 48 条
  • 新增 /goal/effort/review/paste/exit 等命令文档
  • 新增 Mode & autonomy 特性说明
  • 新增微信通道插件文档

5. 更新相关源文件

crates/atomcode-core/src/self_update.rs
  → 全部更新逻辑
  → 含 rollback、force 升级
  → 备份 staged 机制

相关结构体:

struct PendingUpgrade with 6 elements

6. 更新过程安全性

步骤安全措施
备份自动创建 atomcode.bak
回滚/upgrade rollback 可用
失败处理"upgrade failed" 消息 + 回滚
权限检查sudo atomcode upgrade
提权提醒"Re-run with elevated privileges"

7. 二进制差异统计

对比项v4.25.1 (backup)v4.25.3 (current)差异
文件大小28,431,488 B28,447,568 B+16,080 B
哈希5a026dd8...11f30561...完全不同
更新日期06-1906-20~1 天间隔
自动更新启动触发启动触发

差异主要在:写入审批系统、Windows 终端处理、JetBrains IDE 兼容性。

逆向命令索引

bash
# 提取自更新相关
strings atomcode.bin.bak | grep -iE "self_update|PendingUpgrade|upgrade|rollback" | sort -u | head -10

# 提取升级命令
strings atomcode.bin.bak | grep -E "upgrade|rollback|ATOMCODE_INTERNAL_PREPARE" | sort -u
# 输出: /upgrade [rollback|--force] ATOMCODE_INTERNAL_PREPARE_UPGRADE

基于 VitePress 构建 · AtomCode v4.25.3 逆向工程分析文档