Skip to content

fix(engine): 补上 ProtocolVersion 缺失的 minor 提升到 2.1.0 - #280

Merged
SheathedSharp merged 1 commit into
mainfrom
fix/protocol-version-missing-bump
Nov 12, 2026
Merged

SheathedSharp merged 1 commit into
mainfrom
fix/protocol-version-missing-bump

Conversation

@SheathedSharp

Copy link
Copy Markdown
Owner

问题

engine/internal/daemon/rpc/types.go:14 规定的规则是:additive change 提升 minor,删除字段提升 major。历史照此执行:

tag VERSION ProtocolVersion
v1.2.3 1.2.3 1.1.0
v1.3.0 1.3.0 1.2.0
v1.4.0 1.4.0 1.3.0
v2.0.0 2.0.0 2.0.0
HEAD(修复前) 2.0.0 2.0.0 ← 但协议变了

v2.0.0 之后有两个提交对协议做了新增:

  • 557af8c9 新增 groups.code 方法及 GroupsCodeParams / GroupsCodeResult / ServiceCode
  • 7a0127e8 给 GroupsKillParams 新增 expect_runs 字段与 RunExpectation 类型

协议 schema 也确实变了(+121 行,含新方法 groups.code)。按规则 ProtocolVersion 应为 2.1.0,实际仍是 2.0.0。

后果:v2.0.0 的客户端与当前 daemon 握手时双方都声称 2.0.0,但实际能力不同。7a0127e8 的提交信息自己写明「daemon 通过 groups.kill.expect_runs 能力宣告该字段,旧 daemon 会静默丢弃它」,说明兼容性含义已知,只是版本号没跟上。

改动

  • types.go:ProtocolVersion 2.0.0 → 2.1.0,并在注释里记下 2.1.0 新增的两个内容,指明客户端应按能力位(CapabilityKillExpectRuns)判断,而不是按版本号
  • protocol.schema.json:go generate ./internal/daemon/rpc/ 重生成,diff 只有 protocol_version 一行,无其他漂移

验证

实际执行并通过:

  • python3 scripts/release.py --verify-only → 完整门槛通过(含 race 与真实服务场景、266 个 helper 测试 OK / skipped=1、品牌几何校验)
  • go generate ./internal/daemon/rpc/ 后确认 schema diff 仅版本号一行

未执行:Windows 原生构建(由 PR 的 Windows checks 覆盖)。

🤖 Generated with Claude Code

2.0.0 之后新增了 groups.code 方法与 GroupsKillParams.ExpectRuns 字段,都属于
types.go 规则里的 additive change,但 ProtocolVersion 一直停在 2.0.0,导致
握手双方都自称 2.0.0 而能力并不相同。提升到 2.1.0 并重生成 schema。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@SheathedSharp
SheathedSharp merged commit 5108c63 into main Nov 12, 2026
13 checks passed
@SheathedSharp
SheathedSharp deleted the fix/protocol-version-missing-bump branch November 12, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant