mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-20 00:48:12 +00:00
## 为何是主版本号
公开 SDK 接口(sdk/ 目录)本轮**零改动**,插件业务代码一行不用改。
但产物形态变了:plugin.so → plugin.bin。0.9.x 内核只会 dlopen `.so`,
本版工具链产出的 `plugin.bin` 在旧内核上根本不会被识别——
这是不可互操作的破坏性变化,故 CoreVersion 也升 1.0.0 作为**硬下限**
而非建议值。
## 删掉的死代码
ABIVersion / ABIVersionMin / CABINum / CABINumMin / 51 个 Core<Method>
整数 ID,全部无使用者:
grep -rn "CABINum" --include=*.go --include=*.tmpl . → 只有定义处
grep -rn "meta.Core[A-Z]" ... → 无
它们随 Part 6.2 删除 internal/plugin/cabi/ 就已失效:
- 整数 method id 平移为 method 名字符串(proc/protocol.go 的 Method* 常量)
- 版本协商改为握手帧里的 protocol 字段
留着有实际危害——下一个读这个文件的人会以为 C 层协商还在生效,
或者以为加 method 时要同步维护那张整数表。
## 协议版本与语义版本解耦
新注释写明:子进程 RPC 的 protocol 是独立小整数(当前 1),
只在帧格式或握手语义变化时升;语义版本变动频繁(修 bug、加字段)
不应牵动 wire 协议。这两者以前被 ABIVersion = CoreVersion 绑在一起,
现在分开。
验证:go build ./... 通过;git diff sdk/ 为空(接口冻结不变量)。