BaoCut 桌面发布
这是 Electron v3 应用(com.baocut.app)。旧的 baocut-app 技能只是一个参考,并非本工作目录的可执行工作流。请将本开发技能放在 App 的 craft skills/ 目录之外;不要调用旧版 GPUI/npm/Homebrew 发布。
选择工作流
| 用户意图 | 阅读并遵循 |
|---|---|
| 普通发布/推送请求;未指定方法 | 标签发布 — 默认。推送冻结的源码标签;先发布已验证的 Mac arm64,然后向同一个 Release 追加 Windows CPU/CUDA/Vulkan。 |
| 明确的本地包/候选、传统或手动发布、单平台恢复/续传 | 传统发布。尊重请求的平台范围和本地/公开作用域。 |
| 仅签名标识、便携备份或 GitHub 凭证 | 签名/备份。不要创建标签或发布。 |
只为所选意图加载所需的参考文件。当用户未指定发布方法时,不要要求他们在两种发布方式之间选择:直接使用标签发布。不要在 Actions 失败后静默回退到传统打包。明确的本地只限或平台只限指令将覆盖默认的全平台作用域;请遵循用户的明确方法和限制。
共享发布约束
- 编辑前检查 git 状态;保留未修改或并行的工作。在冻结发布之前,提交属于本任务对应的源码改动。遵循仓库提交、当前任务推送授权和工作树清理规则;不要复用另一个任务的推送授权,也不要在此处已经授权时再次请求。
apps/desktop/package.json拥有应用版本号。通过 npm 同步根版本和锁文件;不要因应用发布而升级 Cargo 或协议版本。- 在选择构建之前查询实际的发布/源。构建严格递增;已发布的标签/文件不可修改。
- 保持标签和所有平台产物与一个完整的源代码 SHA 绑定。永远不要发布脏源码的二进制文件、私有签名材料或中间公证提报。
- 一旦 Mac 候选通过,立即发布 Mac Release、其协调的变更日志和验证过的下载链接;Windows/CUDA 构建不会阻塞此阶段。后续平台完成时更新该 Release 的资产、说明和源,绝不更新 Git 标签或其源代码 SHA。单独报告待完成的平台;在下面的完成阶段才推进 Latest。
- 对于每个新发布的版本/构建,遵循发布说明:盘点完整的提交/PR 范围,批量总结大范围,协调覆盖率并发布合并后的变更日志。本地候选保留相同的说明本地;平台续传复用已有版本的变更范围。
- 每次公开发布或平台续传后,使用下载链接检查下载链接。README 和 baocut.com 链接到
baocut.com/download/<id>,它会自动跟随 GitHub Releases。不要为发布编辑 README 或重新部署站点;验证 baocut.com 是否提供新构建。 - 报告实际的检查和跳过。单独的标签推送或凭证检查不是完成的发布;发布要求成功的作业、公开的回读、源、验证过的发布说明以及通过 baocut.com 下载检查。
完成公开发布
在所选平台全部发布、公共资产和源通过回读、并且合并后的发布说明已验证后,在 GitHub 的 Releases 标签页将最新的稳定桌面版本标记为 Latest:
gh release edit "$release_tag" --repo "$release_repo" --latest
gh api "repos/$release_repo/releases/latest" --jq '.tag_name'
使用已验证的仓库和标签执行此任务;回读必须与该标签一致。平台发布者在验证和上传进行中会保留之前的 Latest,因此即使 Actions 成功也需要此最终步骤。本地候选、草稿和预发布不会推进 Latest。当延续旧的发布时,保持较新的已发布桌面版本/构建作为 Latest。在完成报告中包含验证过的 Latest 标签。
桌面指南 拥有打包机制;特定模式的参考文件解释了何时加载它。仅更改发布配置的请求不得创建发布标签或发布。