diff --git a/docs/milestone-propose-requirements.md b/docs/milestone-propose-requirements.md index 961f92c..bb25ff8 100644 --- a/docs/milestone-propose-requirements.md +++ b/docs/milestone-propose-requirements.md @@ -638,6 +638,33 @@ - 或 P2.2 默认角色权限种子配置(为 dev/mgr 等常用角色预置合理的新权限组合) - 或 P11.1 前端权限列表展示新增权限 +### 2026-03-17 17:00 UTC(第 19 轮:P4.1 通用依赖检查 Helper 抽取) + +本轮做了什么: +- 新建 `app/services/dependency_check.py`,实现 P4.1 通用依赖检查能力 +- `check_milestone_deps()` 函数:接收 `depend_on_milestones` + `depend_on_tasks` JSON 字段,返回结构化 `DepCheckResult`(ok/blockers/reason) +- 内部 helper `_parse_json_ids()` 安全解析 JSON ID 列表,消除重复的 try/except 模式 +- 重构 `milestone_actions.py`:preflight 和 start 两个端点的依赖检查从 ~50 行内联代码缩减为各 ~5 行调用 +- 移除了 `milestone_actions.py` 中不再需要的 `import json` + +改了哪些关键文件: +- `HarborForge.Backend/app/services/dependency_check.py` — 新增(~95 行) +- `HarborForge.Backend/app/api/routers/milestone_actions.py` — 重构,净减 ~50 行 + +验证结果: +- 2 个文件 Python AST 语法检查通过 +- 已 commit:backend `c6b14ac`,parent `0bc2379` + +当前阻塞/风险: +- task `pending→open` 的依赖检查尚未接入此 helper(当前 tasks.py 只校验 milestone 为 undergoing,不检查 task 自身的 depend_on 字段) +- P2.2 默认角色权限种子仍未细化(dev/mgr 角色无预置新权限) +- 无本地 MySQL/运行环境做集成验证 + +下一轮最建议继续做什么: +- P4.3 在 task transition `pending→open` 中接入 `check_milestone_deps` 检查 task 自身依赖 +- 或 P2.2 默认角色权限种子配置 +- 或 P11.1 前端权限列表展示新增权限 + --- ## 1. 背景