docs: 状态文件同步到 2026-09-18 实况(方案任务三)

- STATUS.md:顶部权威行由 "PHASE 20 COMPLETE"(09-17)更新为 09-18 口径(Phase 01~22 关闭 /
  Phase 23 部分关闭 / 三轮横向加固 / 669 tests / 停在 Phase 24 门前);版本演进表补 rc.11~rc.16;
  **合并三处重复的「V1.1 本地部署完成 (2026-09-09)」区块为一处**(996 行 → 946 行)并加
  「历史记录边界」声明;清「Phase 04~05 ⏳ 待开发」等与实测矛盾项。契约锚点全部保住
  (UI REDESIGN ACCEPTED BY USER / Phase 07 已通过用户验收 / 管理后台: http://localhost:13520/)。
- AGENTS.md + STATUS.md:UI 契约门禁口径 13/13 → **14/14**(历史时点行保留原值并注明,
  不篡改史实)。
- JIRA_BACKLOG.md:Epic 总览表补 P14/P15/P19~P23 的 ✅(P23 标「部分关闭」)。
- 客户需求基线计划:Phase 07 标题去 "UI REOPENED";Phase 10~15/19 补 ✅;Phase 20/21 勾选
  checkbox 并注日期;**Phase 22 如实标「未复验」**(口径澄清:计划的 Deployment/Ops 与 STATUS 的
  「部署运维配置扩展(Feature Flag)」是两份不同工作,后者复验结论不构成本节证据);
  Phase 23 标「部分关闭」,第 3/5 项(E2E 场景实现、CI 串联)**不虚勾**。
- PENDING_DECISIONS.md:历史部署声明 10 项按各 Phase Recovery 报告证据回写处置结果
  (9 项已关闭 / 1 项部分);补登 HTTP 与幂等检修遗留的第三方开放待决策 7 项。
- REMAINING_WORK.md:整体重写 —— 原文称 CHANGELOG 3.3MB(实为 4234 字节)、P1-3 指向从未存在的
  Phase-23-Completion-Report.md;改为「已关闭 / 仍未完成 / 原编号索引 / 验收标准」四段,保留原编号
  以便对照历史引用。
- database 两份:TABLE_INVENTORY 40 表 → **59 表**(带「来源迁移」列);MIGRATION_GUIDE
  V001~V011 → **V001~V046(46 个)**;两份均标注「以 backend/src/main/resources/db/migration/ 为准」。
This commit is contained in:
WorkBuddy
2026-09-18 21:15:29 +08:00
parent 4f37df3284
commit ae2405f645
8 changed files with 347 additions and 498 deletions
@@ -10,6 +10,8 @@
**Spec:** `docs/善缘丹阳 V1.1 WorkBuddy最终主启动提示词(整合版).md`、`docs/superpowers/specs/2026-09-13-reference-driven-dual-client-ui-redesign-design.md`、`docs/善缘丹阳 V1.1 数据库与API增量设计.md`、`docs/善缘丹阳 V1.1 页面级功能清单与交互流程修订版.md`、`docs/善缘丹阳 V1.1 WorkBuddy 开发执行计划修订版.md`、`docs/善缘丹阳 V1.1 WorkBuddy-Jira 最终开发任务增量清单.md`。
**下一阶段计划(当前停点:Phase 23 收尾 → Phase 24 就绪):** `docs/superpowers/plans/2026-09-18-phase23-closeout-and-uat-readiness.md` —— 批 1 快速收尾 / 批 2 Phase 23 剩余(E2E 实现 + CI 串联,**需基础设施决策**)/ 批 3 代码级遗留 / 批 4 UAT 就绪(**需用户协作**)/ 批 5 Phase 25-26 前置登记。
## Global Constraints
- 这六份客户修订文档共同构成 V1.1 需求基线,不能以其中一份覆盖其余文档的专业域要求。
@@ -165,9 +167,9 @@
**Gate:** 双方任一 Required 不满足时永不入选;前台不显示数字匹配率。
### Phase 07:V1.1 首页唯一实现 + 找对象 — 业务证据保留,UI REOPENED(2026-09-13)
### Phase 07:V1.1 首页唯一实现 + 找对象 — ✅ 已完成(业务证据保留,UI 于 2026-09-16 通过用户验收)
> 后端聚合、Capability、8 入口及推荐规则的专项证据保留;旧页面视觉已被用户否决。当前 UI 实施入口仅为 `docs/superpowers/plans/2026-09-13-reference-driven-dual-client-ui-redesign.md`,不得按本节历史完成标记恢复旧设计。
> 后端聚合、Capability、8 入口及推荐规则的专项证据保留。2026-09-13 作出的「旧页面视觉已被用户否决 / UI REOPENED」判定,已由 UI 按 2026-09-13 规格重新实现并于 **2026-09-16 通过用户验收(结论:基本达标)** 而**关闭**;当前 UI 实施入口仍为 `docs/superpowers/plans/2026-09-13-reference-driven-dual-client-ui-redesign.md`。
**Files:** `home/**`、banner 读取服务、`miniapp/pages/index/**`、`miniapp/pages/discover/**`、首页组件、`miniapp/app.json`、Design Token。
@@ -211,7 +213,7 @@
**Gate:** 未 Mutual 或活动未双确认时不能发消息;正常会话不重复投递。
### Phase 10:Image & Chat Safety — KEEP-VERIFY
### Phase 10:Image & Chat Safety — KEEP-VERIFY ✅ 已完成(2026-09-16 复验关闭)
**Files:** photo 模块、message safety、对象存储配置和聊天页面。
@@ -222,7 +224,7 @@
**Gate:** 越权图片访问被拒绝,敏感内容不进入普通日志。
(2026-09-16 复验通过:修复 D1 图片上传魔数校验死代码——本地资格佐证上传曾 100% 失败;D2 高风险词写入普通日志。水印未实现,登记 gap。)
### Phase 11:Notification — EXTEND
### Phase 11:Notification — EXTEND ✅ 已完成(2026-09-16 复验关闭)
**Files:** `notification/**`、预约/咨询/资格/活动服务及通知页面。
@@ -235,7 +237,7 @@
V036;D2——接线婚前辅导及管理端排期通知。`sendExternal` 在事务内执行的缺口已登记,接入真实微信 API 前须
改为提交后发送。真机文案 INV-010 达标。)
### Phase 12:Relationship Progress — KEEP-VERIFY/EXTEND
### Phase 12:Relationship Progress — KEEP-VERIFY/EXTEND ✅ 已完成(2026-09-16 复验关闭)
**Files:** relationship 状态服务、Match Episode、relationship-status 页面。
@@ -253,7 +255,7 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
「实体字段 ⊆ 生产迁移列」「测试库覆盖关键表」固化为自动守卫,并经负向验证证明会变红。
真机行为:双确认/并发确认/历史 Episode 不恢复旧聊天/非成员不可代确认 —— 14 项全绿。)
### Phase 13:公益红娘转介 — EXTEND
### Phase 13:公益红娘转介 — EXTEND ✅ 已完成(2026-09-16 复验关闭)
**Files:** `matchmaker/**`、`referral/**`、Miniapp 红娘页面、Admin referral 页面。
@@ -303,7 +305,7 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
> Phase 12 基线 371 → 391(净 +20)。**Phase 13 已关闭。Phase 13A 未自动进入,等待用户确认。**
> 报告:`docs/Phase-13-V11-Recovery-Completion-Report-2026-09-16.md`
### Phase 13A:婚恋咨询与婚前辅导 — REFACTOR/EXTEND
### Phase 13A:婚恋咨询与婚前辅导 — REFACTOR/EXTEND ✅ 已完成(2026-09-17 复验关闭)
**Files:** `counseling/**`、`miniapp/pages/counseling-*`、`miniapp/pages/my-counseling/**`、`miniapp/pages/premarital-*`、`admin-web/src/modules/counseling/CounselingView.vue`、router。
@@ -347,7 +349,7 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
> **Phase 13A 已关闭。Phase 14 未自动进入,等待用户确认。**
> 报告:`docs/Phase-13A-V11-Recovery-Completion-Report-2026-09-17.md`
### Phase 14:多类型公益活动 — REFACTOR/EXTEND
### Phase 14:多类型公益活动 — REFACTOR/EXTEND ✅ 已完成(2026-09-17 复验关闭)
**Files:** activity 模块、Miniapp activity 页面、Admin activity 页面。
@@ -396,7 +398,7 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
> **Phase 14 已关闭。Phase 15 未自动进入,等待用户确认。**
> 报告:`docs/Phase-14-V11-Recovery-Completion-Report-2026-09-17.md`
### Phase 15:活动报名、审核与签到 — KEEP-VERIFY/EXTEND
### Phase 15:活动报名、审核与签到 — KEEP-VERIFY/EXTEND ✅ 已完成(2026-09-17 复验关闭)
**Files:** activity registration、checkin 服务和 U29~U32 页面。
@@ -475,7 +477,7 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
**复验结论:** 修复 8 处真实缺陷(D1 测试库缺 `appeals` 表 + `AppealServiceTest` 6 处假绿 → 零覆盖;**D2 escalate 向 operator 发用户通知撞 `notifications.user_id→users(id)` FK,PG 上升级 100% 失败**;**D3 appealType 未校验生产 `chk_appeal_type` 白名单**;D4 escalated 死胡同;D5 processAppeal 先读后写并发竞态;D6 三处查询漏软删过滤;D7 硬编码 resolved;D8 证据字段契约 evidenceFileIds);新增 `AppealPhase18IntegrationTest`(15 例),删除假绿 `AppealServiceTest`(9 例);全量回归 494 全绿。
**报告:** `docs/Phase-18-V11-Recovery-Completion-Report-2026-09-17.md`。**Phase 19 需用户确认后启动。**
### Phase 19:统一运营后台 + 用户端公益服务页面 — ADD/REFACTOR
### Phase 19:统一运营后台 + 用户端公益服务页面 — ADD/REFACTOR ✅ 已完成(2026-09-17 复验关闭)
**Files:** Admin banner/content/service-station/service-appointment/service-program/counseling/referral 模块、MainLayout/router;Miniapp 新增 U49~U54、U60、U61、U64 页面;service API 文件。
@@ -501,31 +503,40 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
全量回归 **602 tests 全绿**(起点 420);admin-web `vue-tsc` EXIT=0 + `vite build` EXIT=0;小程序 `tsc --noEmit` EXIT=0;ui-tests 14/14。
**报告:** `docs/Phase-19-V11-Recovery-Completion-Report-2026-09-17.md`。**Phase 20 需用户确认后启动。**
### Phase 20:公益服务 Analytics — EXTEND
### Phase 20:公益服务 Analytics — EXTEND ✅ 已完成(2026-09-17 复验关闭)
**Files:** analytics 模块、统计查询/事实表后续迁移、Admin Analytics 页面、`docs/ANALYTICS_METRICS.md`。
- [ ] 为每个指标登记名称、定义、分子分母、去重键、时间字段、时区、版本和负责人。
- [ ] 分离服务用户数与服务人次、活动 mutual/confirmed/match/chat/success、Banner impression/click。
- [ ] 有效交友匹配在口径未确认前标为 provisional,不能当正式成功或对外宣传。
- [ ] 所有统计接口应用 `analytics.view` 和组织/站点 DataScope,低权限账号返回 403。
- [x] 为每个指标登记名称、定义、分子分母、去重键、时间字段、时区、版本和负责人。(`docs/ANALYTICS_METRICS.md` + `MetricCatalogGuardTest` 11 例)
- [x] 分离服务用户数与服务人次、活动 mutual/confirmed/match/chat/success、Banner impression/click。
- [x] 有效交友匹配在口径未确认前标为 provisional,不能当正式成功或对外宣传。
- [x] 所有统计接口应用 `analytics.view` 和组织/站点 DataScope,低权限账号返回 403。(V043 授权 + `AnalyticsPermissionGrantTest` 6 例)
**Gate:** 用固定测试数据人工复算一致;相同用户多次服务不会污染去重人数。
### Phase 21:账户生命周期 — EXTEND
### Phase 21:账户生命周期 — EXTEND ✅ 已完成(2026-09-18 复验关闭)
**Files:** `account/service/AccountLifecycleService.java`、预约/咨询/项目/资格服务、数据保留文档。
- [ ] 注销前检查进行中的预约、咨询、项目和本地资格审核。
- [ ] 注销事务关闭未来服务、退出项目、失效本地资格并匿名化允许保留的服务历史。
- [ ] 数据保留期限未确认的敏感材料采用配置和人工审核,不擅自永久保存或删除。
- [x] 注销前检查进行中的预约、咨询、项目和本地资格审核。(`checkCanWithdraw`;已从「硬抛异常阻断」改为「信息性日志 + 继续清理」,尊重「注销不设置障碍」)
- [x] 注销事务关闭未来服务、退出项目、失效本地资格并匿名化允许保留的服务历史。(`cancelPendingActivityRegistrations` / `notifyActiveMatches` 两处 TODO 桩已实现;`anonymizeServiceHistory` 已接线;身份证与姓名脱敏补齐)
- [x] 数据保留期限未确认的敏感材料采用配置和人工审核,不擅自永久保存或删除。
> **遗留(未静默扩权,见 `docs/superpowers/plans/2026-09-18-phase23-closeout-and-uat-readiness.md` 批 3)**:
> ① 红娘服务进行中拦截仍硬编码 `0` —— 根因是数据模型**没有 `matchmaker_services` 表**,拦截项在设计上无法落地;
> ② `getPrivacySettings` / `updatePrivacySettings` 仍为 TODO 桩。
**Gate:** 注销后不能登录/推荐/聊天;统计留痕不反向暴露个人和咨询正文。
### Phase 22:Deployment / Ops — EXTEND
### Phase 22:Deployment / Ops — EXTEND ⚠️ 未复验(与 STATUS 的「Phase 22 部署运维配置扩展」是两份不同工作)
**Files:** Dockerfiles、`infrastructure/docker-compose*.yml`、Nginx、backup/restore/deploy/gray-release scripts、OPS/DEPENDENCIES 文档。
> ⚠️ **口径澄清(2026-09-18 文档治理)**:本节为计划的 **Deployment / Ops 基础设施** Phase;而 `docs/STATUS.md` 遗留区与
> `Phase-22-V11-Recovery-Completion-Report-2026-09-18.md` 复验的是 **7 个 V1.1 Feature Flag + FeatureFlagController**
> (「部署运维配置扩展」标签),**两者是不同工作**。后者的复验结论**不构成本节的验收证据**。
> 下列 5 项**均未复验**,逐项处置见 `docs/superpowers/plans/2026-09-18-phase23-closeout-and-uat-readiness.md` 批 2。
- [ ] 删除 Backend 镜像跳过测试的发布路径;CI 构建必须先测试再打包。
- [ ] 生产关闭 Mock WeChat、默认密码、Debug、Swagger 和演示 Seed;Secret 全部由环境变量/Secret 文件注入。
- [ ] 建立 `/api/v1`、WebSocket、私有对象、6688 端口检测及国内依赖镜像说明。
@@ -534,18 +545,24 @@ D2——`RelationshipService.createMatch` 不写 episode/lastActivityAt,与 `M
**Gate:** staging 部署、健康检查、恢复演练和版本回滚都有命令、日志与结果证据。
### Phase 23:可信系统测试重建 — REFACTOR
### Phase 23:可信系统测试重建 — REFACTOR ⚠️ 部分关闭(2026-09-18)
**Files:** `backend/src/test/**`、`tests/e2e/**`、`tests/invariants/**`、测试 fixture/seed、CI scripts。
- [ ] 删除测试体中的空 `pass`,建立可隔离的用户、角色、组织、活动、咨询和预约 fixture。
- [ ] INV-001~020 必须测试真实服务行为,不能只断言常量字符串存在。
- [ ] E2E 覆盖首页聚合、Banner、资格、咨询、预约、内容、多类型活动、二阶段同意、组织隔离。
- [ ] 增加 appointment owner、Counselor Assigned、ContentEditor zero-user-data、station scope 等负向安全测试。
- [ ] CI 串联迁移、backend test、admin type-check/build、miniapp type-check 和 E2E,任何失败阻断发布。
> ⚠️ **不虚勾**:下列第 3、5 项**确实未完成**,故本 Phase 判定为**部分关闭**,且**不宣布「失败为零可进入 UAT」**。
- [x] 删除测试体中的空 `pass`,建立可隔离的用户、角色、组织、活动、咨询和预约 fixture。(清除 44 个 `pass` 空壳 + 14 个只断言常量的假不变量测试;新增空壳阻断闸门)
- [x] INV-001~020 必须测试真实服务行为,不能只断言常量字符串存在。(新增 4 个经负向注入验证的真实行为守卫)
- [ ] E2E 覆盖首页聚合、Banner、资格、咨询、预约、内容、多类型活动、二阶段同意、组织隔离。**(未完成:场景清单已完整保留在各占位文件头部 —— 本地资格 11 项、互选 8 项、权限 10 项、预约 7 项、首页 11 项;待真实实现)**
- [ ] 增加 appointment owner、Counselor Assigned、ContentEditor zero-user-data、station scope 等负向安全测试。**(部分:INV-011 结构性满足但缺显式守卫,列为待补)**
- [ ] CI 串联迁移、backend test、admin type-check/build、miniapp type-check 和 E2E,任何失败阻断发布。**(未完成:D-23-D,CI 未串联 E2E)**
**Gate:** 不允许 skip/pass 空壳;报告列出总数、通过、失败、跳过及原因,失败为零才进入 UAT。
> **遗留(未静默扩权)**:E2E 需可用活栈(后端 + PostgreSQL + 种子数据 + `E2E_PASSWORD`),在 CI 中如何供给属**基础设施决策**,
> 按「不写无法验证的测试」纪律列为遗留。处置计划见 `docs/superpowers/plans/2026-09-18-phase23-closeout-and-uat-readiness.md` 批 2。
> **报告**:`docs/Phase-23-V11-Recovery-Completion-Report-2026-09-18.md`(部分关闭);E2E 基建见 `docs/Phase-23B-V11-E2E-Infrastructure-Completion-Report-2026-09-18.md`。
### Phase 24:UAT — EXTEND
- [ ] 按用户、Reviewer、Matchmaker、Counselor、Counseling Manager、Service Station Operator、Content Editor、Activity Manager、Risk Operator 分角色验收。