每个公开版本在 GitHub Release 发布前必须完成以下检查。自动步骤只证明签名和公证,真实功能链路仍需在已签名 App 中验证。
自动检查
在 release runner 或本地已签名产物目录执行:
bash scripts/verify-macos-release.sh必须全部为 PASS:
Kxen.app的codesign --verify --deep --strict。Kxen.app的 Gatekeeperspctl --assess。Kxen.app的 notarization ticketxcrun stapler validate。- DMG 的 code signature 和 Gatekeeper。Tauri 先公证并 staple App,再封装和签名 DMG;DMG 容器本身没有单独的 ticket。
已签名 App E2E
- 从 GitHub Release 下载 DMG,不使用本地 build 目录的 App。
- 挂载 DMG,把 Kxen 拖入
/Applications,首次启动不应出现「无法验证开发者」。 - Settings 的首次运行检查显示 Workspace、Provider 和 Routing 均为
PASS。 - 新建 Session,选择一个 Provider,发送消息并确认模型标签与实际 Provider 一致。
- 选择 Workspace 内文件执行 read/edit,选择 Workspace 外普通文件后可读取;选择
.p8或 Kxen 数据目录必须被拒绝。 - 执行 Shell 命令,必须先出现包含完整 command 和 cwd 的宿主机 Approval;拒绝后不得执行。
- 创建 Goal、Schedule、Workflow 和 Team,并确认各入口可发现、状态可回放。
- 分别执行「直接删除」和「删除并沉淀个人知识」;后者不得写项目
.agents/。 - Browser automation、Remote MCP、自动知识沉淀在全新配置中必须为关闭。
- 用上一公开版本检查更新,必须读取 GitHub Release 的
latest.json,签名验证通过后完成安装和重启。
任何一项未验证均记录为 UNKNOWN,不得写成 PASS。