Files
HomeAgent/internal
JianFeeeee 85fd38b7d1 fix(update): 统一 dataDir 推导,三端共用 update.ResolveDataDir
范围说明:本 commit 与 H1 属同一缺陷的另一面。Apply 现在会拒绝空
dataDir,而三端各自的推导逻辑此前会**真的返回空**(或写死生产路径),
不一起改则 H1 会把所有升级都拒掉、或让 pending 落到内核读不到的地方。

三处原来的推导:
  · cmd/homed-upgrade/main.go     env → 写死 /home/newqqagent
  · pluginmgr/kernel_update.go    env → Dir(pluginDir)
  · webui/kernel_update.go        env → 空(由调用方报错)

问题:① 硬编码 /home/newqqagent 在目录/用户迁移后指向不存在的路径;
     ② 从 pluginDir 反推与 webui 侧不一致,同一台机器两条升级通道算出
        两个 dataDir ⇒ 标记落在 A、第 0 层 update 从 B 读 ⇒ 升级启动
        失败时静默不回滚(症状是崩溃循环,极难反查到标记)。

现在三端统一调用 update.ResolveDataDir(exePath):
  ① HOMEAGENT_DATA_DIR(部署方显式声明,唯一可靠来源)
  ② <exe 所在目录>/data 兜底(替代原先的硬编码生产路径)
并删掉 cmd/homed-upgrade 里写死的 /home/newqqagent。

本 commit 可单独回退:回退后仅剩「各端自己推导」,与 H1 组合会退化为
「空 dataDir 一律拒绝升级」(安全侧失败,不会产生无回滚能力的升级)。
2026-10-28 17:20:40 +08:00
..