Files
danyang-match/docs/Phase-04-V11-Recovery-Completion-Report-2026-09-12.md
T
Codex 60eeb8aef5 docs(brand): 全仓库 Codex 署名统一为 WorkBuddy + 5 个文件重命名
## 背景
用户指令:「先将 codex 的任务一并改为 workbuddy 的任务」。
Codex 已不再运行,当前由 WorkBuddy 承担开发执行,文档署名需同步。

## 判定规则(用大小写精确区分)
| 类别 | 写法 | 处置 |
|---|---|---|
| 工具署名 | 大写 Codex | → WorkBuddy |
| 分支名 | codex/ui-v11-fidelity | → workbuddy-ui-v11-fidelity(去斜杠,规避本仓库 ref 清理) |
| 已删除文件的历史路径 | 小写 2026-09-11-codex-baseline-cleanup* | 保持原样(记录真实曾存在的文件名,改了即失真) |

结果:26 个文件、126 处署名替换。残留小写 codex 仅 8 处,全部是历史路径。

## 文件重命名(git mv,保留历史)
- Codex开发执行总指令、项目规则与任务拆解.md → WorkBuddy 同名
- Codex首轮启动提示词 + Phase 01~Phase 26 Jira级任务清单 + 每阶段验收条件.md → WorkBuddy 同名
- docs/善缘丹阳 V1.1 Codex 开发执行计划修订版.md → docs/善缘丹阳 V1.1 WorkBuddy 开发执行计划修订版.md
- docs/善缘丹阳 V1.1 Codex-Jira 最终开发任务增量清单.md → docs/善缘丹阳 V1.1 WorkBuddy-Jira 最终开发任务增量清单.md
- docs/善缘丹阳 V1.1 Codex最终主启动提示词(整合版).md → docs/善缘丹阳 V1.1 WorkBuddy最终主启动提示词(整合版).md

引用已同步:AGENTS.md 6 处、AGENTS_SUMMARY.md、以及 4 份计划/规格文档。

## AGENTS.md 两处特别处理
- 「git config user.name = Codex」一句改为不点名工具的表述
- 「feature/ fix/ codex/ ui/ 前缀」示例去掉 codex/

## 有意未改动
- ui-tests/ui-document-baseline-contracts.mjs 的废弃清单仍列 codex-baseline-cleanup*
  那是「必须不存在」的断言目标,改了会让哨兵失去意义
- 仓库 git config user.name 仍是 Codex —— 未擅自改动环境身份。
  如需彻底交接:git config user.name WorkBuddy && git config user.email workbuddy@local

验证:UI 契约门禁 13/13;AGENTS.md 零 Codex 残留;5 个新文件名与全部引用一致
2026-09-16 14:37:44 +08:00

2.4 KiB
Raw Permalink Blame History

Phase 04 V1.1 恢复复验 Completion Report

日期:2026-09-12
分支:workbuddy-ui-v11-fidelity

结论

Phase 04 COMPLETE / 项目整体继续 NO-GO。

Profile、Preference 保持现有兼容行为;本地资格声明、状态、补证、提交及 /me/status 已重新核验。Phase 05 及以后未获准开始。

本阶段修复

  • 将 U62/U63 从空白 JavaScript 脚手架恢复为真实 API 链路。
  • U62 查询当前用户本地资格状态,覆盖未声明、已声明、待补证、审核中、已核验、未通过。
  • U63 完成本地资格声明、私有材料上传、佐证登记和提交审核。
  • 修正佐证实体 fileId 与数据库 file_key 的 MyBatis 映射。
  • 后端执行佐证上传开关、数量上限、类型白名单和文件归属校验。
  • 增加佐证保留期配置,默认 365 天;实际清理由运维任务按配置执行。
  • 图片大小上限和允许类型由 FeatureFlag 配置控制。

权限与数据边界

  • 用户端 Controller 的 userId 仅取自 UserPrincipal,不接受请求体 userId。
  • 佐证文件经认证接口上传到私有存储。
  • 登记佐证前校验文件属于当前用户;其他用户文件被拒绝。
  • 本地资格使用独立的 user_local_eligibilities、local_eligibility_evidences 表,不写入 user_identities。

自动化与运行验证

检查 结果
LocalEligibilityServiceTest 3/3 通过,0 failure,0 error;BUILD SUCCESS
phase04-local-eligibility-contracts.mjs 通过
Backend Docker build 通过
Flyway 33 个迁移校验通过,Schema 版本 033
PostgreSQL / Redis / MinIO / Backend 全部 healthy
/api/v1/health/live UP

门禁核对

  • 本地资格与实名认证表独立。
  • 非本人不能将他人私有文件登记为佐证。
  • 数量、大小、类型和保留期限配置化。
  • U62/U63 使用真实接口而非占位提示。
  • /me/status 返回本地资格状态。

已知限制

  • 小程序仍同时保留 .ts 与运行时 .js;统一 TypeScript 唯一源属于 Phase 07 门禁。
  • 佐证到期清理调度任务尚未实现,本阶段只完成保留期配置;生产启用前需在 Phase 22 运维阶段核验清理作业。
  • 微信开发者工具真机/模拟器视觉验收仍属于后续 UI/UAT 门禁。

下一阶段

Phase 05:统一审核扩展。进入前须由用户明确确认;不得自动进入。