fix: keep bundled DS Web links relocatable
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s

Preserve npm relative symlinks while preparing the desktop DS Web resources.
The previous copy rewrote CLI links to build-machine absolute paths, causing
both macOS targets to fail strict code-signature verification. The regression
runs the production preparation and builder matcher, removes the installation
and staging trees, and verifies the final link remains readable.

Recover the unpublished Desktop 0.15.0 as 0.15.1 without moving its tag.
Agent stays 0.15.0 and requires Desktop 0.15.1. Carry the unpublished notes
forward once and align the bilingual feature matrices and upgrade guidance.

Validation: complete frozen Linux tree 5372 passed, 51 skipped; Windows
packaging checks 45 passed and one POSIX-only test skipped. Typecheck, lint,
and bilingual release-note validation passed. Native macOS signing remains
an independent release check. Agent Runtime implementations are unaffected.

Release note: 修复本地 DS Web 随包依赖的链接复制,避免 macOS 安装包签名校验失败。
This commit is contained in:
mesalogo
2026-09-28 09:51:01 +08:00
parent 65a21390de
commit 4e5239256d
11 changed files with 114 additions and 22 deletions
+32 -5
View File
@@ -1,15 +1,17 @@
# Desktop 与 Agent 0.15.0 发布准备
# Desktop 0.15.1 与 Agent 0.15.0 发布准备及恢复
日期:2026-09-27。候选验证通过,不代表已发布。
日期:2026-09-27 至 2026-09-28。原 Desktop 0.15.0 标签构建失败,
用户已选择 Desktop 0.15.1 与 Agent 0.15.0 恢复发布;验证通过不代表已发布。
## 范围与批准
- 用户要求 Desktop 与 GoodBuddy Agent 同步升级至 `0.15.0`,明确不构建 LoongArch。
- 源码基线:`0f8bf405db7ca21a85cc70009ad083eb837e1e03`。
- Desktop 差异基线为已发布的 `v0.13.16`,Agent 为 `agent-v0.13.4`。
- 准备两个独立标签 `v0.15.0` 与 `agent-v0.15.0`;尚未创建或推送。
- `v0.15.0` 已创建并推送,保持不可变;恢复使用 `v0.15.1`,
`agent-v0.15.0` 尚未创建或推送。
- 用户已批准两份完整双语说明,正式正文仅维护在
[Desktop 发布资源](../../resources/release-notes.json) 的 `0.15.0` 条目与
[Desktop 发布资源](../../resources/release-notes.json) 的 `0.15.1` 条目与
[Agent 发布资源](../../resources/agent-release-notes/0.15.0.md)。
已逐条核对写入文本与批准草案一致,本记录不再复制正文。
- `FEATURES.md` 与 `FEATURES.zh-CN.md` 已核对本轮能力、限制和候选版本。
@@ -195,6 +197,31 @@ Windows 原生 Runtime 聚焦用例、类型检查和 lint 通过。
冻结 tree `42a92450ad7d9ebc50167c7946bff53cff2889e6` 的 Linux 全量为
**5,371 通过、51 跳过、0 失败**,耗时 748.67 秒。
## Desktop 0.15.1 恢复
`65a21390debe0dd04871417a363a9d87a29339e6` 的主分支
[CI 36347785076](https://github.com/mesalogo/goodbuddy/actions/runs/36347785076)
验证与生产构建全部通过后,两个远端创建了不可变 `v0.15.0`。
其正式 [CI 36348938269](https://github.com/mesalogo/goodbuddy/actions/runs/36348938269)
两个 macOS 目标在 `codesign --verify --deep --strict` 失败,
报 `invalid destination for symbolic link in bundle`;GitHub Release 未发布。
Host 隔离 fixture 经实际 DS 资源准备和 electron-builder 文件复制,
复现相对 npm CLI 链接变成原构建目录的绝对链接。不是签名凭据或测试超时问题。
用户明确选择 **Desktop 0.15.1 + Agent 0.15.0** 恢复,不移动或复用旧标签。
修正仅让复制保留相对链接;新增回归移除原安装与暂存目录后验证最终链接仍可读。
该路径不用于 Agent,远程 Runtime 与 Agent 源码未改,不增加真实模型调用。
未发布 Desktop 0.15.0 的双语条目迁移到 0.15.1,保留全部功能说明;
Agent 版本不变,其包元数据从新版 Desktop manifest 派生最低版本 0.15.1,
两份说明和功能矩阵同步这个升级顺序。
原标签最终 Windows/Linux 四个目标成功,两个 macOS 失败,发布任务跳过,
公开 Latest 仍为 `v0.13.16`。
Windows 打包相关测试 45 通过、1 个 POSIX 链接用例跳过,类型、lint、
发布说明校验通过。冻结 tree `99d3271174a68922fbf0a1a4cfbadbb85a6067c8`
在 Linux Host 全量 **5,372 通过、51 跳过、0 失败**,耗时 745.88 秒;
新增符号链接回归实际执行通过。提交仅追加验证记录,恢复候选 CI 与 macOS 签名待验证。
## 数据、兼容与验收边界
Desktop schema 48 新增魔法笔记会话来源元数据。升级前应备份完整用户数据,
@@ -202,7 +229,7 @@ Desktop schema 48 新增魔法笔记会话来源元数据。升级前应备份
本次发布准备不修改数据库迁移实现,也不直接改写用户数据库。
Agent 发布工作流以候选 `package.json` 设置最低 Desktop 版本,因此
Agent 0.15.0 包要求 Desktop 0.15.0;Node、OpenCode、Continue 锁不变。
Agent 0.15.0 包要求 Desktop 0.15.1;Node、OpenCode、Continue 锁不变。
Agent 与 Desktop 独立发布,Agent 不替代 Desktop Latest。
原生客户端的远程 coordinator、托管标准 Node 交付整合、Continue/OpenCode
@@ -1,5 +1,18 @@
# 工作栏实现与验证进度
## 2026-09-28:DS Web 资源符号链接与 macOS 发布恢复
Desktop `v0.15.0` 原生构建中,两个 macOS 目标均因包外符号链接未通过签名校验。
Linux Host 隔离 fixture 调用实际 DS 资源准备及 electron-builder 文件复制后,
确认相对 CLI 链接变成构建目录的绝对路径。复制现使用 `verbatimSymlinks`,
保留 npm 相对链接;回归移除原始安装和暂存目录后,仍须能读取最终包内链接目标。
Windows 打包聚焦回归 45 项通过,1 项 POSIX 符号链接测试不适用于 Windows;
类型、lint 和 0.15.1 双语说明校验通过。完整冻结快照在 Linux Host 全量
5,372 通过、51 跳过,新增符号链接用例实际执行通过;macOS 原生签名仍待发布 CI。
这只改变 Desktop 的本地 DS Web 资源准备,不改变 Agent 的独立 Runtime 包装、
模型桥或启动控制,模型调用 0 次。恢复版本及最终证据见
[发布恢复记录](../../development/release-preparation-0.15.0.md)。
## 2026-09-27:窄栏添加入口
“+”已移出页签滚动容器;左右箭头和溢出测量使用扣除添加按钮宽度后的页签区域。
@@ -193,6 +193,11 @@ Renderer 仅提交当前会话或项目标识及选择标识。Main 重新解析
共享接口应返回可供界面使用的启动状态、终端标识或 DS 服务标识。外部 URL 由 Main 打开,
不允许 Renderer 提交任意程序、命令行、凭据或任意服务地址。错误保留组件、阶段和脱敏原因。
DS Web 随包依赖通过 `build/native-dsh-resources.cjs` 保留 npm 的嵌套布局。
复制时原样保留相对符号链接,不能将 CLI 链接改写成构建机的绝对路径;
经过 electron-builder 资源复制后,即使移除原始安装和暂存目录,链接仍须能解析到包内文件。
这一交付约束覆盖 FR-9;不改变 Agent 的独立 Runtime 打包路径。
### 6.2 Continue 与 OpenCode
Continue 使用已解析的标准 Node 启动固定版本 CLI,不能直接假定 Electron 的