docs: update dev status — round 7 propose frontend pages

This commit is contained in:
zhi
2026-03-17 05:04:16 +00:00
parent d4f95c56e2
commit 63ba441f06

View File

@@ -168,6 +168,93 @@
- P10.1-P10.3 前端 Propose 类型定义 + 列表页 + 详情页骨架(让 propose 功能在 UI 上可见)
- 或 P3.1 Milestone 动作接口freeze/start/close使 milestone 状态机真正可用
### 2026-03-17 04:00 UTC第 6 轮Milestone 动作接口 freeze/start/close + auto-complete
本轮做了什么:
- 新建 `app/api/routers/milestone_actions.py`313 行),实现 P3.1-P3.5 的核心后端逻辑
- **freeze 接口**P3.2
- 校验 milestone 为 open
- 校验有且仅有 1 个 `maintenance/release` task否则拒绝并给出明确错误
- 调用 `check_permission("freeze milestone")`
- **start 接口**P3.3
- 校验 milestone 为 freeze
- 解析 `depend_on_milestones` / `depend_on_tasks` JSON校验所有依赖已 completed
- 写入 `started_at`,状态改为 undergoing
- 调用 `check_permission("start milestone")`
- **close 接口**P3.4
- 允许从 open/freeze/undergoing → closed
- 支持 reason 参数
- 调用 `check_permission("close milestone")`
- **auto-complete hook**P3.5
- `try_auto_complete_milestone()` 在 task 完成时检测是否为唯一 release task若是则自动将 milestone 置为 completed
- 已在 tasks.py 的 transition 和 update 两个入口调用
- **freeze 后限制**P3.6 partial
- milestones.py 的 `create_milestone_task` 现在禁止在 freeze 状态下添加 feature story task
- 同时禁止在 undergoing/completed/closed 下添加任何 task
- milestone 序列化新增 `started_at` 字段
- 所有动作均写 activity log
改了哪些关键文件:
- `HarborForge.Backend/app/api/routers/milestone_actions.py` — 新增
- `HarborForge.Backend/app/api/routers/milestones.py` — freeze 限制 + started_at 序列化
- `HarborForge.Backend/app/api/routers/tasks.py` — auto-complete hook2 处)
- `HarborForge.Backend/app/main.py` — 注册 milestone_actions_router
验证结果:
- 4 个文件 Python AST 语法检查全部通过
- 已 commitbackend `7d8c448`
当前阻塞/风险:
- P2 权限骨架尚未落地(`freeze/start/close milestone` permission 需要注册到 permission 表 + 默认角色种子)
- milestone 编辑限制P3.6只做了部分freeze 后禁新 feature task`completed/closed` 禁编辑还需在 update 接口加守卫
- 前端 milestone 按钮P8.2)尚未开始
- 无本地 MySQL 做运行时验证
下一轮最建议继续做什么:
- P3.6 补全 milestone 编辑限制update 接口在 freeze/completed/closed 时拒绝核心字段修改)
- 或 P10.1-P10.3 前端 Propose 类型 + 列表/详情页骨架
- 或 P8.1-P8.2 前端 milestone 状态 badge + 动作按钮
### 2026-03-17 05:00 UTC第 7 轮:前端 Propose 完整页面骨架 P10.1-P10.5
本轮做了什么:
- 新增 `Propose` 类型定义到 `types/index.ts`P10.1
- 新建 `ProposesPage.tsx` — 按 project 筛选的 propose 列表页 + 创建弹窗P10.1-P10.2
- 项目下拉选择
- propose 卡片展示 status badge / propose_code / title / description / feat_task_id / created_at
- 内联创建弹窗title + description
- 新建 `ProposeDetailPage.tsx` — 完整详情页 + 状态动作按钮P10.3-P10.6
- 展示所有必要字段propose_code / title / description / status / created_by / feat_task_id / timestamps
- `open` 状态显示 Accept + Reject 按钮
- Accept 弹窗:列出当前 project 下 open 的 milestone 供选择,确认后调用 accept API
- Rejectprompt 填写 reason调用 reject API
- `rejected` 状态显示 Reopen 按钮
- `accepted` 状态显示 View Generated Task 跳转按钮
- 所有动作带 loading 状态和错误提示
-`App.tsx` 注册 `/proposes``/proposes/:id` 路由
-`Sidebar.tsx` 新增 💡 Proposes 导航链接
改了哪些关键文件:
- `src/types/index.ts` — 新增 Propose 接口
- `src/pages/ProposesPage.tsx` — 新增
- `src/pages/ProposeDetailPage.tsx` — 新增
- `src/App.tsx` — 路由注册
- `src/components/Sidebar.tsx` — 侧边栏链接
验证结果:
- `npx tsc --noEmit` 零错误通过
- 已 commit: `35e7d3a`
当前阻塞/风险:
- ProposeDetailPage 中 "View Generated Task" 跳转使用 `feat_task_id` 作为路径,需确认后端返回的是 task id 数字还是 task code 字符串
- Propose 编辑功能P10.7 `open` 时编辑 title/description尚未实现
- CSS badge class `status-completed` / `status-closed` 可能需要新增样式
- 权限可见性控制(按钮仅对有权限的用户显示)尚未实现,当前所有按钮对所有用户可见
下一轮最建议继续做什么:
- P8.1-P8.2 前端 milestone 状态 badge + 动作按钮freeze/start/close让 milestone 状态机在 UI 上可操作
- 或 P3.6 补全 milestone 编辑限制(后端 update 接口守卫)
---
## 1. 背景