From 52530486d18fa74eb74546af63c51c9821e98de8 Mon Sep 17 00:00:00 2001 From: zhi Date: Mon, 30 Mar 2026 12:50:14 +0000 Subject: [PATCH] =?UTF-8?q?BE-PR-010:=20clean=20up=20feat=5Ftask=5Fid=20se?= =?UTF-8?q?mantics=20=E2=80=94=20deprecate=20with=20read-only=20compat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- HarborForge.Backend | 2 +- HarborForge.Test | 2 +- plans/TASKLIST.md | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/HarborForge.Backend b/HarborForge.Backend index 08461df..90d1f22 160000 --- a/HarborForge.Backend +++ b/HarborForge.Backend @@ -1 +1 @@ -Subproject commit 08461dfdd3bffb54589afe986c18800ad4caad07 +Subproject commit 90d1f22267c0f7f202f7693ceae657d5dd55ec34 diff --git a/HarborForge.Test b/HarborForge.Test index 4c54503..ef8a4ae 160000 --- a/HarborForge.Test +++ b/HarborForge.Test @@ -1 +1 @@ -Subproject commit 4c54503a81667571b27086cf62c24257edae3206 +Subproject commit ef8a4ae99467d4d6ade56d6b2a79eed050a9d845 diff --git a/plans/TASKLIST.md b/plans/TASKLIST.md index 0d28764..f42a3c2 100644 --- a/plans/TASKLIST.md +++ b/plans/TASKLIST.md @@ -76,16 +76,16 @@ - [x] 设计是用反查字段、关联表还是事件记录 - [x] 实现最小可用追踪能力 -- [ ] BE-PR-009:收紧 Task 类型规则,限制全部 `story/*`(backend only) - - [ ] 更新 `TASK_SUBTYPE_MAP` 相关约束 - - [ ] 将所有 `story/*` 组合标记为 restricted - - [ ] 禁止通用 create endpoint 直接创建任何 story - - [ ] 保留内部受控入口用于 Proposal Accept +- [x] BE-PR-009:收紧 Task 类型规则,限制全部 `story/*`(backend only) + - [x] 更新 `TASK_SUBTYPE_MAP` 相关约束 + - [x] 将所有 `story/*` 组合标记为 restricted + - [x] 禁止通用 create endpoint 直接创建任何 story + - [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) - [ ] Essential CRUD 测试