Skip to content

Commit b369f8e

Browse files
committed
docs(versions): v0.20.12 批 7 交付记录(REQ-316 空组自动清理 + 行数豁免更新)
1 parent 589b87f commit b369f8e

3 files changed

Lines changed: 33 additions & 1 deletion

File tree

‎docs/product/requirements-pool.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@
595595
| REQ-312 | AI 精修工作台差异化显示:行级染色(左栏 base removed 删除线红 / 右栏 refined added 新增绿,按流序对齐,未变行原样)+ 顶栏「并排/差异」单栏切换(灰/删除线红/绿 + ± 前缀);章节徽标与行统计保留;后端新增 `diff_markdown_ops` 薄命令(复用 note_diff 纯函数输出整篇有序 DiffOp 流);取数失败/空侧降级不染色不破坏渲染;采纳/重新生成/放弃与存储路径零改动;范围=会话级+笔记级+只读版本对比 | P1 | 已实施(2026-09-09 批 3:commands_notes_version diff_markdown_ops(3 例单测)+ utils/refineDiff.ts(12 例)+ RefineWorkbench 染色与视图切换(3 例),提交见 v0.20.md v0.20.8 交付记录) | v0.20 系列 | 用户 11 项问题 11;不采用 taskResult.diff 因基线含锚点草稿可能与剥离锚点展示文本错位 |
596596
| REQ-313 | 会话页交互矩阵完善:①会话行右键菜单(打开详情/重命名/复制标题/转为笔记(可转化行才显)/删除红字);②去勾选框改笔记同款**选择模式**(工具栏「选择」入口+模式 chip、单击勾选、Ctrl/⌘ 加减、Shift 区间、Esc 三级退出、列表变化自动裁剪选集——复用 utils/noteSelection 既有纯函数);③后端新增原子 `batch_delete_sessions`(单事务全删、语义与单条 delete_session 全等:子表 FK 级联 + notes.session_id SET NULL、Sessions+Notes 双域广播、空参/超 200/非法 id 报错、重复去重);④行内改名补齐(全 kind 含 web 会话,Enter/Esc/失焦,busy 防连点,改名打开中详情同步重拉);批量转笔记按钮/三态全选/可转化过滤语义不变 | P1 | 已实施(2026-09-09 批 4:commands_session_delete+单测 5 例 + SessionListPanel/SessionListRow/SessionRowContextMenu/SessionsPage,提交见 v0.20.md v0.20.9 交付记录) | v0.20 系列 | 用户 11 项问题 4;课程分组=派生视图非实体,移至组/合并/导出/归档已与用户确认排除;右键删除走单条动线、批量删除走新命令 |
597597
| REQ-314 | 复习功能独立为顶层页(用户裁决:独立顶层页——新增第 9 个 Tab「🔄 复习」):ReviewSessionOverlay 全页化(去 fixed 遮罩渲染页面主体区,front→reveal→四档评分流与后端命令不变,一轮上限 200=后端 DUE_LIST_LIMIT_MAX)+ 组过滤器(全部+各组含到期数,纯归约 utils/reviewStats)+ 到期感知=仅顶层 Tab 自身(**无被动提醒**沿用行动域裁决——组侧栏「🎴 复习 N」按钮与徽标移除、导航/侧栏不放徽标);笔记域 ⓘ「复习本组」改**跨页深链**(App 转页+组预选 focusReviewGroupId,消费即清空、同组可重复触发);空态引导文案(含 ⓘ「⚙ 生成闪卡」卡源指引,页内一键生成入口登记开放项);刷新走 active 门控切回重载(TD-004——闪卡域不在五域事件总线,ADR-018 零耦合);后端零改动(list_due_cards/count_due_cards/review_card 既有命令面全复用) | P1 | 已实施(2026-09-09 批 5:pages/ReviewPage + components/review/ReviewSessionPanel(git mv 迁移)+ App 第 9 Tab/深链 + 笔记域拆件(NotesPage 575→540 / GroupSidebar 455→418),提交见 v0.20.md v0.20.10 交付记录) | v0.20 系列 | 用户 11 项问题 6;顶层 Tab=9 收纳观察启动(spec §9,只登记不做);设计见 [2026-09-09 spec](../superpowers/specs/2026-09-09-review-page-design.md);v0.20.5 spec §9 二期预留兑现 |
598+
| REQ-316 | 笔记组空组自动清理(用户 11 项问题 8,已授权口径:仅自动路由空组自动删除):路由产物组(source route/series 且 route_overridden=0——手动建组/已改判组永不自动删)在本批写操作(删笔记/移笔记/删碎片/移碎片/碎片升笔记)事务内被清空时,同事务判定五类残留(笔记/碎片/闪卡/结算/周契约——与 get_group_delete_impact 同口径,计数单点 group_residue)全零 → 复用既有组删除行语义删组(knowledge_links 先清 + FK 级联;note_group_orders/置顶随 CASCADE 清);无独立定时/全表清扫任务;结果契约扩展 autoCleanedGroups(组标题)→ 前端 toast「已自动清理空组:X、Y」留痕(无清理零变化) | P1 | 已实施(2026-09-09 批 7:db_note_group_clean.rs 共享判定/删除 + 五写路径事务内收敛 + 命令契约与条件组域广播 + 前端留痕(useTransientToast/groupClean 纯函数)——新增 Rust 16 例,提交见 v0.20.md v0.20.12 交付记录) | v0.20 系列 | 用户 11 项问题 8;**与 REQ-294 哲学边界**:「不留死尸的机制是裁决不是自动清理」针对行动层(周回顾仪式);本批边界=只清自动路由产物空组(无内容可裁决、无用户投资),手动组/改判组/有残留组绝不动;删除不留回收站(与全 app 无软删先例一致) |
598599
| REQ-315 | 笔记与笔记组排序/置顶(用户裁决:彻底方案):**组侧**——note_groups 补 `pin` 列 + 新独立表 `note_group_orders`(group_id 主键、seq=kind 分区内相对序号;FK CASCADE 随组删清理,改判换分区同事务清行)→ 命令 update_note_group_pin / note_group_order_list / note_group_order_save(分区快照先删后插,空 ids=分区回自动)/ note_group_order_clear(单组回自动)+ 组行右键菜单(置顶/取消置顶、上移、下移、回自动、打开信息——替代右键直开 ⓘ;ⓘ 按钮不变)+ 分区头「手排 ↺」徽标(有手动位才显)+ 行内 📌 置顶标记;**渲染规则(纯函数 orderBuckets,组侧栏分区/笔记树组头/过滤平铺三面共用)**=置顶区(pin=1,区内按更新时间降序)→ 手动 seq 区 → 自动区(更新时间降序),**LRU 最近使用不作用于置顶/手排组**(recency 现状不重排分区,取最小一致改法);**笔记侧**——右键菜单补显式 上移/下移(树视图 scope 内;自动组首移=以可见序快照转手排,补"必须拖一次"发现性缺口)+ 树视图/手排组内 pin 置顶区生效(gap③:此前只在平铺「固定优先」消费)+ **措辞统一「置顶」**(REQ-287 的「固定/固定优先」UI 文案全改,数据字段 pin 不变;置顶项移动禁用并提示——置顶区按更新时间定序,取消置顶后可移动) | P1 | 已实施(2026-09-09 批 6:Rust 命令族 + db 单测 10 例、排序纯函数三件套(orderBuckets/groupOrder/noteOrder)+ 20 例单测、组右键菜单与笔记移动接线,提交见 v0.20.md v0.20.11 交付记录) | v0.20 系列 | 用户 11 项问题 7;**与 REQ-287 关系**:note_orders 独立表/快照/scope 基建原样扩展至组(note_group_orders),其「固定优先」下拉语义不变(平铺置顶优先=后端排序),仅措辞统一;平铺 updated-desc 模式不置顶=模式语义(后端排序负责) |
599600

