docs: update dev status log for round 5 - propose CRUD router

This commit is contained in:
zhi
2026-03-17 03:02:29 +00:00
parent 5602b1b107
commit d4f95c56e2

View File

@@ -134,6 +134,40 @@
- P6.1 Propose 基础 CRUD routercreate/list/get/update含 propose_code 自动生成
- 这是让 Propose 功能可用的最小后端闭环
### 2026-03-17 03:00 UTC第 5 轮Propose CRUD Router + Accept/Reject/Reopen 动作)
本轮做了什么:
- 新建 `app/api/routers/proposes.py`,完整实现 Propose 后端 CRUD + 状态动作P6.1-P6.4
- **CRUD**list / create / get / update遵循 project-scoped 路由 `/projects/{project_id}/proposes`
- **propose_code 自动生成**P1.4`{proj_code}:P{i:05x}` 格式,按 project 独立递增
- **accept 动作**P6.2
- 接收 `milestone_id` 参数,校验 milestone 属同 project 且 status=open
- 自动创建 `story/feature` task继承 title/description/created_by默认 pending
- 自动回填 `feat_task_id`
- **reject 动作**P6.3):校验 propose 为 open支持 reason 参数,记录 activity log
- **reopen 动作**P6.4):仅 rejected 可 reopen 回 open复用原 propose 不新建
- **feat_task_id 只读保护**P6.5update 接口中 pop 掉客户端传入的 feat_task_id
-`main.py` 注册 proposes_router
- 所有动作均写 activity log
改了哪些关键文件:
- `HarborForge.Backend/app/api/routers/proposes.py` — 新增280 行)
- `HarborForge.Backend/app/main.py` — 注册 proposes_router
验证结果:
- Python AST 语法检查 proposes.py / main.py 均通过
- 已 commitbackend `75ccbcb`parent `5602b1b`
当前阻塞/风险:
- 权限检查暂用 `check_project_role(min_role="mgr")` 占位,待 P2 权限骨架落地后替换为细粒度 permission
- propose_code 生成使用 `max(id)+1`,并发场景理论上有微小重复风险(但有 unique 约束保底)
- 无本地 MySQL 环境做运行时验证
- 前端 Propose 页面尚未开始P10
下一轮最建议继续做什么:
- P10.1-P10.3 前端 Propose 类型定义 + 列表页 + 详情页骨架(让 propose 功能在 UI 上可见)
- 或 P3.1 Milestone 动作接口freeze/start/close使 milestone 状态机真正可用
---
## 1. 背景