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

57 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 |
## 门禁核对
- [x] 本地资格与实名认证表独立。
- [x] 非本人不能将他人私有文件登记为佐证。
- [x] 数量、大小、类型和保留期限配置化。
- [x] U62/U63 使用真实接口而非占位提示。
- [x] `/me/status` 返回本地资格状态。
## 已知限制
- 小程序仍同时保留 `.ts` 与运行时 `.js`;统一 TypeScript 唯一源属于 Phase 07 门禁。
- 佐证到期清理调度任务尚未实现,本阶段只完成保留期配置;生产启用前需在 Phase 22 运维阶段核验清理作业。
- 微信开发者工具真机/模拟器视觉验收仍属于后续 UI/UAT 门禁。
## 下一阶段
Phase 05:统一审核扩展。进入前须由用户明确确认;不得自动进入。