fix(gui): 打包未传 --icon,exe 内嵌图标一直是 Electron 默认图标

## 现象
GUI 的 exe 图标不正确(显示为 Electron 默认图标)。

## 根因
Makefile 的 build-gui 调electron-packager 时**没有 --icon 参数**:

    npx electron-packager . homeagent-gui --out=... --no-sandbox

electron-packager 默认不写 exe 资源图标,于是 exe 保持 Electron 自带图标。
仓库里 cmd/gui/icon.ico 一直存在且完全合法(file 识别为
"MS Windows icon resource - 7 icons, 16x16, 24x24"),只是从未被打包进去。

注意这是**两条独立的打包路径**:
  · electron-packager(make build-gui,本机/开发用)→ 靠 --icon 参数
  · electron-builder(package.json 的 build 段,发行用)→ 靠
    build.linux.icon,且 files 数组里也没列 icon.ico
本次只修前者(本地安装与实测走这条)。

## 证据
重新打包前后 exe 大小:
  188784128  →  188834816   (+50688 = 7 个尺寸的图标资源)
此前多次打包产物大小完全一致,可反证图标从未被写入。

## 改动
build-gui 补 --icon=icon.ico。托盘图标无需改动:它走
Tray/nativeImage,按 icon-tray@2x.png → icon-tray.png → icon.ico
三级候选回退,文件都在且逻辑健壮。

## 实测
重新打包并安装:184 文件 0 处不匹配,exe = 188834816 字节
启动正常:prefs.silentStart=true → 4 进程 0 可见窗口、
login 200、0 个 401 / JS 错误。
This commit is contained in:
JianFeeeee
2026-10-02 10:19:18 +08:00
parent 58ad6831f5
commit 46a600c01b

View File

@ -294,7 +294,7 @@ build-cli:
@echo "Built: $(BUILD_DIR)/$(CLI_BINARY) ($(VERSION))"
build-gui:
@cd cmd/gui && npm install --production && npx electron-packager . $(GUI_BINARY) --out=../../$(BUILD_DIR) --overwrite --no-sandbox
@cd cmd/gui && npm install --production && npx electron-packager . $(GUI_BINARY) --out=../../$(BUILD_DIR) --overwrite --no-sandbox --icon=icon.ico
@echo "Built: $(BUILD_DIR)/$(GUI_BINARY)"
build-static: