文档: todo 登记 F-260619-05 任务可关联灵感
tasks 表无 idea 关联字段;projects 已有 idea_id 模式可复用。 设计点(粒度 1对1/1对多 + 存储 列/关联表 + 方向待决策)+ 依赖消息级溯源 P0 完成(释放 migrations/models)。
This commit is contained in:
38
docs/todo.md
38
docs/todo.md
@@ -583,3 +583,41 @@
|
||||
|
||||
— `src-tauri/src/state.rs` + `src-tauri/src/commands/ai/{mod.rs,tool_registry.rs,agentic.rs}` + `src-tauri/src/commands/settings.rs` + 前端 Settings 页 + AiChat 弹窗组件
|
||||
|
||||
---
|
||||
|
||||
### F-260619-05 任务可关联灵感(tasks ↔ ideas 关联)
|
||||
|
||||
**背景**:当前 tasks 表无 idea 关联字段,任务与灵感(来源/启发)无结构化关联。projects 表已有 `idea_id REFERENCES ideas(id)`(项目关联灵感),任务侧缺失。
|
||||
|
||||
**现状**(核对 `df-storage/src/migrations.rs`):
|
||||
- tasks 表(:378-391):id/project_id/title/description/status/priority/branch_name/assignee — **无 idea 关联**
|
||||
- projects 表(:373):`idea_id REFERENCES ideas(id)` — 项目关联灵感(**可复用模式**)
|
||||
- ideas 表(:354-365):`source TEXT`(自由文本来源)
|
||||
- releases 表(:399):`task_ids JSON`(发布关联多任务,1对多 JSON 数组先例)
|
||||
|
||||
**设计点(待决策)**:
|
||||
1. **关联粒度**:一对一(`source_idea_id`,任务来源单个灵感)vs 一对多(`related_idea_ids` JSON 数组,借鉴 releases.task_ids)
|
||||
2. **存储**:tasks 加 `idea_id` 列(迁移,复用 projects.idea_id 外键模式)vs 关联表 `task_idea_links`(多对多,灵活但复杂)
|
||||
3. **方向**:单向(任务→灵感)vs 双向(灵感侧反向显示关联任务列表)
|
||||
4. **AI 工具**:`update_task` 支持 idea_id(白名单加列)vs 新工具 `link_task_idea`
|
||||
5. **前端**:任务卡片/详情显示关联灵感 + 选择关联(mention 复用 ChatInput @灵感)
|
||||
|
||||
**推荐**:tasks 加 `idea_id TEXT REFERENCES ideas(id)`(复用 projects 模式,1对1 起步,后续按需扩展 1对多),灵感侧反向查询 `list_tasks_by_idea`。
|
||||
|
||||
**依赖**:改 `df-storage/migrations.rs` + `models.rs`(TaskRecord 加 idea_id)— 与消息级溯源 P0 改同文件冲突,**待 P0 完成后实施**。
|
||||
|
||||
**改动点**:
|
||||
- `crates/df-storage/src/migrations.rs`:tasks 加 idea_id 列(新迁移 V)
|
||||
- `crates/df-storage/src/models.rs`:TaskRecord 加 idea_id 字段 + from_row + insert/update SQL
|
||||
- `crates/df-storage/src/crud/task_repo.rs`:白名单 + idea_id 读写
|
||||
- `src-tauri/src/commands/ai/tool_registry.rs`:update_task 支持 idea_id(或新工具)
|
||||
- 前端:任务卡片/详情关联灵感展示(友好 title 非裸 id)+ 选择
|
||||
|
||||
**验收**:
|
||||
1. 任务可关联灵感(创建/更新时指定 idea_id)
|
||||
2. 任务卡片显示关联灵感(title 友好展示)
|
||||
3. 灵感详情可查关联任务列表(若双向)
|
||||
4. `cargo check --workspace EXIT 0` + `vue-tsc EXIT 0`
|
||||
|
||||
**状态**:📋 待设计决策(粒度/存储/方向)+ 待消息级溯源 P0 完成(释放 migrations/models)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user