feat: complete WorkBuddy parity and Windows release workflow

This commit is contained in:
xiaohan.yuan committed 2026-10-18 12:45:21 +08:00
1 parent 143516b3a8
commit d5512df549
434 files changed
+54977 -1854

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
# OMP 内置分发
日期:2026-10-18。按用户要求,将 OMP 从外部依赖改为 Windows x64 安装包内置,并重新生成 v0.01 分发包。
## 实现
- 固定上游 OMP 18.6.3。运行时锁记录发布地址、发布时间、字节数和 SHA-256:`resources/omp/runtime.lock.json`。
- `npm run omp:vendor` 从固定版本恢复资产并逐项校验;支持离线验证和用本地已校验副本导入。
- `npm run dist` / `npm run dist:installer` 在构建前自动执行 `omp:vendor`。
- Electron 打包将 `omp.exe`、MIT LICENSE、第三方声明和运行时锁复制到安装目录 `resources/omp/`。
- 运行时探测顺序:`YCODE_OMP_PATH` 显式覆盖、包内 `resources/omp/omp.exe`、兼容旧环境的 Ygent 安装、内置 HTTP 回退。正常安装包不依赖外部 Ygent。
- 新增路径回归和包内资产验证:`npm run test:omp:bundled`,打包后使用 `node scripts/verify-bundled-omp.cjs --packaged`。
## 验证
- `npm run omp:verify` 通过;OMP、LICENSE、第三方声明的大小和 SHA-256 全部匹配运行时锁。
- `npm run test:omp:bundled` 通过;无 `YCODE_OMP_PATH` 时解析到 `resources/omp/omp.exe`,`omp.exe --version` 返回 `omp/18.6.3`。
- 使用隔离临时 profile 完成真实 RPC 握手,收到 `{"type":"ready","protocolVersion":1,...}`,随后清理临时 profile。
- 安装程序归档包含 `resources/omp/omp.exe`(235,715,072字节)、LICENSE、THIRD-PARTY-NOTICES.txt 和 runtime.lock.json。
- 正式 `release/win-unpacked/YCode.exe` 在空用户数据目录启动;生产 IPC 返回 OMP 可用,实际 `exePath` 为包内 `resources/omp/omp.exe`。10项包内容与启动检查通过,0个未捕获 renderer 异常。报告 `.tmp/release-v001-mfDVCw/report.json`。
- 最终安装程序为 `release/YCode-v0.01-Setup-x64.exe`,246,498,049字节(235.08MiB),SHA-256 `4a8ceaeb1dd12bfc228911c2d586a7db2f4682b02b995c62602e7b14e6830184`。当前未签名。
## 限制
本轮验证使用已安装的正式 Electron 构建并在隔离用户目录启动,没有实际执行 NSIS 安装/卸载。未验收干净 Windows 设备、标准用户权限、硬件加速全路径及所有业务功能。包内 OMP仅覆盖 Windows x64;其他平台仍需提供对应运行时。