今天早上我打开 Hermes Agent 仓库,版本号告诉我 0.18.1。我翻了一下时间——v0.18.0 是 7 月 1 日 20:08 UTC(北京时间 7 月 2 日 04:08),v0.18.1 是 7 月 8 日 09:15 BJT。中间隔了 6 天 5 小时 7 分钟。
按 Hermes 之前的节奏,这算"主版本之后第一个小版本"。
但我仔细一看 release notes——v0.18.1 的 release notes 是空的。整个 GitHub Release 页面只写了一段话:
"This is an infrastructure-driven patch tag rather than a fully curated release. Since v0.18.0 shipped six days ago, main has accumulated roughly 667 commits across ~990 files..."
也就是说,这 6 天 main 分支上攒了 700+ 个 commits / 990 个文件 / 384 个 PR,v0.18.1 这个 tag 是为了"给下游 Docker / PyPI 用户一个稳定版本",不是"新功能发布"。所有 700+ PR 的 release notes 都要等 v0.19.0 才出。
然后我去翻 v0.18.1 之后的版本——v0.18.2 (v2026.7.7.2) 已经发了,2026-07-08 11:11 BJT。v0.18.1 到 v0.18.2 只隔了 1 小时 56 分钟。
我查了一下 v0.18.2 的 release notes:就 1 个 PR,#60643 fix(whatsapp): unpin Baileys from git commit, use published 7.0.0-rc13。修的是 Docker 镜像 build 失败的问题。
这是怎么发生的?我去把数据翻完了,写下来。
v0.18.1 不是"新版本",是"清仓版"
Hermes 这次发布说明里明确写了:
"Full curated release notes for this window will ship with v0.19.0, which will document everything from v0.18.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped; it's documented in the next minor release."
翻译成人话:v0.18.1 = 一个 tag,告诉你"6 天攒的东西都在这里了",但 release notes 写在 v0.19.0 里。
这跟 OpenCode 的"小步快跑 + 快速热修"不一样。OpenCode 是每次发布都有 release notes,hotfix 也有;Hermes 这次是 "积压 6 天 → 发一个 tag 标个 stable → 真正的 notes 等 v0.19.0"。
我数了一下 v0.18.0 → v0.18.1 这个窗口:
- 384 个 PR 合并(我爬 GitHub API 拉了一遍)
- 710 个 commits(release notes 写 667,我 API 拉到 710,可能因为 v0.18.1 → v0.18.2 之间还有几个 merge commit)
- 300+ 个文件改动(API 单次最多返回 300,真实数字更大)
- +11.5k / -2.5k 行(同上,API 截断后的数)
- 21 个 contributor
conventional commit 分类:
63% 是 fix,19% 是 feat。基本上 v0.18.0 那一波"Judgment Release"(1,720 commits / 998 PR)留下来没修干净的小问题,这 6 天里陆陆续续补上。
8 大热点:21 个人里这 6 个干了 96%
按 PR 数排序的 Top 8 改动领域:
- gateway(56 PR)——#60730 加了 generic OIDC client-credentials relay(NAS / Synology 部署用),#60589 加了 GATEWAY_MULTIPLEX_PROFILES 环境变量强制多 profile,还有 fix(cron) 修 shutdown drain 漏 in-flight cron work
- provider(45 PR)——dashboard chat model profile scoping、memory provider switching、fix(bedrock) Converse API routing、fix(agent) cross-turn stale circuit breaker
- tools / safety(37 PR)——#60710 加了 fail-closed pre-write syntax gate(写 JSON/YAML/TOML 前先检查语法),fix(discord) opt-in owner mentions on exec-approval
- dashboard(16 PR)——WhatsApp dashboard pairing flow、profile + gateway topology in /api/status、truecolor support
- mcp(13 PR)——#60509 一次性修了 4 个 stdio subprocess leak paths、session-expired retry、server name sanitize
- tui(10 PR)——#57225 warn pip/Homebrew 安装不被官方支持、model picker refresh、stop --tui -m 误改全局 model
- whatsapp(6 PR)——native Baileys polls、clarify-as-poll、locations、resolve LID sender IDs
- browser(6 PR)——6 个 P1 hardening 一起 salvage、CAMOFOX eval 私有页 guard
贡献者分布:
@teknium1 一个人扛了 63%。这跟 OpenCode 的 @arvsrn 模式不一样——teknium1 是 Hermes 的核心 maintainer(teknium),他一个人就是 v0.18.0 → v0.18.1 这波修改的最大贡献者。
v0.18.2:1.94 小时的紧急补丁
v0.18.2 这次发布说明特别短:
"Same-day patch on top of v0.18.1, picking up the WhatsApp Baileys dependency fix needed for tagged-release Docker builds."
1 个 PR:
- #60643(@teknium1):fix(whatsapp): unpin Baileys from git commit, use published 7.0.0-rc13 · 2 files · +294 / -258
这个 PR 修的是什么?
v0.18.0 期间,Baileys(Hermes 用的 WhatsApp 桥接库)还没发 npm 正式版,@teknium1 临时在 package.json 里 pin 了一个 git commit:
这样 dev 环境能跑。但v0.18.1 打 Docker 镜像时挂了——npm 装 pinned git commit 要 clone 整个仓库取那个 commit,~3 分钟;Docker build 的 npm 上下文在某些网络下 clone 不到那个 commit。
后来 Baileys 7.0.0-rc13 上了 npm,@teknium1 把 package.json 改成:
npm install 从 3 分钟变 3 秒(~60 倍提速),Docker 镜像 build 不再挂。
全流程 1.94 小时:v0.18.1 发出来 → 用户报 bug → 开 PR → 合 → tag v0.18.2。
这种发布节奏意味着什么?
我之前写过 OpenCode 的 v1.17.15,那次是"20 小时 41 分钟的 hotfix"。这次的 Hermes v0.18.1+v0.18.2 是另一种节奏:
OpenCode 的"小步快跑"模式:
- 主版本(3-5 天,带新功能,有 release notes)
- 补丁版(0.5-1 天,修 hotfix,有 release notes)
- 每次发布都有 PR 列表
Hermes 的"积压式清仓"模式:
- 主版本(10-14 天,带新功能,有完整 release notes)
- 小版本(5-7 天,积攒 fix/feat,release notes 留到下一个大版本)
- 当日补丁(< 2 小时,1-3 个 PR,release notes 极短)
这两种模式都健康,只是节奏不同。OpenCode 是"每次发布都讲清楚改了什么",Hermes 是"这次发的就是 tag,notes 下次再说"。
对用户的影响:
- 升级 OpenCode:每次升级都看 release notes,决定要不要升
- 升级 Hermes:跟着版本号走就行,因为 notes 不会那么及时
v0.18.1 要不要升?
我建议升,特别是:
应该升:
- 用 Docker 镜像的——v0.18.2 修了你 build 失败的 bug
- 用 PyPI pip install 的——同样修了你 install 失败的问题
- 用 gateway 部署的(NAS / Synology)——#60730 加了 OIDC client-credentials relay
- 用 dashboard 的——profile + gateway topology、truecolor 改进
- 用 MCP 服务的——4 个 stdio subprocess leak paths 全修了
- 用 tools / safety 写文件的——#60710 pre-write syntax gate 防止写坏 JSON/YAML/TOML
可以不升:
- 只在本地 dev 用过 npm install 的——本地环境早就有 pinned git commit,install 失败影响不到你
- 用 hermes update 命令的——v0.18.1 → v0.18.2 没什么破坏性改动
总结
v0.18.1 是"清仓版",v0.18.2 是"自愈补丁"。
- v0.18.1:6 天 5 小时 7 分钟攒的 384 PR(238 fix + 73 feat + 73 other),21 个 contributor。release notes 留给 v0.19.0
- v0.18.2:1 小时 56 分钟,1 个 PR,#60643 unpin Baileys 改 npm 7.0.0-rc13,修 Docker build
- 发布节奏:主版本(10-14 天) → 小版本(5-7 天) → 当日补丁(< 2 小时)——比 OpenCode 慢但更"积压"
- 核心 maintainer:@teknium1 一人扛了 63% 的 PR(243 个)
hermes update 升一下,不会破坏现有配置。






