Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 3.81 KB

File metadata and controls

55 lines (41 loc) · 3.81 KB

v0.14.1:笔记组 CRUD + 知识画布连线/布局选项

状态:代码已交付(2026-08-29,提交 20da94e7) 依据:用户指令「笔记组能够添加编辑、新建等操作逻辑」+「知识体系可以有直线、曲线的选择,以及布局上可以有其他选择(头脑风暴一下)」(2026-08-29) 设计规格:2026-08-29-v0.14.1-notes-group-crud-and-canvas-preferences-design.md([ ] 已归档)

一句话

两块独立功能:① 笔记组从"只读浏览"变"可管理"——新建(名称+领域+颜色)、行内重命名、 影响面确认后级联删除(后端新增 2 命令,前端 3 入口接线);② 知识画布连线/布局可选化—— 连线 4 样式(直线/曲线/圆角折线/硬折线)+ 箭头开关,布局 6 算法(辐射/双翼思维导图/水平逻辑树/ 垂直组织树/鱼骨简化版/双环),按体系持久化(canvas_states 加 3 列)。

背景

  • 组侧栏(v0.14 C1 Obsidian 式重构已交付)仍无新建/编辑/删除:后端 create_topic_group/ rename_note_group 自 v0.11.0 就存在但前端零接线;无删除命令,误生成的组永久存在
  • 画布(v0.13.8 交付)连线恒为 smoothstep、自动排列仅辐射布局;v0.13.8 规格中的 smoothstep/bezier 候选只落地了前者

用户裁决记录(2026-08-29)

议题 裁决
组操作范围 完整管理——新建/重命名/删除一次到位
删除语义 影响面确认后级联(笔记/碎片→"全部";闪卡/结算/契约→级联删;体系引用→清理悬空;确认弹窗明示数量)
画布偏好记忆 按体系持久化(knowledge_canvas_states 加列)
布局候选 全选 6 项(辐射/双翼/水平树/垂直树/鱼骨/双环);鱼骨图做简化版(主干+一二级展开;完整鱼骨因果语义与知识树不匹配);力导向未纳入(ADR-024 不做清单)
连线候选 全选 4 项 + 箭头开关 + 分类边样式预留(不引入新边类型)

实现(按设计规格 §3/§4)

Rust:note_groups 无新表(FK 已就绪)——group_delete_impact/delete_group(单事务 + knowledge_links 悬空清理);knowledge_canvas_states 幂等迁移 3 列(edge_style/edge_arrows/ layout_algorithm)+ get_canvas_prefs/save_canvas_prefs(upsert + 枚举白名单);4 命令注册

前端:GroupCreateDialog(新建弹窗)+ 组行 ✎ 内联重命名 + ⓘ 弹层「删除组」第五区 (GroupDeleteConfirm 影响面确认);画布右上「✨ 布局 ▾」「〰 连线 ▾」两个下拉(替换 「自动排列」按钮)+ 5 个新布局纯函数(layoutMindmap/layoutTreeRight/layoutOrg/ layoutFishbone/layoutDualRing,确定性可单测)+ layoutCanvas 分发器 + canvasElements edgeStyle/arrows 映射;layoutRadial 零改动(回归)

边界(不改)

  • 力导向图(REQ-029 P3 / ADR-024)、画布新建/编辑节点、手动连线、导出图片——不做清单保持
  • 组模型无父子组;三条设计契约延续
  • v0.14 D4(平台 ROI 应用接线)为本版另一挂账项,不在本设计范围

验证

  • Rust:cargo test 新增 ~20 用例(impact 计数/级联归零/悬空清理/白名单/upsert)——全绿(1833 通过; 仅 3 个预存失败与本次无关:ai_client provider 默认值 + note_filter golden×2,干净 HEAD 已复现)
  • 前端:vitest 新增 ~35 用例(5 布局纯函数确定性+无重叠+结构断言/边映射/新建与删除流/下拉保存)——49 文件 402 用例全绿;tsc --noEmit 零错误
  • Rust clippy:零新告警(见提交后检查)
  • 验收 8 项见设计规格 §8(真机验收待执行)