From 83a5787ac9499e77e29e6be0b761854dd4339c95 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 28 Sep 2026 09:40:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(homeagent=E6=A1=A5):=20SDK=20=E9=92=89?= =?UTF-8?q?=E5=AD=90=E6=8C=87=E5=90=91=20v1.3.0=EF=BC=8C=E8=80=8C=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E6=9C=BA=E6=8C=87=E9=92=88=E5=B7=B2=E6=98=AF=20v1.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 现象 `go test ./...`(在该包内)红: --- FAIL: TestSDKPinMatchesBuildMachinePointer go.mod 的 SDK 钉子偏离了构建机指针: 钉子: /root/.homeagent/hmapdev/sdk/v1.3.0 指针: /root/.homeagent/hmapdev/sdk/v1.4.0 后果不是「编译不过」,是**照原样重编会再造一个旧版本插件**: 内核升级后装上去启动即崩、崩溃循环、要人介入(2026-09-14 的形状)。 ## 为什么这个包的红一直没被发现 `plugins/homeagent-mail-bridge/` 有**独立 go.mod** ⇒ 不在主 module 内 ⇒ 仓库根的 `cd server && go test ./...` **覆盖不到它**。 (主 module 覆盖率实测:`go list ./... | grep -c homeagent` → **0**。) ## 改法 `go.mod` 的 replace 改成指针指向的目录(判据给出的改法,一行), 然后按 `build.sh` 重编并部署。 ## 验证(判据自己写明的口径:不是版本号相等,是建链成功) - 判据:✅ 过 - 重编:`hmapdev build` 成功,`SDK=v1.4.0 hash=ba5cece0ca8a52ad version=1.4.0` - 部署:`install -m 0755` 原子替换 + 留档 `plugin.bin.bak-20260928-093600` - **建链**:内核日志 `homeagent-mail-bridge` 经 proc 通道加载、 `protocol=2 sdk=1.4.0`、工具全部注册(`loaded: homeagent-mail-bridge`) - **端到端**:真发一封 `.new` → 20s 内回信「SDK v1.4.0 重建后正常」 ★ 顺带记一条:build.sh 自己注明 `go build ./...` 会报 `function main is undeclared` —— 那是正常的(入口由 hmapdev 包装), 真正的编译在 hmapdev 那一步。拿 `go build` 当"能不能编"的判据会误报。 --- plugins/homeagent-mail-bridge/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/homeagent-mail-bridge/go.mod b/plugins/homeagent-mail-bridge/go.mod index 03e534d..4cfbe40 100644 --- a/plugins/homeagent-mail-bridge/go.mod +++ b/plugins/homeagent-mail-bridge/go.mod @@ -6,7 +6,7 @@ require gitcode.com/JianFeeeee/homeagent-sdk v1.3.0 -replace gitcode.com/JianFeeeee/homeagent-sdk => /root/.homeagent/hmapdev/sdk/v1.3.0 +replace gitcode.com/JianFeeeee/homeagent-sdk => /root/.homeagent/hmapdev/sdk/v1.4.0 // 这个 replace 是**构建机的 SDK 指针**,不是源码常量:它跟着 // `/current` 走(判据 TestSDKPinMatchesBuildMachinePointer 管)。