release: freeze 2026-10-15 validated release baseline
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s

This commit is contained in:
WorkBuddy
2026-10-15 09:47:31 +08:00
parent 827c23db1d
commit 3c2b967274
149 changed files with 4324 additions and 348 deletions
+108
View File
@@ -791,3 +791,111 @@ OpenAPI 对外发布、调用审计与配额、分页幂等覆盖、脱敏边界
- Phase 24: UAT — 需真实用户参与并确认启动
- Phase 25: RC 内容检查 — 需运营团队填充真实内容
- Phase 26: Production Smoke Tests — 13 项手动验证
### 2026-10-14:13 位公开编号统一前置盘点
- 用户确认择偶条件“下一步”在微信开发者工具重新编译后目视复验通过。
- 全平台编号 Task 1:覆盖清单与静态检查工具已新增;7 项工具自检 PASS,114 个模板发现 31 个待审查位置,展示门禁仍 FAIL(尚未实施字段与页面修复)。
- 预约编号前缀 YY 尚待确认;转介存在预约/报名及非持久化 record 两条路径,后续需逐一覆盖。当前未修改数据库或重启服务。
### 2026-10-14 全平台公开编号验收补充
- V060 已在演示 PostgreSQL 成功执行,Flyway 当前版本 060;迁移前备份保留在 `.mimosa/before-public-id-20261014.dump`。
- 演示库检查:404 个用户中 12 个已实名用户有 YH 编号,12 个运营人员均有唯一 HN/GL 编号,活动编号全部生成;未实名用户按规则允许暂空。
- 修复 `PublicIdMapper` 查询 `text = uuid` 类型错误,重建后端并通过登录、用户、运营人员、活动、红娘服务接口验证;匿名管理接口返回 401。
- Web 类型检查、构建、小程序类型检查、公开编号静态守卫和小程序行为测试通过;浏览器 Playwright 因本机缺少 Chromium 未执行。
### 2026-10-14 后端全量测试与仓库网络复验
- 用户已确认微信真机验收通过;本次未重复人工真机操作。
- 容器默认 DNS 出现 HTTPS 解析超时;仅为测试容器指定 `--dns 223.5.5.5 --dns 114.114.114.114` 后,使用现有 `backend/maven-settings.xml` 正常从阿里云下载依赖,未降低 TLS 校验、未修改系统或 Docker 全局网络设置。
- 首次仅挂载 backend,导致 Surefire 的 `${project.basedir}/..` 工作目录缺少仓库源码。修正为挂载整个仓库后重新执行完整套件;首次失败结果不作为有效验收结果。
- 最新命令(PowerShell):
```powershell
docker run --rm --dns 223.5.5.5 --dns 114.114.114.114 `
-v 'E:\develop\公益婚恋服务平台:/workspace' `
-v 'E:\develop\公益婚恋服务平台\backend\maven-settings.xml:/tmp/settings.xml:ro' `
-w /workspace/backend maven:3.9-eclipse-temurin-21 `
mvn -s /tmp/settings.xml -B test
```
- 结果:`BUILD SUCCESS`,退出码 0;916 项测试,失败 0、错误 0、跳过 3,即实际执行 913 项。Surefire XML 汇总与 Maven 日志一致。
- 证据:`.mimosa/public-id-full-mvn-test.log`、`backend/target/surefire-reports/TEST-*.xml`。
- 跳过:`ConcurrentTests.testSimultaneousLikeRaceCondition`、`testActivityCapacityRace`(CI 条件未启用);`CoreE2ETest.fullFlowRegistrationToSuccess`(既有 @Disabled)。前两项仅模拟线程/计数,后一项为占位断言,因此不能据此声称真实数据库并发或完整注册到牵手 E2E 已验证。
- 注意:通过的套件中仍有通知夹具 `u-notif-guard` 的 H2 数据转换告警;本轮不改变业务代码或已有测试断言。测试成功不等于所有异步通知均成功,也不代表生产验收完成。
### 2026-10-14 前端全量校验补充
- 管理端 `pnpm type-check`:通过。
- 管理端 `pnpm build`:通过;Vite 仍提示 `url(var(--v...))` 的 CSS 压缩警告和大 chunk 提示,不影响构建退出码。
- 小程序 `npm run type-check`(在 `miniapp` 目录执行):通过。
- 小程序 WXML/WXSS 真编译预检:90 个 WXML、92 个 WXSS,失败 0。
- UI 契约门禁:24/24 通过。
- 本轮修正了 1 个用户可见英文占位符(改为中文日期示例),同步更新了新增红娘页面后的 67 页断言、品牌名称断言和变量化 nginx 代理断言;管理端顶部装饰样式补齐设计 token 与最小字号。
### 2026-10-15 Task 3:通知测试夹具告警治理
- 修复 `NotificationTemplateTypeGuardTest` 与 `NotificationPhase11IntegrationTest` 的测试用户夹具:由非 UUID 字符串改为合法 UUID,与生产 `users.id` 类型保持一致。
- 仅修改测试夹具,未修改生产通知逻辑、数据库结构或接口契约。
- 通知专项测试:`NotificationTemplateTypeGuardTest` 共 2 项,失败 0、错误 0,`BUILD SUCCESS`。
- 后端全量回归:916 项,失败 0、错误 0、跳过 3(实际执行 913 项),`BUILD SUCCESS`。
- 对最新全量日志扫描,未再出现 `Data conversion error converting`、`u-notif-*` 或 `Async notification failed` 告警。
- 证据:`.mimosa/notification-fixture-full-mvn-test.log`、`backend/target/surefire-reports/TEST-*.xml`。
### 2026-10-15 Task 1:真实 PostgreSQL 并发验证(部分完成)
- 已启动并复用现有 `danyang-match-postgres` 容器,未删除或重置数据。
- 执行 `node tests/public-id-postgres.cjs`,真实 PostgreSQL 完成 20 路并发公开编号分配、男女奇偶序号、999 边界、非法参数和事务回滚校验,输出 `PASS`。
- 证据:`.mimosa/postgres-concurrency-test.log`。
- 当前 `backend/src/test/java/com/danyang/match/platform/concurrent.ConcurrentTests.java` 仍是内存计数模拟,且 Like/活动容量两个用例依赖 `CI=true` 才运行;本轮未将其伪装成真实 PostgreSQL 证据,故 Task 1 的 Like/活动容量门禁仍为 `NOT_VERIFIED`。
- 下一步需建立隔离 PostgreSQL 测试数据并把这两个用例接入真实 Service/Mapper 后再执行,不修改演示数据。
### 2026-10-15 发布准备 Task 1:基线与环境确认
- 完整演示栈已恢复运行:PostgreSQL、Redis、SeaweedFS、Backend、Admin Web、Nginx 均为 healthy。
- 健康检查:`GET http://localhost:8085/api/v1/health/live` 返回 200;`GET http://localhost:6688/api/v1/health/live` 返回 200;`GET http://localhost:6688/admin/` 返回 200。
- Flyway 当前版本:V060。
- 演示数据库已备份:`.mimosa/release-baseline-20261015-083145.dump`。
- Compose 配置解析通过;环境变量仅检查键名,未写入敏感值。
- 当前工作区存在大量既有未提交改动,本次未清理、回滚或覆盖。
- 公开编号 Web 实时脚本因要求通过环境变量注入演示账号密码而停止,未写入账号或 Token。
### 2026-10-15 发布准备执行补充
- `CI=true mvn -Dtest=ConcurrentTests test`:7/7 通过,但用例仍为 AtomicInteger/常量模拟,不能作为真实 PostgreSQL Like/活动容量证据。
- 小程序 WXML/WXSS 编译预检:92 个 WXSS、90 个 WXML,失败 0。
- 管理端工作台行为契约:通过,覆盖审核计数回写、红娘待办和跟进刷新。
- `public-id-web-live.cjs` 尚未执行:脚本要求通过环境变量提供演示运营账号密码;本轮未写入或猜测凭据。
### 2026-10-15 发布准备 Edge 冒烟
- 使用当前进程环境变量注入演示账号执行 `tests/public-id-web-live.cjs`,未写入账号密码或 Token。
- Edge 启动正常,但登录未通过:后端查询 `operators.username = user` 返回 0 条,页面停留在登录页,未进入工作台。
- 当前数据库存在的运营用户名已核对,但未输出密码;本轮未擅自创建账号或修改现有账号密码。
- 发布门禁:Edge 管理端全流程 `NOT_VERIFIED`,需要提供当前数据库有效运营账号,或明确授权创建/重置演示账号。
- 证据日志:`.mimosa/release-smoke-20261015.log`。
### 2026-10-15 发布准备 Edge 实时验收
- 使用当前进程环境变量注入运营账号 `admin`,执行 `tests/public-id-web-live.cjs`,凭据未写入文件或日志。
- 结果:PASS;10 类真实接口均返回 200,检查 55 个公开编号字段,10 个页面/区域通过,匿名访问返回 401,页面运行错误 0。
- 截图与结果:`.mimosa/public-id-page-evidence/`,包括红娘服务和联系授权审批 1366/1920 视图。
- 管理端 Edge 实时发布冒烟门禁:PASS。
- 完整 E2E 尚未执行:现有 pytest fixture 要求 `e2e_admin` 账号密码,当前仅确认 `admin` 账号可用。
### 2026-10-15 发布准备活栈 E2E
- 已授权将 `admin` 纳入本机 E2E:`tests/e2e/conftest.py` 新增 `E2E_OPERATOR_USERNAME` 环境变量,默认仍为 `e2e_admin`,不影响 CI seed 账号。
- 在隔离 Python 测试容器执行活栈 E2E,使用 `admin` + 当前授权密码。
- 结果:43 passed,21 failed,8 errors。失败/错误主要来自 `e2e_station`、`e2e_counselor`、`e2e_matchmaker`、`e2e_content` 角色账号密码不匹配;连续错误登录触发部分账号临时锁定。
- 该结果不能作为完整 E2E 通过证据,也不能直接归因于业务代码;需要各角色测试账号的有效密码或一次性测试账号初始化方案。
- 证据:`.mimosa/core-e2e-postgres-test.log`。
### 2026-10-15 E2E 测试账号初始化与镜像重建
- 已备份演示数据库:`.mimosa/before-e2e-password-reset-20261015-085035.dump`。
- 已按授权为 6 个 E2E 角色账号设置统一初始密码:`E2e@Danyang2026!`;未修改角色和权限。账号:`e2e_admin`、`e2e_platform`、`e2e_counselor`、`e2e_station`、`e2e_matchmaker`、`e2e_content`。
- `tests/e2e/conftest.py` 支持 `E2E_OPERATOR_USERNAME` 与 `E2E_ADMIN_PASSWORD`,CI 默认账号不变,本机可使用 `admin`。
- 后端镜像已按当前源码重建成功;健康检查通过,未认证通知接口返回 401。
- 活栈 E2E 最新结果:55 passed;剩余 8 errors 为测试容器缺少 Docker CLI,另有活动互选测试依赖容器内 `docker exec`,不能计为完整 E2E 通过。
- 证据:`.mimosa/core-e2e-postgres-test.log`。