بنقرة واحدة
release
// 自动化 MeetCat 完整发布流程:版本号确定、changelog 生成、extension 打包、Tauri app 发布。当用户提到发布新版本、准备 release、bump version、更新 changelog 时触发此 skill。即使用户只是简单地说"发布"或"release",也应该使用此 skill。
// 自动化 MeetCat 完整发布流程:版本号确定、changelog 生成、extension 打包、Tauri app 发布。当用户提到发布新版本、准备 release、bump version、更新 changelog 时触发此 skill。即使用户只是简单地说"发布"或"release",也应该使用此 skill。
| name | release |
| description | 自动化 MeetCat 完整发布流程:版本号确定、changelog 生成、extension 打包、Tauri app 发布。当用户提到发布新版本、准备 release、bump version、更新 changelog 时触发此 skill。即使用户只是简单地说"发布"或"release",也应该使用此 skill。 |
执行 MeetCat 全量发布(Tauri 桌面端 + Chrome 扩展)。流程分五个阶段,按顺序执行。
开始前确认:
gh CLI 已登录(gh auth status)如果有未提交的非发布相关改动,提醒用户先处理。
package.json 中的当前版本git log <last-tag>..HEAD --onelinepnpm run version:set <version>version:set 除了改 root / 各 workspace 的 package.json 和 Cargo.toml,还会跑 cargo 同步 Cargo.lock。输出里可能出现 Updating crates.io index / Adding ... 等行,属预期,不是脏改动。CHANGELOG.md格式要求:
## [VERSION] 格式(release 脚本会自动补上日期)## [Unreleased] 之后将 changelog 草稿呈现给用户审阅。用户确认后写入 CHANGELOG.md。
重要:不要 git commit。 release:app 脚本会自动提交所有发布相关文件。
写入后跑 git status 确认脏文件全部落在白名单内 —— scripts/release-tauri-github.sh 维护了 RELEASE_ALLOWED_DIRTY_FILES(CHANGELOG.md / package.json / 各 workspace package.json / Cargo.toml / Cargo.lock 等),出现其它脏文件会让脚本 abort。意外动到的文件需要先 stash 或 revert 再进 Phase 3。
执行:
pnpm run release:extension
这会构建扩展并生成 release/meetcat-extension-<VERSION>.zip。
自动上传 Chrome Web Store: 如果环境变量 CWS_CLIENT_ID / CWS_CLIENT_SECRET / CWS_REFRESH_TOKEN(通常通过 .env)已设置,脚本会调 scripts/publish-extension.sh 自动上传到 Chrome Web Store。
观察脚本输出最后一段,判断走的是哪条路径:
在 Phase 5 汇报中转达这个状态。
这一步需要交互式输入密码(updater 签名密钥密码、Apple 公证凭据),无法自动执行。
告诉用户自行在终端中运行:
pnpm run release:app
并说明此命令会:
chore(release): prepare <VERSION>)等用户报告完成后再进入下一阶段。
用户确认 release:app 完成后:
git log origin/master..HEAD --oneline 应为空(commit 已 push)git ls-remote --tags origin | grep <version> 应能找到 taggit push origin master --follow-tags。正常情况下 release-tauri-github.sh 已经替你把 commit + tag 都推上去了,不要无脑跑 git push --tags。git tag --sort=-v:refname | head -3gh release view <version>release/meetcat-extension-<VERSION>.zip)如果用户只想发布其中一个平台: