Browse Source

chore: 部署时不再覆盖已发布的 SDK 版本——同一版本的包内容有变化时停止部署并提示先升级版本号(同一代码打包结果逐字节相同)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jerry Liang 13 hours ago
parent
commit
91d4ca2b0a
2 changed files with 14 additions and 1 deletions
  1. 13 0
      deploy/deploy.sh
  2. 1 1
      docs/integration.md

+ 13 - 0
deploy/deploy.sh

@@ -9,6 +9,19 @@ pnpm install --frozen-lockfile
 pnpm -r build
 node scripts/build-sdk.mjs
 
+# 已发布的 SDK 版本不再覆盖:同一代码打包结果逐字节相同,内容不同说明 SDK 有变化,需要先升级版本号
+# (packages/shared、client、chat-ui 的 version 一起改;推送工具改 packages/skills-cli)
+changed=()
+for f in dist-sdk/*.tgz; do
+  published="$ROOT/app/sdk/$(basename "$f")"
+  if [ -f "$published" ] && ! cmp -s "$f" "$published"; then changed+=("$(basename "$f")"); fi
+done
+if [ ${#changed[@]} -gt 0 ]; then
+  echo "以下 SDK 包已经发布过同一版本,但内容有变化:${changed[*]}" >&2
+  echo "请先升级版本号再部署(已发布的版本不能覆盖,否则锁定该版本的业务平台重新安装时校验值对不上)" >&2
+  exit 1
+fi
+
 STAGE=$(mktemp -d)
 trap 'rm -rf "$STAGE"' EXIT
 pnpm --filter @agent-server/server deploy --prod "$STAGE/server" >/dev/null

+ 1 - 1
docs/integration.md

@@ -57,7 +57,7 @@ pnpm add @agent-server/shared @agent-server/client @agent-server/chat-ui
 | `@agent-server/client` | `AgentClient`:会话、消息、SSE 订阅(断线续传)、交互回复、上传下载;`BotClient`:机器人工作组(§8) |
 | `@agent-server/chat-ui` | 对话组件 `<AgentChat>` 与状态 `useChatSession`;工作组组件 `<TeamChat>` 与状态 `useTeamSession`(依赖 `vue@^3.5`) |
 
-升级:`pnpm update "@agent-server/*" --latest`。仓库保留全部旧版本,可以在 package.json 中锁定版本;后台"API Keys"页显示当前版本与安装命令。
+升级:`pnpm update "@agent-server/*" --latest`。仓库保留全部旧版本,已发布的版本内容不会再变化,可以在 package.json 中锁定版本;后台"API Keys"页显示当前版本与安装命令。
 
 ## 4. 前端:使用对话组件