JianFeeeee
357662ed08
fix(homeagent): 不再把 SDK 版本钉在源码里;构建期按内核的依赖表校验对齐
崩溃循环的根因不是"忘了重编",是**把 SDK 版本钉死**:
- `plugin.json`/`plg.json` 写死 `"sdk": "1.3.0"`(本机已装 21 个插件里只有 3 个声明该字段);
- `go.mod` 的 replace 指向 `/root/.homeagent/hmapdev/sdk/v1.3.0`(绝对路径 + 具体版本目录)。
于是"照原样重编"只会再造一个装上去就崩的包。实测本机内核链的是**另一条 SDK 血脉**:
$ go version -m /usr/local/bin/homed
dep gitcode.com/JianFeeeee/homeagent-sdk v0.9.2
=> ./third_party/homeagent-sdk (devel)
所以判据改成**两个二进制的依赖表一致**,而不是"版本号看起来像":
- `build.sh`:读内核的 SDK 依赖(`go version -m`)→ 据此解析 SDK 源码目录 →
用 `-modfile` 临时替换(不改动受版本管理的 go.mod)→ 构建 → **回头验产物**:
产物与内核链的 SDK 版本不一致就报错退出,绝不产出"装上去就崩"的包。
- `manifest_sdk_test.go`:① 清单不许写死 `sdk`;② go.mod 的钉子不得偏离构建机指针
(取不到基准就红,不许默默放过);③ `build.sh` 必须在(它是与内核对齐的硬校验点)。
三条都做过变异验证(写死 sdk / 钉子漂到 v1.2.0 / 删掉 build.sh → 各自红)。
顺带查出一个比"重编"更根本的事实:本机 `build.sh` 跑到编译就失败 ——
./plugin.go:217:18: sett.DataDir undefined (type sdk.SettingsAPI has no field or method DataDir)
即本插件源码用的是 **1.3.0 SDK 的 API**,而本机内核链的是 0.9.x 血脉:**重编解决不了**,
要么内核改成链 1.3.x 的 SDK,要么把插件移植到内核那份 SDK(这是 HomeAgent 侧的决定)。
2026-09-14 16:27:02 +08:00
..
2026-09-14 16:21:27 +08:00
2026-09-14 16:27:02 +08:00
2026-09-14 16:21:27 +08:00
2026-09-14 16:21:27 +08:00
2026-09-14 16:21:27 +08:00