CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
5.1 KiB
5.1 KiB
发布检查清单
每个候选版必须完成
- 当前提交位于
main,工作区除明确忽略的本地缓存外干净;版本号、插件版本和 Git 标签一致。 npm ci、npm test、npm audit --omit=dev --audit-level=high全部通过。npm run runtime:verify确认 Node 官方精确版本源和至少一个国内源同时提供全部六个平台制品,且镜像SHASUMS256.txt与仓库固定哈希一致。release:build、test-bundle:build和release:verify成功,SHA256SUMS校验通过,发行物不包含.secrets、.runtime、数据库、私钥或机器私有路径。- 主下载目录与公开 Gitea Release 的
manifest.json、manifest.sig和全部附件逐文件哈希一致;模拟主源网络失败/404 后能从备用源完成首次安装和更新,模拟主源返回错误哈希或签名时必须立即停止而不换源。 - Nginx bootstrap 只开放 ACME challenge;正式站点启用 HSTS,mutable 发行文件返回
no-cache,客户端 tgz 才返回 immutable。连续两次部署时公开目录始终对应一个完整签名清单,旧版本保留数符合策略。 - 从新生成的公开
install.md在干净的用户级目录安装,不使用sudo;安装结果主动返回postInstall,可发现全部 13 个 MCP 工具。 - 在未安装 Node 的干净 Windows x64/ARM64、Linux x64/ARM64、macOS Intel/Apple Silicon 用户环境验证平台引导。确认只使用固定精确版本、国内镜像失败会依次回退、任一哈希不符立即终止、私有 Node 不修改 PATH 且更新后仍可启动。至少在实际可用的每类操作系统完成一次端到端安装;其余架构用对应 CI 或发行制品校验覆盖。
- 在干净 Windows 用户环境用公开教程的 PowerShell 路径完成引导 SHA-256 校验、安装 JSON 解析和 stdio 注册;实际
command以.cmd结尾、args为空,不含网关 URL,并通过doctor --json。同时验证路径含空格、连接器信任和完整重启场景。 - 验证 stdout 只有最终 JSON、stderr 持续包含阶段进度;宿主工具超时设为至少 10 分钟。模拟离线 npm 超时、外部终止留下的死亡锁和 staging、并发第二次安装,分别确认明确失败、安全恢复和零并发写入。Windows 从 Git Bash 发起测试时仍须进入 PowerShell bootstrap,不得直接运行内部安装器。
- 在 Windows 代理沙箱中验证
HTTPS_PROXY可供安装下载、登录和 Bridge 使用;父进程含NODE_OPTIONS="--trace-warnings --use-env-proxy"与NODE_USE_ENV_PROXY=1时,npm 子进程只保留无关 Node 选项并继续保留标准代理变量,离线展开不得卡死。 - 验证安装结果返回
loginCommand:未加载 MCP 时执行login --json能复用现有运行时生成或检查登录链接,不下载发布物;链接过期后生成新链接,已登录时不再返回挑战,未安装时明确失败。 - 首次安装不等待业务查询即产生一条可传递链接;挑战阶段 onboarding 仍为 pending,授权后的首次成功响应在普通文本中展示一次示例,此后不重复。
- 授权后钉钉 OA 与薪福通均为
ok,网关重启后登录状态仍可恢复;登录准备暂时失败不会回滚安装或删除原 OAuth 会话。 - 只读验证待办、本人已处理历史、本人发起历史、历史默认最近 30 天及显式时间窗口、搜索、详情、费用结构化字段、动作、模板 Schema、部门/城市选项和越权拒绝;历史引用必须被动作查询和批处理拒绝。
- 发票查重验证钉钉/XFT 跨来源精确匹配、弱匹配、用户隔离、状态更新、来源不可用、历史截断、详情失败、并发确认、35 天过期清理和网关重启恢复;数据库不得出现用户 ID、发票原号、审批正文或附件。重复风险和不完整覆盖未获用户确认时不得签发可提交
confirmationId。 - 真实写操作只执行用户明确授权的样本;任何
outcome_uncertain都停止,不自动重试。 - Mock 契约确认网关和 bridge 的批量 Schema 均固定为 20;第 6 个截断引用及任一无效退回目标都会返回
preflight_failed、writesStarted=false,上游写调用数为 0。 - 代表性 v4 引用长度满足钉钉 OA 不超过 128 字符、薪福通不超过 80 字符,并通过篡改、过期、跨用户、跨密钥、同密钥重启及 v2/v3 兼容测试。
- 公网
manifest.json的版本、生成时间和 SHA-256 与当前候选版一致。 - E2E 脚本在未设置网关地址、未指定业务编号或未加真实写入开关时不会执行审批;只读运行不会自动选取待办。
正式版额外条件
- 钉钉和薪福通的同意至少各有一个近期真实成功样本,并完成写后复核。
- 对外开放的拒绝、退回和发起模板具备对应的真实成功样本或明确的客户端/实验性降级说明。
- 薪福通撤回取得真实成功样本;在此之前必须保留实验性标记,不得作为正式稳定能力承诺。
- GitHub CI、外部健康检查、OAuth 数据库与密钥成对备份、升级回滚流程均已验证。