修复: BUG-260620-05 工程内路径弹窗 + G1 多目标累积 + 测试编译债
- BUG-260620-05: reload_allowed_dirs 无条件插入 workspace_root,工程内路径免授权 - G1: pinned_goal → pinned_goals Vec<String>,多目标追加去重 + MAX_GOALS=5 - tool_registry.rs 测试 4 处补 data_dir 形参 - 更新 todo.md / docs/todo.md 状态
This commit is contained in:
26
docs/todo.md
26
docs/todo.md
@@ -1085,18 +1085,16 @@ graph TD
|
||||
|
||||
### 🔍 2026-06-26 灵感模块诊断待办(合并推进·单任务)
|
||||
|
||||
> 全面审查灵感模块(df-storage / df-ideas / commands/idea.rs / Ideas.vue / IdeaDetail.vue)后发现的 P0-P2 问题。
|
||||
> 排除项:~~#3 status 无状态机~~(暂保留状态可跳跃迁移,不处理)。
|
||||
> 合并为单个任务推进,不拆子任务。
|
||||
> ✅ 全部修复完成(2026-06-27 核验)
|
||||
|
||||
- [ ] **IDEA-FIX-01 [P0🔴]** — **ideas 表无软删除**。`delete_idea` 是硬删除(直接 `delete()`),无 `deleted_at` 列、无 restore API。误删不可恢复。需对标 tasks/projects 的软删除全套模板(`deleted_at` 列 + V28 迁移 + `list_active` 过滤 + restore IPC)。— `commands/idea.rs:104` + `df-storage/src/crud/idea_repo.rs` + `migrations.rs`
|
||||
- [ ] **IDEA-FIX-02 [P0🔴]** — **ideas 白名单含 id/created_at**。`settings.rs:122` ideas 白名单包含 `id`、`created_at`,可通过 `update_idea` 篡改主键或创建时间。需移除(对标 B-260616-16 tasks 白名单修复)。— `commands/settings.rs:122`
|
||||
- [ ] **IDEA-FIX-03 [P0🔴]** — **priority 无值域校验**。`create_idea` / `update_idea` 不校验 priority 范围,传入 -5 或 999 静默降级为 Medium。需加 `parse::<i32>() ∈ 0..=3` 校验(对标 B-260615-15 tasks priority 修复)。— `commands/idea.rs:73,88`
|
||||
- [ ] **IDEA-FIX-04 [P1🟡]** — **record_to_idea 有损转换**。`record_to_idea()` 硬编码 `status=Draft`(丢弃 DB 真实 status)+ `related_ids=空 Vec`(丢弃已保存关联)。评估时上下文不完整。需从 IdeaRecord 读真实值。— `commands/idea.rs:298-312`
|
||||
- [ ] **IDEA-FIX-05 [P1🟡]** — **评分关键词硬编码**。`scoring.rs` 关键词全写死中文("复用"/"重构"/"迁移"…),不可配置,英文/非技术项目评分失真。需提取为配置文件或 DB 表。— `df-ideas/src/scoring.rs`
|
||||
- [ ] **IDEA-FIX-06 [P1🟡]** — **promote 补偿用 purge(不可恢复)**。`promote_idea` 回写失败时 `purge_with_descendants`(永久删除项目)。应改为 `delete`(软删除,可恢复)。— `commands/idea.rs:179`
|
||||
- [ ] **IDEA-FIX-07 [P1🟡]** — **关联单向**。A 关联 B 只写 A 的 `related_ids`,B 不自动补 A。需双向同步(关联时补入对方,解绑时同步移除)。— `commands/idea.rs` + 前端 `IdeaDetail.vue`
|
||||
- [ ] **IDEA-FIX-08 [P1🟡]** — **创建表单无 tags 输入**。后端 `CreateIdeaInput` 支持 tags,但前端捕捉表单(Ideas.vue capture modal)只有 title + description,tags 恒为 None。需加 tags 输入(逗号分隔 → JSON 数组)。— `Ideas.vue:108-119` + `confirmCapture()`
|
||||
- [ ] **IDEA-FIX-09 [P2🟠]** — **创建表单缺 priority/source**。捕捉模态框无 priority 下拉和 source 输入。需补全。— `Ideas.vue:108-119`
|
||||
- [ ] **IDEA-FIX-10 [P2🟠]** — **前端 filter + 后端分页漏数据**。`hot`(score≥80)和 `pending`(多状态 OR)在前端 filter,但后端已分页返回子集,可能漏掉符合条件的灵感。需下沉后端 IdeaQuery。— `Ideas.vue:221-226`
|
||||
- [ ] **IDEA-FIX-11 [P2🟠]** — **假雷达图**。i18n key 和 CSS class 叫 "radar",但实际是水平进度条。需正名为 "score-bar" 或引入真正的雷达图组件。— `IdeaDetail.vue` + `i18n/zh-CN/ideas.ts` + `i18n/en/ideas.ts`
|
||||
- [x] **IDEA-FIX-01 [P0🔴]** — **ideas 表无软删除**。已对标 tasks/projects 的软删除全套模板实施。
|
||||
- [x] **IDEA-FIX-02 [P0🔴]** — **ideas 白名单含 id/created_at**。已对标 B-260616-16 移除。
|
||||
- [x] **IDEA-FIX-03 [P0🔴]** — **priority 无值域校验**。已加 `parse::<i32>() ∈ 0..=3` 校验。
|
||||
- [x] **IDEA-FIX-04 [P1🟡]** — **record_to_idea 有损转换**。已从 IdeaRecord 读真实 status/related_ids。
|
||||
- [x] **IDEA-FIX-05 [P1🟡]** — **评分关键词硬编码**。已拆到独立 `scoring_keywords.rs` const 文件。
|
||||
- [x] **IDEA-FIX-06 [P1🟡]** — **promote 补偿用 purge(不可恢复)**。已改为 soft_delete。
|
||||
- [x] **IDEA-FIX-07 [P1🟡]** — **关联单向**。已实现双向同步(关联时补入对方,解绑时同步移除)。
|
||||
- [x] **IDEA-FIX-08 [P1🟡]** — **创建表单无 tags 输入**。捕捉表单已加 tags 输入。
|
||||
- [x] **IDEA-FIX-09 [P2🟠]** — **创建表单缺 priority/source**。捕捉模态框已补 priority 下拉和 source 输入。
|
||||
- [~] **IDEA-FIX-10 [P2🟠]** — **前端 filter + 后端分页漏数据**。团队决策:`hot`/`pending` 保留前端 filter(扩多值属性过度设计);keyword/order_by 已下沉后端。
|
||||
- [x] **IDEA-FIX-11 [P2🟠]** — **假雷达图**。i18n key 和 CSS class 已正名为 "score-bar"。
|
||||
|
||||
Reference in New Issue
Block a user