tk3.biz
返回博客列表

试着更新 dev-orchestra(Claude Code / Codex / Antigravity)

前言

上一篇,我把自己写的智能体接入了 dev-orchestra。本系列的最后一篇,讲的是如何把 dev-orchestra 更新到新版本。

dev-orchestra 在 1.0.0 之后,发布了 1.1.0 和 1.1.1。更新的方法因所用的 CLI 而异。所以我在 Claude Code、Codex 和 Antigravity 中,分别实际试了一遍从 1.0.0 升级到 1.1.1。

测试时,我准备了与日常配置分开的文件夹,在里面安装 1.0.0,然后再更新(Claude Code 把 CLAUDE_CONFIG_DIR、Codex 把 CODEX_HOME 指向了工作用的文件夹)。

  • Windows 11
  • Claude Code 2.1.301
  • Codex CLI 0.163.0
  • Antigravity CLI(agy)1.3.6

关于 dev-orchestra 是做什么的,请看介绍文章。

dev-orchestra 已在 GitHub 上开源(MIT 许可证)。如果你觉得有用,给个 Star 我会很高兴。

→ github.com/istb16/dev-orchestra

先说结论

CLI更新方法生效时机
Claude Codeclaude plugin marketplace update dev-orchestra → claude plugin update dev-orchestra重启 Claude Code
Codexcodex plugin marketplace upgrade dev-orchestra → codex plugin add dev-orchestra@dev-orchestra从下一个会话开始
Antigravity(以链接方式安装)在 checkout 中执行 git fetch --tags → git checkout <新版本的标签>(这次是 v1.1.1)重启 Antigravity
Antigravity(以复制方式安装)同样切换标签后,再执行一次安装时用的命令重启 Antigravity

最容易踩坑的是 Claude Code:只执行 claude plugin update 并不会更新。

步骤

1. 确认当前版本

在每个 CLI 中,都可以通过已安装插件的列表看到版本。

claude plugin list
codex plugin list
agy plugin list

Claude Code 中会这样显示(节选)。

  ❯ dev-orchestra@dev-orchestra
    Version: 1.0.0
    Scope: user

最新版本可以在 GitHub 的 Releases 或 CHANGELOG 中确认。

2. Claude Code:先更新 marketplace,再更新插件

帮助中写着,claude plugin update 会“更新到最新版本(需要重启才能生效)”。所以我先只执行了这一条。

$ claude plugin update dev-orchestra
Checking for updates for plugin "dev-orchestra"…
✔ dev-orchestra is already at the latest version (1.0.0).

它提示“已经是最新版本(1.0.0)”,并没有更新。 这是因为 Claude Code 本地保存的 marketplace 信息还是旧的,不知道 1.1.1 已经发布。

先更新 marketplace 之后,这次就更新成功了。

$ claude plugin marketplace update dev-orchestra
✔ Successfully updated marketplace: dev-orchestra

$ claude plugin update dev-orchestra
Checking for updates for plugin "dev-orchestra"…
✔ Plugin "dev-orchestra" updated from 1.0.0 to 1.1.1 for scope user. Restart to apply changes.

另外,只执行 claude plugin marketplace update 时,claude plugin list 中的版本仍是 1.0.0。两条命令都需要。

正如最后一行所示,重启 Claude Code 后才会使用新版本。

也可以在 Claude Code 会话中用 /plugin 操作,但这次我只试了在终端中执行的命令。

3. Codex:重新获取快照,再重新添加插件

Codex 会把 marketplace 以快照的形式保存在本地。首先重新获取它。

$ codex plugin marketplace upgrade dev-orchestra
Upgraded marketplace `dev-orchestra` to the latest configured revision.

接着,再执行一次安装时用的命令。

$ codex plugin add dev-orchestra@dev-orchestra
Added plugin `dev-orchestra` from marketplace `dev-orchestra`.

$ codex plugin list
dev-orchestra@dev-orchestra  installed, enabled  1.1.1  ...

这次使用的 Codex 0.163.0,在执行 upgrade 时就已经换成了 1.1.1。不过,我写 Codex 篇时,只执行 upgrade 并不会装上新版本,所以最好连 plugin add 也执行一下,这样更保险。再执行一次也没有问题。

新版本会从下一个启动的会话开始使用。

4. Antigravity:取决于安装方式

Antigravity 会加载放在 plugins/ 文件夹中的目录。因此,更新方法取决于当初是怎么放进去的。

以链接方式安装的情况

如果你是用 install.sh --antigravity(Windows 上是 install.ps1 -Antigravity)把仓库的 checkout 做成链接的,只需把 checkout 切换到新版本的标签。在 Antigravity 篇中,我是 checkout 了标签(v1.0.0)来安装的,所以现在切换到新版本的标签(这里是 v1.1.1)。

cd dev-orchestra
git fetch --tags
git checkout v1.1.1

