Skip to content

Commit d1f9314

Browse files
committed
docs(versions): v0.20.13 批 8 交付记录(REQ-317 选中右键菜单 + TD 滚动/豁免登记)
1 parent 5493835 commit d1f9314

6 files changed

Lines changed: 93 additions & 1 deletion

File tree

‎docs/archive/2026-09-09/README.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# 归档 2026-09-09
2+
3+
> 归档 SOP:见 [../README.md](../README.md)。归档当日:2026-09-09(批 1~8 同日连续交付收口 + 技术债滚动)。
4+
> 当日无文档移入归档夹(versions/Foresight/需求池/豁免清单按机制常驻仍活跃);本夹=技术债滚动权威快照。
5+
6+
## 归档清单
7+
8+
本日无符合归档判定(生命终态)的文档入夹——versions/v0.20.md(v0.20.6~13 交付记录)、requirements-pool、line-limit-exemptions、Foresight 均属「不归档(持续活跃)」类。
9+
10+
## 债务摘要
11+
12+
- **技术债滚动**:[tech-debt.md](./tech-debt.md) 为最新权威清单——自 2026-09-06 继承 carried 7 笔 + closed 3 笔(哈希不变);TD-2026-09-09-A 正式补登(批 7 引用先行、当日夹缺失);新增 open 2 笔(TD-2026-09-09-B/C——批 8 授权退路/范围裁剪);TD-2026-08-31-A → closed(部分兑现,REQ-317 v0.20.13)
13+
- **验证**:前端全量 vitest 绿 + tsc 0 错误(批 8 新增 37 例);Rust 零改动无需回归
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# 技术债清单(权威:2026-09-09)
2+
3+
> 本清单为当前唯一权威债务清单,归档日滚动更新;旧归档清单仅历史追溯。
4+
> 来源:2026-09-09(批 1~8 同日连续交付——v0.20.6~0.20.13 与 REQ-306~317;自 2026-09-06 权威清单滚动核验:carried 7 笔逐条核对 + TD-2026-09-09-A 补登(批 7 既已引用但当日未建夹)+ 批 8 新登记 B/C + TD-2026-08-31-A 状态更新)。
5+
6+
## 未偿债务
7+
8+
| ID | 摘要 | 类型 | 优先级 | 来源归档 | 状态 |
9+
|----|------|------|--------|----------|------|
10+
| TD-040 | bundle.resources 未含 ffmpeg(deliberate 有意不修:体积权衡) | 有意 | P2 | 2026-08-18 | carried |
11+
| TD-2026-08-19-D | image_stream_store 已交付未接线(REQ-110/123/088)——lib.rs 仅 mod 声明,接线条件未发生 | 有意 | P2 | 2026-08-19 | carried |
12+
| TD-2026-08-24-A | lib.rs 超 600 硬限——实测 872(v0.19.3 模块/命令再 +5);generate_handler 单点展开不可拆,拆分计划维持顺延 | 有意 | P1 | 2026-08-24 | carried |
13+
| TD-2026-08-30-A | ClassroomPage 超 600 硬限——实测 745;拆分计划(LiveCaptureCard)未启动 | 有意 | P1 | 2026-08-30 | carried |
14+
| TD-2026-08-30-B | note_filter 预存失败 2 笔——已 closed(3f6413e),哈希不变 | 预存 | P2 | 2026-08-30 | closed(3f6413e) |
15+
| TD-2026-08-31-A | BrowserChrome 对 contenteditable 右键无应用内文本菜单——**2026-09-09 批 8 状态更新:closed(部分兑现)**——CM(contenteditable)编辑态选区右键菜单与正文阅读态选区右键菜单随 REQ-317(v0.20.13)落地;残留面=「非 CM 的 contenteditable + 无选区时右键」仍静默(应用内唯一 contenteditable 即 CM,已覆盖;阅读态无选区右键=有意维持基线),若未来出现其他 contenteditable 编辑面需另立债 | 有意 | P3 | 2026-08-31 | closed(部分兑现,REQ-317 v0.20.13) |
16+
| TD-2026-08-31-B | window.prompt/confirm/alert 替换为应用内对话框——余 13 处未决(本批未触及) | 有意 | P2 | 2026-08-31 | carried |
17+
| TD-2026-08-31-C | App.css 从未被引入(死样式)——引入改全局暗色观感,需单独裁决 | 环境变化 | P3 | 2026-08-31 | carried |
18+
| TD-2026-09-05-A | 挂体系空体系「去建体系」引导按钮未交付——已 closed(6b8f365),哈希不变 | 有意 | P3 | 2026-09-05 | closed(6b8f365) |
19+
| TD-2026-09-05-B | 模型 disciplines 入参三形态契约漂移——已 closed(14e3988),哈希不变 | 无意 | P3 | 2026-09-05 | closed(14e3988) |
20+
| TD-2026-09-06-A | 有效轴窗边裁剪:跨采纳窗段覆盖 ≥60% 整段让位致窗外 ≤40% 文本在产物缺位(asr_pass2 二值取舍,clip 未实现) | 无意 | P2 | 2026-09-06 | open |
21+
| TD-2026-09-06-B | proofread_run async 内同步分块请求阻塞 worker(长会话);重复 run 未清上次 pending | 无意 | P2 | 2026-09-06 | open |
22+
| TD-2026-09-06-C | SOP 保鲜 diff 仅比首步(2..N 步改动不提示);start 时段漂移 stale 提示未实现 | 无意 | P3 | 2026-09-06 | open |
23+
| TD-2026-09-06-D | SOP 执行器 READ-DO/CONFIRM 渲染无实质差异;证据图片三入口上传流未接(现为相对路径文本输入) | 有意 | P3 | 2026-09-06 | open |
24+
| TD-2026-09-06-E | SE 封存过滤仅 NotesPage 默认列表(复习面/检索/组视图未覆盖;tag 子串匹配含“树洞XX”) | 无意 | P3 | 2026-09-06 | open |
25+
| TD-2026-09-06-F | kind=web 预览后端未统一路由(preview_session_note 走转写链);渲染型整页快照与截图兜底未实现;扩展商店发布未做 | 有意 | P3 | 2026-09-06 | open |
26+
| TD-2026-09-06-G | web_inbox token 非 CSPRNG 且 ACL 注释漂移;行数豁免登记批量过期(commands_proofread/commands_web_inbox/commands_session_note 及前端 ActionCenterOverlay/SessionDetailPanel)——批 8 已按实测纠偏 RichEditorView/NoteReadingView 并拆件承接 NotesPage 压线(useNoteSelectionActions/ModelCardDialogSlot),其余过期登记项待批量纠偏窗口 | 有意 | P3 | 2026-09-06 | open |
27+
| TD-2026-09-06-H | 完成史 reverted 事件无来源;GoalsPage 回顾流未接 completion_history;set_task_disposition/练习暂停归档 UI/工具栏「生成 SOP」选区入口未接线 | 有意 | P3 | 2026-09-06 | open |
28+
| TD-2026-09-09-A | NoteListView 超 600 硬限——实测 646(v0.20.12 批 7 接线后;HEAD 基线 633 即越线,批 7 登记值 591 过期)——**正式登记**(批 7 起以本 ID 引用但 2026-09-09 夹当日未建,本夹补登为权威行) | 有意 | P1 | 2026-09-09 | open |
29+
| TD-2026-09-09-B | 「以对话处理」选区动作未接线(批 8 REQ-317 授权退路):AiConversationDock 会话视图 v1 只读、无面板内发送通道(REQ-274 同源承诺:对话在 ChatPage 继续,防双实例流控冲突);向 ChatPage composer 注入种子草稿需 App→ChatPage→NotesPage 三层 >3 组件深改——批 8 判为超面改动,菜单不显此项不伪实现;候选最小面=ChatPage 增 draft 种子 prop(App 持有种子态经跨页回调注入,不自动发送仅预填) | 有意 | P3 | 2026-09-09 | open |
30+
| TD-2026-09-09-C | 「加入行动」阅读态未接线(批 8 REQ-317 V1 仅编辑态):阅读态渲染 DOM ↔ 源码行映射缺失——选中文本定位到 Markdown 源码行并插入任务行需建立映射层(阅读容器内 Range → 行号 → 源正文偏移),V1 隐藏菜单项并注释;候选=复刻 NoteMarkdown 既有任务行索引(taskLineIndices 渲染序)思路的选区行映射 | 有意 | P3 | 2026-09-09 | open |
31+
32+
## 2026-09-09 节(批 1~8 交付 + 债务核验,同日连续线)
33+
34+
- **未偿表滚动**:自 2026-09-06 权威清单——closed 3 笔哈希不变;carried 7 笔逐条核对无新偿还条件;TD-2026-09-09-A 补登为正式行(批 7 引用先行);新增 open 2 笔(TD-2026-09-09-B/C,批 8 REQ-317 授权退路/范围裁剪登记)
35+
- **状态更新**:TD-2026-08-31-A → closed(部分兑现:REQ-317 v0.20.13 批 8——CM 编辑态选区右键菜单 + 正文阅读态选区右键菜单落地;残留面=非 CM contenteditable 与无选区右键静默为有意基线)
36+
- **批 8 拆件承接(TD-2026-09-06-G 义务延续)**:NotesPage 599 压线(模型卡对话框渲染拆 ModelCardDialogSlot.tsx 33 行 + 行动类编排拆 useNoteSelectionActions.ts 70 行);选区纯逻辑/共享菜单独立文件(utils/noteSelectionMenu.ts 165 行 + components/note-selection/SelectionActionMenu.tsx 187 行)
37+
- **验证记录**:前端全量 vitest(批 8 新增 37 例)+ `tsc --noEmit` 0 错误;Rust 零改动(纯前端批,无需 cargo 回归——批 5 同口径);行数豁免实测登记见 [line-limit-exemptions.md](../../standards/line-limit-exemptions.md)(NoteReadingView 316 / RichEditorView 399 新增登记;RichEditorView 前置 323 超限为 v0.20.8 偏差未登记债务,本次纠偏)
38+
39+
## 关联
40+
41+
- 版本与需求:[v0.20 版本文档](../../versions/v0.20.md)(v0.20.6~0.20.13 批 1~8 交付记录)· [需求池 REQ-306~317](../../product/requirements-pool.md)
42+
- 归档快照:[2026-09-06 README](./README.md)(同日快照位于 [2026-09-06](../2026-09-06/README.md))

