# 宠小它 Phase 0 Pilot RC2 Release Manifest > RC ID:`phase0-pilot-rc2` > > 冻结日期:2026-08-01 > > 状态:**Ready for Release(未部署)** > > RC Steward:PM Assistant > > 发布边界:本 manifest 只冻结源码与本地验证证据;真实生产配置、备份、迁移、TLS、live smoke 和三角色验收未完成前不得改为 `Released`。 ## 1. 冻结提交与回滚点 | 仓库 | RC commit | 前一稳定 commit(应用回滚点) | 状态 | |---|---|---|---| | backend | `133f61e4ad6152865a76c4e9328d96e689f53635` | `b6138475f073881199abdef8d2681dcb92d1ab66` | clean | | admin | `3470b124e408501ed824b993bcb34dd40e77c293` | `7e924fa79d6dafbd60643b8e31519737feb92e3b` | clean | | frontend | `e11ce1aaaa602011718e300e4527a0d971f1339a` | `d29ece3a85e6d137d91afd609f49b10051ad9b7f` | clean | | docs | 本 manifest 所在 commit | 前一 commit | 提交后确认 clean | RC 只能部署以上 commit 或由其生成且校验和一致的产物。后续任何代码改动必须建立新 RC 或 Hotfix manifest。 ## 2. 纳入范围 - 生产 profile 启动配置门禁:`ddl-auto=validate`、关闭 SQL/万能验证码、强 session secret、显式 HTTPS 域名、显式 CORS、绝对上传目录; - 生产启动跳过开发期默认服务写入; - JPA schema 校验后执行 15 项只读数据库不变量预检; - liveness/readiness,readiness 覆盖 DB、磁盘、上传目录、FFmpeg/ffprobe; - 后端只读 smoke、systemd/EnvironmentFile/Nginx 独立模板; - admin、H5、小程序发布域名门禁,默认 `.invalid` 占位配置主动失败; - 小程序构建显式使用 `--mode mp-weixin`,读取独立环境配置; - 生产 Runbook、试点门店开通清单、监控告警基线和本体 `BR-CONFIG-003`; - 已冻结的身份拆分、StoreCustomer、BusinessEvent、真实预约容量能力及四个迁移脚本。 ## 3. 明确排除 - 未连接、未迁移、未修改任何生产数据库; - 未安装 systemd unit,未改服务器 Nginx,未申请或续签 TLS; - 未重启 Petstore、Gitea、GitLab 或其他服务; - 未使用真实生产域名、微信账号、AppSecret、密码或 token; - 未上传微信体验版/正式版,未完成真机或生产三角色 smoke; - 未接入真实外部监控和告警通知渠道; - 不包含支付、库存、储值、复杂会员、多门店组织、订单系统或泛 AI。 ## 4. 本地验证证据 环境: - OpenJDK `21.0.10`(源码按 Java 17 release 编译) - Maven `3.9.14` - Node `v22.22.2` - npm `10.9.7` 结果: | 门禁 | 结果 | |---|---| | `mvn test` | 158 tests,0 failure / 0 error / 0 skipped | | `mvn -DskipTests package` | BUILD SUCCESS | | backend shell `bash -n` | PASS | | backend/admin/frontend `git diff --check` | PASS | | admin `npm run build` | PASS;存在既有大 chunk warning,不阻塞功能验证 | | frontend `npm run build:h5` | PASS | | frontend `npm run build:mp-weixin` | PASS;`verify-mp-app-json` PASS | | admin/frontend 默认占位配置门禁 | 按预期失败 | | admin/frontend 受控测试 HTTPS 源门禁 | PASS;输出只含变量名,不含值 | | `validate_ontology.py` | 238 条引用完整 | | `audit_drift.py` | 55 endpoints、13 JPA entities,code-only / ontology-only 均为 0 | ## 5. 本地构建校验和 | 产物 | SHA-256 | 可部署性 | |---|---|---| | `backend/target/petstore-backend-1.0.0.jar` | `e4ef2477c549c77c7bd0ed392d772c2abd62fb5fdf2e932124cd82726e7d01d2` | 可作为候选 jar;仍须最终生产环境预检 | | admin `dist` 文件哈希清单的聚合 SHA-256 | `017089e4c7fd236b6efcbdcba10b32b9e423e3ccef9613e7ea66717b65b2e984` | **不可部署**:使用仓库 `.invalid` 占位配置构建,仅证明可编译 | | H5 `dist/build/h5` 聚合 SHA-256 | `d816be92a12f353b2edb6f19987936f7f25e1b09d0a285c4203da494caeb123e` | **不可部署**:使用仓库 `.invalid` 占位配置构建,仅证明可编译 | | 小程序 `dist/build/mp-weixin` 聚合 SHA-256 | `97489bb9b4b93f96606a10459b6d73526c8287d598019c1651490be854376084` | **不可上传**:使用仓库 `.invalid` 占位配置构建,仅证明可编译 | 正式 admin/H5/小程序必须用权限受控的真实域名文件重新运行 `preflight:release` 和构建,并把新产物校验和追加到生产发布记录。 ## 6. 生产 Go/No-Go 门禁 - [ ] Petstore 专用 API/admin/report 域名与 TLS 已就绪,不复用其他产品域名; - [ ] 最终配置通过后端、admin、frontend release preflight,未输出任何秘密值; - [ ] 生产数据库完成全量备份、SHA-256 和隔离恢复演练; - [ ] 按顺序执行身份拆分、StoreCustomer、BusinessEvent、预约容量四个迁移,末尾检查均为 0; - [ ] 后端 15 项只读不变量预检与 JPA `validate` 通过; - [ ] Petstore systemd/Nginx 配置独立,`nginx -t` 通过; - [ ] liveness/readiness 和只读 smoke 通过; - [ ] boss/staff/customer 三角色人工 smoke 及权限/异常反例通过; - [ ] 微信合法域名、体验版和真机验证通过; - [ ] 外部监控、告警联系人和值班窗口真实测试通过; - [ ] Gitea/GitLab 健康回归通过,配置 diff 证明未被改动; - [ ] 前一应用/静态/小程序回滚点明确,数据库不做自动 down migration。 任一项未勾选,结论均为 `No-Go / Ready for Release`,不得写成已上线。 ## 7. 风险与回滚 - admin 主 bundle 仍有大于 500 kB 的构建 warning;试点流量下不是上线阻断,但应进入后续性能债,不与本次发布安全闭环混排。 - readiness 会把上传目录或 FFmpeg 依赖异常视为不可接流;服务器权限和二进制路径必须在切流前验证。 - 四个迁移为前向兼容追加式变更。常规故障只回退应用和静态软链接,不删除列/表/索引;灾难性数据恢复需要独立授权和变更单。 - 微信小程序必须走平台版本回退,不能依靠服务器软链接。 详细步骤见《生产发布与回滚Runbook-2026-08-01.md》;试点运营和指标口径见《试点门店开通清单-2026-08-01.md》;告警见《生产监控与告警基线-2026-08-01.md》。