验证更新路径、包迁移和插件安装/更新行为的专项清单。

保护的核心契约

  • 包 tarball 完整,有有效的 dist/postinstall-inventory.json
  • 用户可从旧版本升级而不丢失配置、Agent、session、工作区、插件允许列表或渠道配置
  • openclaw doctor --fix --non-interactive 负责遗留清理和修复路径
  • 插件安装支持本地目录、git 仓库、npm 包和 ClawHub 注册表
  • 插件 npm 依赖安装在托管 npm 根目录,卸载时通过 npm 移除

本地开发验证

pnpm changed:lanes --json
pnpm check:changed
pnpm test:changed
 
# 插件相关变更时额外运行
pnpm test src/plugins/uninstall.test.ts src/infra/package-dist-inventory.test.ts
 
# 包制品验证
pnpm release:check

Docker 测试通道

pnpm test:docker:plugins                    # 插件安装冒烟
pnpm test:docker:plugin-lifecycle-matrix    # 插件完整生命周期
pnpm test:docker:plugin-update              # 插件更新无变化验证
pnpm test:docker:upgrade-survivor           # 旧用户状态升级验证
pnpm test:docker:published-upgrade-survivor # 从已发布版本升级验证
pnpm test:docker:update-restart-auth        # 更新重启认证验证
pnpm test:docker:update-migration           # 清理重型发布更新通道

已发布升级验证变体

OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=openclaw@2026.4.23 \
OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=versioned-runtime-deps \
pnpm test:docker:published-upgrade-survivor

可用场景:base、feishu-channel、bootstrap-persona、plugin-deps-cleanup、configured-plugin-installs、stale-source-plugin-shadow、tilde-log-path、versioned-runtime-deps

Package Acceptance(GitHub 原生包门控)

候选来源:

  • source=npm:验证 openclaw@beta、openclaw@latest 或精确版本
  • source=ref:从可信分支/标签/提交打包
  • source=url:验证 HTTPS tarball(需 package_sha256)
  • source=artifact:复用另一个 Actions 运行上传的 tarball
gh workflow run package-acceptance.yml \
  --ref main \
  -f source=npm \
  -f package_spec=openclaw@beta \
  -f suite_profile=package

发布默认验证栈

  1. pnpm check:changed 和 pnpm test:changed(源码级回归)
  2. pnpm release:check(包制品完整性)
  3. Package Acceptance package profile(安装/更新/重启/插件契约)
  4. 跨 OS 发布检查
  5. 实时套件(仅当变更涉及 Provider 或托管服务行为时)

故障排查

从制品身份开始:

  • Package Acceptance resolve_package 摘要:来源、版本、SHA-256
  • Docker 制品:.artifacts/docker-tests/**/summary.json
  • 升级幸存者摘要:.artifacts/upgrade-survivor/summary.json

相关链接