BE-PR-010: clean up feat_task_id semantics — deprecate with read-only compat

Decision: retain DB column, mark DEPRECATED. Existing rows still return
feat_task_id via API. New accept flow (BE-PR-007) does not write it.
Clients should migrate to generated_tasks / Task.source_proposal_id.

- Backend: model/schema/router deprecation comments updated
- Backend: added docs/BE-PR-010-feat-task-id-deprecation.md
- Tests: updated to work with Essential-based accept flow
- Tests: all 21 proposal tests pass
- TASKLIST: BE-PR-010 marked complete
This commit is contained in:
zhi
2026-03-30 12:50:14 +00:00
parent f61b5ee17f
commit 52530486d1
3 changed files with 11 additions and 11 deletions

View File

@@ -76,16 +76,16 @@
- [x] 设计是用反查字段、关联表还是事件记录 - [x] 设计是用反查字段、关联表还是事件记录
- [x] 实现最小可用追踪能力 - [x] 实现最小可用追踪能力
- [ ] BE-PR-009:收紧 Task 类型规则,限制全部 `story/*`(backend only) - [x] BE-PR-009:收紧 Task 类型规则,限制全部 `story/*`(backend only)
- [ ] 更新 `TASK_SUBTYPE_MAP` 相关约束 - [x] 更新 `TASK_SUBTYPE_MAP` 相关约束
- [ ] 将所有 `story/*` 组合标记为 restricted - [x] 将所有 `story/*` 组合标记为 restricted
- [ ] 禁止通用 create endpoint 直接创建任何 story - [x] 禁止通用 create endpoint 直接创建任何 story
- [ ] 保留内部受控入口用于 Proposal Accept - [x] 保留内部受控入口用于 Proposal Accept
- [ ] BE-PR-010:清理旧的 `feat_task_id` 语义(backend only) - [x] BE-PR-010:清理旧的 `feat_task_id` 语义(backend only)
- [ ] 判断字段是否保留但废弃 - [x] 判断字段是否保留但废弃 → 保留 DB 列,标记 DEPRECATED
- [ ] 如果废弃,给出兼容读取策略 - [x] 如果废弃,给出兼容读取策略 → 旧行仍返回值,新 accept 不写入,客户端迁移到 generated_tasks
- [ ] 如果替换,落地新的字段或关联方式 - [x] 如果替换,落地新的字段或关联方式 → 已由 BE-PR-008 通过 Task.source_proposal_id 替代
- [ ] BE-PR-011:补 Proposal / Essential / Story restricted 的后端测试(backend only) - [ ] BE-PR-011:补 Proposal / Essential / Story restricted 的后端测试(backend only)
- [ ] Essential CRUD 测试 - [ ] Essential CRUD 测试