事实
agent-network/src/opencode-agent-node-pair.ts 的 RFC-029 配对 pin 与已发布版本失同步:
pin 里: OPENCODE_AGENT_NETWORK_VERSION = "2.3.0-preview.34"
OPENCODE_AGENT_NODE_VERSION = "2.5.0-preview.28"
npm 上: @sleep2agi/agent-network@preview = 2.3.0-preview.39
@sleep2agi/agent-node@preview = 2.5.0-preview.31
后果:opencodeExactPairInstallCommand() 给用户的安装命令仍指向 .34/.28,
落后已发布的 preview 三个版本。
绊线是有的,而且正在响 —— 只是没人听见
源码注释写得很明确:
Keep this exact pair in lockstep with the two preview package versions;
the unit test intentionally fails when either package is bumped independently.
对应测试 OpenCode agent-node release pairing > pins the exact versions being released together
当前就是红的:
Expected: "2.3.0-preview.39"
Received: "2.3.0-preview.34"
设计完全正确 —— 它就是为了在有人只 bump 包、不动 pin 时报红。它做到了。
问题是没有任何门在跑 agent-network 的单测,所以这条红从发版那天起一直无人看见。
两条更一般的缺口
① 未被门覆盖的范围比 #725 说的更大。
#725 讲的是 agent-node 单测没有门;agent-network 的单测同样没有门。
证据:本机跑 bun test src/(agent-network)得到 433 pass / 3 fail,
三条红都是 main 上既有的,没有任何 CI 报告它们。
② 我给 RELEASE-SOP 加的 Step 10 不完整。
#734 我给发版流程加了「取远端核」,核的是三个包的版本号 + PINNED_SERVER_VERSION。
漏了这第二条 pin。 这次就是这么漏过去的 —— 发版时我知道这个 pin 存在、
也知道它「本次未动」,但 SOP 的检查清单里没有它,于是没有任何机制拦住。
Step 10 应当补上这一条。
我没有做的事
没有把 pin 改成 .39/.31。 这个 pin 的语义是「经过验证的精确配对」,
把它指向 .39/.31 等于声称那一对已被验证可用于 opencode 共存 —— 我没有验过
(我只在容器里验了 agent-network@preview + opencode-ai@1.18.1 能跑通 smoke,
没有验 agent-node@2.5.0-preview.31 那一半)。
所以这里有两条路,归 owner 定:
- 验证后同步 pin —— 跑一次
.39/.31 的 opencode 共存 smoke,过了再改 pin;
- 接受 pin 落后 —— 但那样这条测试会一直红,等于长期有一条噪音红,
而且会掩盖下一次真正的漂移。
无论选哪条,先给 agent-network 单测加门,否则下次同样看不见。
事实
agent-network/src/opencode-agent-node-pair.ts的 RFC-029 配对 pin 与已发布版本失同步:后果:
opencodeExactPairInstallCommand()给用户的安装命令仍指向.34/.28,落后已发布的 preview 三个版本。
绊线是有的,而且正在响 —— 只是没人听见
源码注释写得很明确:
对应测试
OpenCode agent-node release pairing > pins the exact versions being released together当前就是红的:
设计完全正确 —— 它就是为了在有人只 bump 包、不动 pin 时报红。它做到了。
问题是没有任何门在跑 agent-network 的单测,所以这条红从发版那天起一直无人看见。
两条更一般的缺口
① 未被门覆盖的范围比 #725 说的更大。
#725 讲的是 agent-node 单测没有门;
agent-network的单测同样没有门。证据:本机跑
bun test src/(agent-network)得到 433 pass / 3 fail,三条红都是 main 上既有的,没有任何 CI 报告它们。
② 我给 RELEASE-SOP 加的 Step 10 不完整。
#734 我给发版流程加了「取远端核」,核的是三个包的版本号 +
PINNED_SERVER_VERSION。漏了这第二条 pin。 这次就是这么漏过去的 —— 发版时我知道这个 pin 存在、
也知道它「本次未动」,但 SOP 的检查清单里没有它,于是没有任何机制拦住。
Step 10 应当补上这一条。
我没有做的事
没有把 pin 改成
.39/.31。 这个 pin 的语义是「经过验证的精确配对」,把它指向
.39/.31等于声称那一对已被验证可用于 opencode 共存 —— 我没有验过(我只在容器里验了
agent-network@preview+opencode-ai@1.18.1能跑通 smoke,没有验
agent-node@2.5.0-preview.31那一半)。所以这里有两条路,归 owner 定:
.39/.31的 opencode 共存 smoke,过了再改 pin;而且会掩盖下一次真正的漂移。
无论选哪条,先给 agent-network 单测加门,否则下次同样看不见。