600601
## 优先级定义

‎docs/standards/line-limit-exemptions.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@
7777
| app/src-tauri/src/db_sop.rs | 433 | v0.20.3(REQ-296/297)SOP 三表数据域(模板/run/步骤/保鲜/聚合)+ 审查加固(保链更新/幂等守卫/步数计数)内聚 | 若再增长:run 执行族拆至 db_sop_run.rs |
7878
| app/src-tauri/src/commands_after.rs | 302 | v0.20.3(REQ-294/295/299/300)收尾命令域(批决议/导出/练习/问题)内聚;2026-09-06 实测登记(TD-2026-09-06-G) | 若再增长:批决议核心拆至 weekly_resolve.rs |
7979
| app/src-tauri/src/commands_session_note.rs | 458 | 既有登记 314 为过期快照——2026-09-06 实测纠偏(v0.20 装载合成/web 分支/批量 inner 扩展后 +144) | 若再增长:convert_to_note 拆至 commands_session_note_convert.rs |
80+
| app/src-tauri/src/db_notes.rs | 366 | REQ-316(批 7):delete_note/update_note_group 改显式事务 + 同事务空组自动清理接线(结果契约扩展 + 旧组读出,净增 ~60 行;此前 305 未登记属漏登,本次补) | 若再增长:移组/删除事务族拆至 db_notes_group_ops.rs |
81+
| app/src-tauri/src/db_fragments.rs | 391 | REQ-316(批 7):delete_fragment/update_fragment_group/promote 同事务空组自动清理接线(登记值 309 过期快照,实测纠偏) | 若再增长:promote_fragment_to_note 事务拆至 db_fragments_promote.rs(既有登记计划兑现) |
82+
| app/src-tauri/src/commands_fragments.rs | 374 | 碎片命令域 + REQ-316(批 7)结果契约与组域条件广播(登记值缺失为漏登——HEAD 基线已 347,本次补) | 若再增长:碎片组操作命令族拆至 commands_fragments_group.rs |
83+
| app/src-tauri/src/db_note_group_clean_tests.rs | 392 | REQ-316(批 7)测试域:判定表(自动/系列/手动/改判/五类残留/影响面外/级联卫生)+ 写路径集成 16 例,单模块 #[path] 挂载 | 若再增长:写路径集成组拆至 db_note_group_clean_flow_tests.rs |
84+
| app/src-tauri/src/commands.rs | 597 | 命令装配域(AppState + 通用命令 + 导入管线编排);登记值 466 过期快照——2026-09-09 实测纠偏(含批 7 delete_note 结果契约 +12;600 硬限内压线) | 若再增长:导入管线命令拆至 commands_import.rs(既有登记计划) |
85+
| app/src-tauri/src/types.rs | 1017 | 全局共享类型域 + 批 7 五命令结果契约(+59;登记值 958 过期快照——实测纠偏) | 若再增长:笔记与 OCR 块类型拆至 types_note.rs / types_ocr.rs(既有登记计划) |
8086

