docs: update dev status — round 16, P10.7 propose edit

This commit is contained in:
zhi
2026-03-17 14:06:21 +00:00
parent 6441ea5ef6
commit 65b76dfb06

View File

@@ -490,6 +490,76 @@
- 或 P9.6 前端创建 task 限制(禁止通用 create 创建 feature story / release maintenance task
- 或 P5.2 补全 pending→open 依赖检查(通用依赖检查 helper
### 2026-03-17 13:00 UTC第 15 轮P9.6 Task 创建限制 — 前后端完整落地)
本轮做了什么:
- 实现 P9.6:禁止通过通用 create task 创建 `story/feature``maintenance/release` 类型的 task
- **后端 tasks.py**
- 新增 `RESTRICTED_TYPE_SUBTYPES` 集合,定义受限类型组合
- `_validate_task_type_subtype()` 增加 `allow_restricted` 参数,默认阻止受限组合
- 通用 `POST /tasks` 端点自动拦截,返回 400 + 明确错误信息
- propose accept 内部创建走 ORM 直接写入,不受此限制
- **后端 milestones.py**
- `POST /{milestone_id}/tasks` 端点增加 P9.6 守卫:直接拒绝 `story/feature` 创建
- `maintenance/release` 不受限milestone endpoint 是其合法创建入口)
- **前端 CreateTaskModal + CreateTaskPage**
- Story subtypes 移除 `feature`(仅保留 improvement、refactor
- Maintenance subtypes 移除 `release`(仅保留 deploy
- 两个创建表单同步更新
改了哪些关键文件:
- `HarborForge.Backend/app/api/routers/tasks.py` — RESTRICTED_TYPE_SUBTYPES + 校验增强
- `HarborForge.Backend/app/api/routers/milestones.py` — story/feature 创建拦截
- `HarborForge.Frontend/src/components/CreateTaskModal.tsx` — 移除受限 subtypes
- `HarborForge.Frontend/src/pages/CreateTaskPage.tsx` — 移除受限 subtypes
验证结果:
- Python AST 语法检查 tasks.py / milestones.py 均通过
- `npx tsc --noEmit` 零错误通过
- 已 commitbackend `c18b8f3`frontend `2897172`parent `6441ea5`
当前阻塞/风险:
- `maintenance/release` task 的受控创建入口尚未明确实现(当前通过 milestone endpoint 可创建,但无专门的 release setup 流程)
- P2 权限骨架仍未落地
- batch transition 接口尚未同步 P5.3/P5.4 校验
- 无本地 MySQL/运行环境做集成验证
下一轮最建议继续做什么:
- P10.7 前端 propose 编辑限制open 时显示编辑入口accepted/rejected 禁止编辑主体)
- 或 P2.1 后端权限枚举注册freeze/start/close milestone + close/reopen task + accept/reject/reopen propose
- 或 P5.2 补全 pending→open 通用依赖检查 helper
### 2026-03-17 14:00 UTC第 16 轮P10.7 前端 Propose 编辑限制)
本轮做了什么:
- 实现 P10.7Propose 详情页编辑功能,仅 `open` 状态可编辑 title 和 description
- **ProposeDetailPage 新增**
- ✏️ Edit 按钮:仅 `open` 状态显示(与 Accept/Reject 同行)
- 编辑弹窗title 输入框 + description 多行文本框
- 调用 `PATCH /projects/{pid}/proposes/{id}` 提交修改
- title 不能为空时 Save 按钮禁用
- 保存成功后自动刷新详情
- loading 状态和错误提示完整
- `accepted` / `rejected` 状态下不显示 Edit 按钮(按钮渲染在 `open` 条件分支内),实现主体不可编辑
改了哪些关键文件:
- `HarborForge.Frontend/src/pages/ProposeDetailPage.tsx` — +75 行(编辑状态 + 弹窗 + handler
验证结果:
- `npx tsc --noEmit` 零错误通过
- 已 commitfrontend `208538f`
当前阻塞/风险:
- 编辑权限仅在后端校验creator / admin / 项目管理员),前端未根据当前用户身份隐藏按钮
- P2 权限骨架仍未落地(所有动作接口使用通用 role check 占位)
- batch transition 接口尚未同步 P5.3/P5.4 校验
- 无本地 MySQL/运行环境做集成验证
下一轮最建议继续做什么:
- P2.1 后端权限枚举注册freeze/start/close milestone + close/reopen task + accept/reject/reopen propose这是剩余功能中最基础的依赖项
- 或 P4.1 通用依赖检查 helper 抽取milestone start 和 task pending→open 复用)
- 或 P5.4 补全后端 undergoing→completed 强制 comment 校验(前端已有弹窗,后端尚缺校验)
---
## 1. 背景