‎docs/archive/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,4 @@ docs/archive/
111111
| 2026-09-04(二轮) | v0.19.4/5 全量实施 16 提交(REQ-274~279 + REQ-259/262,见 [versions/v0.19.4](../../versions/v0.19.4.md)·[v0.19.5](../../versions/v0.19.5.md))+ 四区并行审查(无高)即修 30+ 项:Rust 批 653e8b3(采纳守卫前置×3/组结算与写端补广播/reindex 清 embedding meta 三键/回填分批 512/下载幂等·长度校验/语义合流降级防击穿/纯语义空词法路径/陈旧注释与 ndarray 直依清理)+FE 批 8a4a104(15 项:采纳详情回写/dock 任务事件实时/loadSeq 竞态/中性占位/targetKind 分流/毕业档案总线/懒加载时效/unmount rAF 清理/裸号两处与 500 上限/引擎段拆分+契约归位/下载后状态刷新)+锁净化 56aa05b;Rust 2083/2 预存(TD-30-B)+ clippy 0 + vitest 551/551 + tsc 0;无文档入夹(versions/ 不归档类;v0.19 检索规格已于 09-03 归档);观察 2026-09-04B-1~6 登记 | 晨档 8 笔 carried 不变(二轮滚动段并入当日 tech-debt),共 8 笔 |
112112
| 2026-09-06 | v0.20.0/0.20.1 ASR 批交付收口(REQ-263~267:harness 全链路 + DTW 生产接线 + 参数档案化与 rule3=12s 首轮标定 + 热词/标题注入 + 排空补测;全量 2159 绿时点)+ 新增代码六维审查即修 4 项(152cf56:CER 超长护栏/SRT 跨块合并/进度换行/断言同步——[审查报告](./2026-09-06/asr-v020-review.md) 入夹)+ 技术债滚动([2026-09-06 清单](./2026-09-06/tech-debt.md):closed 3 哈希不变 / carried 7 / 无新增债)+ 回归修复批(TD-2026-08-30-B closed 3f6413e 等,9 例既有失败清零);无活跃文档入夹(versions/Foresight 按机制常驻或仍活跃) | TD-040 + TD-19-D/24-A/30-A/31-A/B/C + 30-B/09-05-A/B(closed)——carried 7 + closed 3,无新增 |
113113
| 2026-09-06(二轮) | v0.20.2~0.20.4 主批交付与三路审查收口(本线:REQ-268~270/292~302/303~305 全部实施——离线精修/混淆闭环/LLM 校对/行动-SOP-练习-问题后处理批/web 采集三阶段)+ 七维审查 P0~P1 全量即修 12 提交链(0796f14b..3fee11a9:IPC camelCase 契约/批决议载荷复核/任务索引元数据保留/保存收口钩子/SOP 保链与幂等/SSRF 边界/second_pass 生命周期/收件体量上限/快照净化与 CSS 内联/裁决 TOCTOU/孤儿清理/图白名单/警告清零,全量 2254 绿 + tsc 0 + vitest 571)+ [全批审查台账](./2026-09-06/v020-batch-review-ledger.md) 入夹;无活跃文档移入(versions/Foresight 按机制常驻仍活跃;待归档候选经判定均属活跃类) | carried 7 维持 + **新增 open 8 笔(TD-2026-09-06-A~H)**,共 15 笔 |
114+
| 2026-09-09 | 批 1~8 同日连续交付收口(v0.20.6~0.20.13:REQ-306~317——AI 任务数据安全/暂停域/复习页/排序置顶/空组清理/选中右键菜单;用户 11 项问题 1-11 全部收口)+ 技术债滚动([2026-09-09 清单](./2026-09-09/tech-debt.md):TD-2026-09-09-A 正式补登 + 新增 open B/C + TD-2026-08-31-A closed 部分兑现);无活跃文档入夹 | carried 7 + closed 3(哈希不变)+ 06-A~H open 8 + 09-09-A 补登 + 09-09-B/C open 2——共 21 行(权威清单见当日夹) |