8187
## 前端(app/src/,数字来自前端审查快照;Task #9/10 拆分进行中)
8288

@@ -122,6 +128,10 @@
122128
| app/src/App.tsx | 439 | 根装配(页面切换/焦点跨页直达状态机/全局事件监听)+ v0.20.5 行动页 + v0.20.10 批 5 复习页 Tab/深链/保活挂载(f702d876)——登记值 363 过期,实测纠偏 | 若再增长:焦点跨页直达 state 族拆至 useFocusRouting.ts |
123129
| app/src/components/NoteListView.tsx | 591 | v0.20.11 批 6(REQ-315)排序/置顶接线:scope 内 置顶→手排→自动 排序消费(orderScopeNotes)、组头排序行装载(note_group_order_list + orderGroups)、右键上移/下移与置顶拖拽底序重写(manualBaseOf/dropNotesIntoOrder)——编排内聚持续(登记值 524 过期,实测纠偏;排序纯函数已拆 orderBuckets/groupOrder/noteOrder 配单测) | 若再增长:拖拽/移动接线拆至 useNoteOrders.ts(既有登记计划兑现) |
124130
| app/src/components/GroupSidebar.tsx | 509 | v0.20.11 批 6(REQ-315)排序/置顶接线:组行右键菜单替代直开弹层、分区 置顶→手排→自动 渲染(orderGroups)、分区头「手排 ↺」复位、置顶 📌 标记(登记值 444 过期,实测纠偏)——排序操作域已拆 useGroupOrders.ts(123 行 hook),菜单 UI 拆 GroupRowContextMenu.tsx(131 行),本文件保留编排 | 若再增长:体系引用拉取与徽标聚合拆至 useGroupSystemLinks.ts hook |
131+
| app/src/pages/NotesPage.tsx | 599 | v0.20.12 批 7(REQ-316)空组清理 toast 留痕接线(自绘 toast + onCleanNotice 分发;571→599,600 硬限内压线——登记值 571 过期) | 若再增长:封存过滤族拆至 useNotesSealedFilter.ts / useNotesPageEditing.ts |
132+
| app/src/components/NoteListView.tsx | 646 | v0.20.12 批 7(REQ-316)移组清理留痕接线(批量移/跨组拖移收集 + 右键菜单透传 +13;登记值 591 过期/实测纠偏——**超 600 硬限为预存债务**:HEAD 基线已 633 未登记,随 TD-2026-09-09-A 登记) | **超硬限必须拆**:拖拽/移动接线拆至 useNoteOrders.ts(既有登记计划兑现) |
133+
| app/src/components/GroupSidebar.tsx | 519 | v0.20.12 批 7(REQ-316)拖拽归组/ⓘ 弹层移组清理留痕透传(509→519;登记值过期纠偏) | 若再增长:体系引用拉取与徽标聚合拆至 useGroupSystemLinks.ts hook |
134+
| app/src/components/RouteInfoPopover.tsx | 375 | v0.20.12 批 7(REQ-316)移入/移出选中笔记清理留痕透传(360→375) | 若再增长:简报拉取与渲染拆至 SystemBriefSection.tsx |
125135

126136
## 已拆分 / 登记移除记录
127137

0 commit comments

Comments
 (0)