如果你的 checkout 是跟踪分支(main)的,用 git pull 也可以。

在 Windows 上,PowerShell 版的安装程序会创建目录联接(junction),而不是链接。把 checkout 从 1.0.0 切换到 1.1.1 后,通过联接看到的 plugin.json 中的版本也直接从 1.0.0 变成了 1.1.1。macOS / Linux 的符号链接这次没有试(只试了 Windows 的联接)。

然后重启 Antigravity。

以复制方式安装的情况

采用下面这些安装方式时,放置的是副本。

  • install.sh --antigravity --copy
  • install.ps1 -Antigravity -Copy
  • agy plugin install <checkout 的路径>
  • 在 Windows 的 Git Bash 中执行了 install.sh --antigravity(Git Bash 的 ln -s 创建的是副本,而不是链接)

副本不会因为切换 checkout 而改变。和链接的情况一样切换标签后,再执行一次安装时用的命令。

git fetch --tags
git checkout v1.1.1
./install/install.sh --antigravity --copy

如果是在 Windows 的 PowerShell 中安装的,则是这样。

git fetch --tags
git checkout v1.1.1
.\install\install.ps1 -Antigravity -Copy

安装程序会替换掉之前的副本。

Replaced the existing install at .../.gemini/config/plugins/dev-orchestra
Copied the plugin to .../.gemini/config/plugins/dev-orchestra
Re-run this installer after `git pull` to upgrade.

提示信息中写的是 git pull,但对于 checkout 了标签的情况,要像上面那样切换标签,而不是用 git pull。

如果是用 agy plugin install <路径> 安装的,再执行一次后,agy plugin list 中的版本也从 1.0.0 变成了 1.1.1。无论哪种情况,最后都要重启 Antigravity。

如果你用的是安装程序,但不确定自己是哪种方式,请看一下 ~/.gemini/config/plugins/dev-orchestra 是不是链接(Windows 上是联接)。如果是普通文件夹,那就是副本。用 agy plugin install 安装的会放在别的位置,并且始终是副本。

5. 从 checkout 直接安装的情况

如果不经过 CLI 的插件机制,而是直接从 checkout 安装,思路也是一样的。README 的“Upgrading”中写着,从 checkout 安装的,用 git pull 更新。如果 checkout 的是标签,就像上面那样切换标签。如果是用 --copy 安装的,之后再执行一次安装程序(references/workflow.md 的“Installing from a skill checkout”)。这种安装方式这次没有试。

6. 更新之后要确认的事

执行一次 dev-orchestra doctor(让 Claude Code 等智能体“运行 dev-orchestra 的 doctor”也一样)。它可以检查 CLI、配置和模型在当前版本下是否仍然没有问题。显示 No problems found. 就没问题,但下面也可能出现提示,请一并阅读。如下面的例子所示,可能会出现某项设置被忽略的提示。

在我的测试环境中出现了这样的差异。原因是我的配置文件里已经提前写了 1.1.0 新增的 design.ask_questions。1.0.0 的 doctor 会把它作为未知设置提示出来,而在 1.1.1 中这条提示消失了。

== 1.0.0
No problems found.
  - design.ask_questions in the global file: unknown key, ignored
== 1.1.1
No problems found.

另外,了解下面这些也会更放心。

  • 配置和自制的适配器不会丢失。 配置(config.yaml)和自制的适配器(<配置目录>/providers/)位于插件之外的配置目录中。更新插件后,它们会原样保留
  • 看一下 CHANGELOG。 在主版本号相同的期间,配置、产物和命令都遵循保持兼容的方针。如果有需要处理的变更,会写在 CHANGELOG 中
  • 新功能通常要自己启用才会生效。 例如 1.1.0 加入的“设计之前先提问”功能(design.ask_questions)默认是关闭的。仅仅更新,并不会改变以往的运行方式

总结

  • 当前版本可以用 claude plugin list / codex plugin list / agy plugin list 查看
  • Claude Code:claude plugin marketplace update dev-orchestra → claude plugin update dev-orchestra → 重启。只执行 plugin update 会提示“已是最新”而不更新
  • Codex:codex plugin marketplace upgrade dev-orchestra → codex plugin add dev-orchestra@dev-orchestra。从下一个会话开始使用
  • Antigravity:如果是链接,就把 checkout 切换到新版本的标签(git fetch --tags → git checkout <新版本的标签>,这次是 v1.1.1;如果跟踪的是分支,则用 git pull)。如果是复制,之后再执行一次安装时的命令。两种情况都要重启
  • 更新后执行一次 doctor。配置和自制的适配器不会丢失

本系列到此结束。想从头阅读,请从介绍文章开始;想一次看全部,请看“dev-orchestra”文章列表。发布新版本时,请按本文的步骤更新。

GitHub: istb16/dev-orchestra(给个 Star 就是对我最大的鼓励)

相关文章