‎docs/product/requirements-pool.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,7 @@
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 二期预留兑现 |
598598
| 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 无软删先例一致) |
599599
| 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 模式不置顶=模式语义(后端排序负责) |
600+
| REQ-317 | 笔记选中文字右键菜单与行动联动(用户 11 项问题 10,已授权首批动作:复制/全选 + 以对话处理 + 加入行动 + 转为问题/模型卡预填):**选区感知右键菜单(阅读+编辑两态)**——阅读态正文容器(纯 Markdown 包装层,auxPanels 在容器外)contextmenu 且 window Selection 非空且锚/焦两端均在容器内(排除跨容器选区)才 preventDefault 弹菜单,空选区维持现状静默;编辑态 CodeMirror domEventHandlers contextmenu 且主选区非空(sliceDoc 非空串)才弹,空选区保留现状;共享自绘菜单 note-selection/SelectionActionMenu(背板+ESC capture 拦截[编辑态防误触全局 ESC=退出编辑]+坐标钳制+滚动/失焦收起+快照预览+复制内联状态行);动作纯逻辑(菜单项构造/≤200 单行化截断/任务行插入计划/坐标钳制/选区快照判定/剪贴板写)收敛 utils/noteSelectionMenu + clipboardWrite 配单测;**复制**阅读=选区快照 DOM 文本、编辑=sliceDoc 快照(同一写剪贴板 util,clipboard API→execCommand 兜底);**全选**阅读=正文容器全文 Range、编辑=全 doc 选区 dispatch(等效 CM select-all,不引 @codemirror/commands 新依赖);**以对话处理**=本批不提供(dock 会话视图 v1 只读无发送通道,跨 App/ChatPage/NotesPage 种子通道 >3 组件深改——授权退路登记 TD-2026-09-09-B,严禁伪实现);**加入行动**(仅编辑态 V1,阅读态隐藏)——选区结束所在行行尾插 `- [ ] <单行化截断 ≤200>` 任务行,view.dispatch → 既有 onChange→自动保存→任务索引重扫通道(不 bypass 保存、不新写命令;阅读态 DOM↔源码行映射留后续登记 TD-2026-09-09-C);**转为问题**——阅读/编辑两态复用 REQ-300 question_create 同一命令面(text ≤200 单行化 + noteId=来源笔记回链,与 ❓ 清单「添加」同处理器)+ toast 留痕;**模型卡预填**——阅读/编辑两态打开既有 ModelCardFromNoteDialog(noteId 已知)并把选区 ≤200 截断预填 excerpt(initialExcerpt 一次性挂载预填;REQ-302 组内 model 卡唯一生成链防双轨不变) | P1 | 已实施(2026-09-09 批 8:noteSelectionMenu/clipboardWrite/SelectionActionMenu/ModelCardDialogSlot/useNoteSelectionActions + NoteReadingView/RichEditorView/NotesPage/ModelCardFromNoteDialog 接线(NotesPage 599 压线拆件),提交见 v0.20.md v0.20.13 交付记录) | v0.20 系列 | 用户 11 项问题 10(11 项全部收口);菜单项动作矩阵与推迟理由(以对话处理/阅读态加入行动)见 v0.20.13 交付记录;TD-2026-08-31-A 状态更新(CM/正文选区右键面已落地)见 2026-09-09 技术债清单 |
600601

601602
## 优先级定义
602603

0 commit comments

Comments
 (0)