Skip to content

Latest commit

 

History

History
619 lines (513 loc) · 131 KB

File metadata and controls

619 lines (513 loc) · 131 KB

需求池

熵减 (Entropydecrease) 项目需求的统一登记入口:需求 → 优先级 → 版本 → 实现 → 验收追踪。 需求来源:痛点图谱 pain-points-v1.md([ ] 已归档) · PRD prd.md(MoSCoW)· 课堂助手路线图(原项目 P0-P2 映射)· 图像复用头脑风暴(2026-08-19)。 阶段划分(2026-08 确立):第一阶段 v0.1.0 聚焦"本地 ASR + 本地 OCR + 内容本地拼接 + 笔记基本功能 + 联动",先跑通纯本地提取链路;阶段顺序确认:实时捕获(v0.2.0)先于文件导入(v0.3.0);字幕检测(有字幕优先、无字幕才 ASR)随文件导入阶段落地。 状态同步(2026-08-22):依归档记录与代码核验(v4 路线图 Step 0),v0.6.0v0.7.7/v0.9.0 批量"已排期→已实施";真机验收待执行项见各区段注记(REQ-146 总清前置);v0.10.x 系列在 versions/ 文档跟踪(未入池);v0.11 大目标版本系列立项登记(v0.11.03,对应 v4 Phase 1-3)。 阶段划分(2026-08-22 增补):提取管线成熟后进入 v4 统一卷路线图(规划文档):v0.11 大目标版本系列(v4 Phase 1-4 落地):v0.11.0 笔记组基建·容器侧 → v0.11.1 feed 进料 → v0.11.2 学习循环统一 → v0.11.3 组结算;测量层(Phase 4)门控另议,不预占版本号。

需求条目

v0.1.0 · 第一阶段(当前)

ID 需求 优先级 状态 目标版本 备注
REQ-001 本地 ASR:sherpa-onnx 离线转写(音频文件输入) P0 待评估 v0.1.0 SenseVoice/Paraformer;先文件验证,后接流式
REQ-002 本地 OCR:paddle-ocr 图片文字识别 P0 待评估 v0.1.0 PP-OCRv5 检测+识别;关键帧输入
REQ-003 内容本地拼接:转写+OCR → 笔记初稿 P0 待评估 v0.1.0 纯本地规则,无 LLM;按时间/段落组织
REQ-004 笔记基本功能:CRUD + Markdown 渲染 + 搜索 P0 待评估 v0.1.0 本地 SQLite 存储
REQ-005 课堂助手 ↔ 笔记联动:拼接结果一键落入笔记 P0 待评估 v0.1.0 会话产物 → 可编辑笔记
REQ-006 Tauri 2 项目骨架 + SQLite 数据层 P0 待评估 v0.1.0 基础设施

v0.2.0 · 系统捕获(第二阶段)

ID 需求 优先级 状态 目标版本 备注
REQ-007 系统音频捕获:WASAPI 端点环回(Rust) P1 已排期 v0.2.0 ADR-001;windows-rs 手写
REQ-008 屏幕/窗口捕获:关键帧采样 + 变化检测 P1 已排期 v0.2.0 ADR-002;DXGI + GDI 降级
REQ-009 流式 ASR:Zipformer + Silero VAD 实时转写 P1 已排期 v0.2.0 ADR-003;hf-mirror 模型分发
REQ-010 会话管理:列表/详情/检索 P1 已排期 v0.2.0 ADR-004;sessions 三表
REQ-011 实时字幕 OCR:字幕区识别(底部区域启发式)+ 时间窗去重 P1 已排期 v0.2.0 ADR-005;双速率采样
REQ-012 双源转写融合:有字幕→字幕 OCR 流为主体,ASR 补全/校对 P1 已排期 v0.2.0 ADR-005;纯规则融合

v0.3.0 · 文件导入 + 字幕检测 + 采集链路质量(第三阶段)

ID 需求 优先级 状态 目标版本 备注
REQ-015 视频文件导入:ffmpeg 提取音轨 + 关键帧 P1 已实现 v0.3.0 ADR-008;文件路径先于实时捕获之后的第二入口;ffmpeg 捆绑二进制 + PATH 探测;关键帧区域裁剪两路 OCR(TD-037);代码已交付(2026-08-18),真机验收待执行
REQ-016 字幕探测 L1:外挂字幕文件(同名 .srt/.ass/.vtt) P1 已实现 v0.3.0 ADR-008;纯文本解析零依赖;命中则免 ASR,零成本 100% 准确;编码探测 UTF-8→GBK;50MB 大小上限(TD-038);代码已交付(2026-08-18),真机验收待执行
REQ-017 字幕解析 L2:容器内嵌字幕轨(ffprobe + 解码) P1 已实现 v0.3.0 ADR-008;mov_text/subrip/ass/webvtt 解为 SRT 复用 L1 解析器;代码已交付(2026-08-18),真机验收待执行
REQ-018 字幕优先策略:有字幕→直出转写;无字幕→fallback ASR;可混合 P1 已实现 v0.3.0 ADR-008;L1→L2→ASR 三级降级;市场主流方案(通义听悟等);代码已交付(2026-08-18),真机验收待执行
REQ-019 闪卡间隔重复 + 每日复习提醒(P6) P1 已实施 v0.11.2 知识持久化核心;2026-08-18 顺延至 v0.4.0;2026-08 再次决策:v0.4.0 聚焦课堂助手本地模式,闪卡暂不纳入计划;2026-08-22 吸收进 v0.11 系列 v0.11.2(算法升级 SM-2 → FSRS,用户裁决)并交付(FSRS-6 调度 + 组级复习,弹性承诺无 streak)
REQ-020 笔记→闪卡一键生成(P4) P1 已实施 v0.11.2 AI 可选,本地规则兜底;同上顺延决策;2026-08-22 吸收进 v0.11.2(组→闪卡生成,本地规则版先行)并交付(词汇表术语卡 + 碎片多句卡,幂等查重)
REQ-031 融合停止异步化 + 无字幕短路 P1 已实现 v0.3.0 ADR-006(关联);停止流程 finish+emit 秒回,融合挪后台线程,无字幕段短路跳过;状态标记内存方案(ADR-008);不做实时增量融合(字幕 end_ms 滞后、gap 判断需字幕全集);代码已交付(2026-08-18),真机验收待执行
REQ-034 采集链路质量优化:时间戳统一/句起时间戳/引擎池并行/分窗转写/多帧投票/OCR 缩小/互斥调度 P1 已实现 v0.3.0 ADR-008;技术审查([ ] 已归档);并入头脑风暴 T2(多帧投票纠错)/P4(OCR 输入缩小)/P3(语音画面互斥调度简化版);含句尾校正(TD-041)与强制 OCR 兜底;代码已交付(2026-08-18),真机验收待执行
REQ-035 实时活动面板:采集期间右侧简要转写流/画面要点流/状态机(2026-08-18 用户需求) P1 已实现 v0.3.0 新增 live:asr-final(语音定稿)/live:ocr(画面要点)事件;转写流仅显示最近 6 条、画面要点 4 条(简要);状态机徽标 + 累计计数;停止过渡/融合期面板保持
REQ-033 采集持续不间断运行:关闭保护 + 音频重连 + 屏幕自愈 P1 已实现 v0.3.0 ADR-007(已接受);CloseRequested 拦截确认;音频指数退避重连(时间戳连续);DXGI 周期重建 + 窗口矩形刷新 + 目标窗口失效回退;全局采集状态徽标;代码已交付(2026-08-18),真机验收待执行

v0.4.0 · 课堂助手本地模式完成(第四阶段)

ID 需求 优先级 状态 目标版本 备注
REQ-036 OCR GPU 卸载:DirectML EP + 能力检测自动选择 + 回退链 P1 已实施 v0.4.0 待写 ADR-009;混合三层检测(DXGI 硬件门槛 + ORT 原生回退 + 可校准微基准);仅 OCR,ASR 经 DeviceConfig 预留扩展位;含 ORT 运行时调优(线程/arena/图优化,E1,整合版 v2 采纳)
REQ-037 动态字幕区域检测:det 驱动 ROI 锁定 + 周期重扫 P1 已实施 v0.4.0 替代 ADR-005 硬编码底部 1/4;前置 spike:oar-ocr bbox 坐标暴露(不暴露则退化区域规则);含播放区域检测(窗口→播放区域坐标映射)与滚动字幕/弹幕强过滤(B7,整合版 v2 采纳)
REQ-038 实时字幕体验:流式 partial 先行上屏 + SenseVoice 异步静默修正 + 哈希去重快速通道 P1 已实施 v0.4.0 评审 A/F 项;partial/重打分链路已有(ADR-003),补 UI 静默修正(灰→黑)+ hash 短路投票
REQ-039 采样预算与自动降级:QoS 预算制 + 高负载/电池降级 + VAD 采样旋钮 P2 已实施 v0.4.0 Foresight P1/P8 + 评审 E 项;B3 互斥调度参数化;不做静音降频(与笔记目标相悖);含 OCR 结果缓存 LRU(E5,整合版 v2 采纳)
REQ-040 热词/替换词表 + OCR→ASR hotwords 闭环 P1 已实施 v0.4.0 Foresight T3;REQ-025 本地部分提前;替换词表用于 OCR 后纠错;云端部分(口语书面化/AI 精修)仍 V1.0;含课件预热最小版(PPT/PDF→热词候选,A4,整合版 v2 采纳)
REQ-041 音频前端与信号增强:RNNoise+AGC 预处理链(可开关)/声道策略/窗口标题信号 P2 已实施 v0.4.0 整合版 v2(A1/A2/A5);环回为成品音频,微基准(CER 对比)定默认值(默认关);标题信号为章节检测(v0.5 C1)铺路
REQ-042 韧性与可观测性:ASR 三级降级链/资源健康监测/静默失败可见化/本地诊断面板/启动加速 P2 已实施 v0.4.0 整合版 v2(F5/F2/F3/G2/E3);ASR 降级链 = ADR-003 方案 B 正式化(流式→离线→VAD+静音占位)

v0.5.0 · 视频类型优化 + 结构化提取(第五阶段)

ID 需求 优先级 状态 目标版本 备注
REQ-043 视频类型档案(VideoProfile):五档案 + 混合检测 + 档案驱动管线 P1 已实施(M1) v0.5.0 头脑风暴轮 1/2([ ] 已归档) + E9;档案=纯配置(采样/权重/后处理/产物模板);混合检测(自动候选+用户确认+记忆偏好);v0.4.0 标题信号为检测输入
REQ-044 章节检测(C1 三信号):画面切换+长静音+n-gram 话题重合度 P1 已实施(M2) v0.5.0 网课档案支撑;三票同刻→章节边界;信号全部已存在
REQ-045 口语书面化(B5 本地规则版)+ 重点候选标注(C2) P1 已实施(M2) v0.5.0 口播/网课档案支撑;书面化可逆(原文保留);重点=重复短语/音量语速/OCR 停留
REQ-046 术语表自动构建(C3)+ 说话人变化检测(A3 spike 定去留) P1 已实施(M2) v0.5.0 网课/访谈会议档案支撑;C3=OCR 高频×ASR 低频交叉→反哺 hotwords;A3 弱化版判定器先行,模型分发留 V1.0(降级无讲者标注)
REQ-047 规则版版面分析:区域分类+事件帧触发+区域价值采样 P1 已实施(M3)+ 模型版(pp-doclayout-l) v0.5.0 轮 4 落地;区域 text/table/formula/code/image/unknown;字幕区独立不进版面;模型版经 oar-ocr OARStructure 落地(跟随 OCR backend)
REQ-048 分区域 OCR 编排:区域裁剪→分区域识别→坐标还原→合并 P1 已实施(M4) v0.5.0 复用现有 OcrEngine;坐标还原纯函数单测;每帧 N 区封顶;低置信区域放大重试
REQ-049 表格专项 OCR:SLANet 模型版/规则版线条重建兜底 P1 已实施(M5,模型版+规则版双轨) v0.5.0 用户指定 0.5.0 完整构建;模型版 slanet_plus_v2 经 oar-ocr 落地;重建失败→图+占位(诚实降级)
REQ-050 公式专项 OCR:UniMERNet 模型版/规则版上下标重建兜底 P1 已实施(M5,模型版+规则版双轨) v0.5.0 PP-FormulaNet-s 默认 + UniMERNet 高精度档可切换;手写公式标 unknown 走 AI 补缝(V1.0)
REQ-051 图片配套:三层图结构+多信号筛选+用户截图标记+图集 UI P1 已实施(M6) v0.5.0 轮 3 落地;关键图/参考图集/缩略图走廊;含 B6 帧聚类;存储去重+预算上限
REQ-052 产物体系:Artifact 块模型+五档案模板+产物视图+落笔记 P1 已实施(M7) v0.5.0 轮 5 落地;块引用原料不复制;沿用 NoteDraft→Note 通道
REQ-053 渲染器升级:LaTeX/表格/代码/图集块渲染 P1 已实施(M5/M7) v0.5.0 KaTeX 本地化(无 CDN);低置信/AI 占位样式(图集组件随 M6/M7 落地)
REQ-054 词级时间戳(B8)+ 置信度落库(B3) P1 已实施(M9) v0.5.0 词级时间戳协议/提取纯函数就位(sherpa-onnx 1.13 Rust 包装未暴露 enable_token_timestamps,启用点=V1.0 升级/FFI);置信度落库已有(段 confidence/块 score)
REQ-055 补缝式 AI 前置:判定器+ai_candidate 块+协议 schema+mock+护栏骨架 P1 已退役(2026-09-11 批 1 删除;ADR-010 转已废弃) v0.5.0 轮 6 + ADR-010(已废弃);协议先行,云端实装 V1.0(REQ-056);实现(判定器/协议/mock/三命令)已于批 1 删除(2026-09-12 落地,fd9dd8f9),见 ADR-010「退役修订」

v0.6.0 · 提取质量与信任 + 性能资源 + 会话体验(第六阶段)

状态同步(2026-08-22):M1~M6 代码已交付(2026-08-19,含 ADR-011/012 实施与多轮审查即修);M7 真机验收待执行(REQ-146 总清前置)。

状态同步(2026-08-22):M1M6 代码全部交付(2026-08-19,含 ADR-011/012 实施与多轮审查即修);M7 真机验收待执行(REQ-146 总清前置)。REQ-081085 用户需求批随 M1 交付。

ID 需求 优先级 状态 目标版本 备注
REQ-059 水印/台标/角标过滤:区域稳定性+文本不变性识别 → 排除出产物与术语统计 P1 已实施 v0.6.0 缺口评估 P3;产物层可逆(原料不动)
REQ-060 数字/单位/符号规范化:口语发音→书面符号映射表 P1 已实施 v0.6.0 缺口评估 V3;映射表 JSON 可校准
REQ-061 术语发现精化:TF-IDF 文档权重 + 缩略词模式 P1 已实施 v0.6.0 缺口评估 AL8;与 REQ-059 联动防角标误收
REQ-062 融合置信度加权:编辑距离硬规则 → 字幕×ASR 概率加权 P1 已实施 v0.6.0 缺口评估 AL4;F1 三源 RAID 的概率版地基
REQ-063 DTW 时序对齐:字幕 OCR 流 × ASR 流对齐回校时间戳 P1 已实施 v0.6.0 缺口评估 AL3;spike 实测漂移量,无收益则裁剪
REQ-064 章节边界平滑:三信号硬决策 → 时序状态机 P1 已实施 v0.6.0 缺口评估 AL7;REQ-044 增强
REQ-065 OCR 加权投票升级:字符平权 → 清晰度×score 加权 + 帧间 tracking P1 已实施 v0.6.0 缺口评估 AL2;score 暴露面 spike
REQ-066 帧新颖度采样:预算内按信息量排序 P1 已实施 v0.6.0 缺口评估 AL6;与变化检测两级串联
REQ-067 去重指纹混合:aHash+dHash 双指纹 P1 已实施 v0.6.0 缺口评估 AL11;帧聚类与图片去重共用
REQ-068 音频落盘策略:实时链路落盘 + 保留期/磁盘预算/清理 UI P1 已实施 v0.6.0 缺口评估 S4;早期排(M4 第一项);AL3 校准/V4 两遍解码/X1 回听的数据源
REQ-069 VAD 阈值自适应:会话内能量统计 → 门控阈值自适应 P1 已实施 v0.6.0 缺口评估 AL1;与 AGC(REQ-041)联动
REQ-070 练习段识别:长静音+画面静止 → 练习点标记 P1 已实施 v0.6.0 缺口评估 F3;实操档案产物消费
REQ-071 采集链路低分配:staging 复用 + BGRA→RGB 内联 + AccumulatedFrames 跳过 P2 已实施 v0.6.0 缺口评估 PF1;诊断面板实测先行
REQ-072 内存有界:会话滑出即弃 + 重打分空闲卸载 P2 已实施 v0.6.0 缺口评估 PF2
REQ-073 空闲降频:长无信号 → 引擎休眠省电 P2 已实施 v0.6.0 缺口评估 PF6
REQ-074 OCR 区域批处理:同帧多区 ORT batch P2 已实施 v0.6.0 缺口评估 PF5;基准验证,失败回退串行
REQ-075 图片编码线程核查:WebP 编码不阻塞主链路 P2 已实施 v0.6.0 缺口评估 PF8;无阻塞则记录关闭
REQ-076 会话级质量报告:置信度/失败率/unknown 占比聚合视图 P1 已实施 v0.6.0 缺口评估 Q1;数据已落库
REQ-077 大纲视图(纯规则):OCR 大字块/固定位置标题 → 课程大纲 P1 已实施 v0.6.0 缺口评估 F2/C4;REQ-026 本地前置
REQ-078 课程级分组:会话列表按课程分组折叠 P1 已实施 v0.6.0 缺口评估 UX9;course 列 ensure_column 迁移
REQ-079 搜索增强:FTS5 片段上下文 + 高亮 + 一键跳详情 P1 已实施 v0.6.0 缺口评估 UX4
REQ-080 降级分级可见化:徽标/横幅/详情面板三级 P1 已实施 v0.6.0 缺口评估 UX6;REQ-042 细化
REQ-081 笔记预览视图:会话详情"产物视图"旁第三视图——过滤后笔记只读预览 + 过滤统计 + 被过滤内容对照 + 一键落库 P1 已实施 v0.6.0 2026-08-19 用户需求(识别内容含废话,需过滤后转笔记);复用 session_to_note 管线;只读不动库
REQ-082 废话出口过滤管线:note_filter 纯规则(UI 垃圾特征兜底/相邻重复合并/碎片段/纯符号/低置信)→ 预览与转笔记共用单一管线 P1 已实施 v0.6.0 2026-08-19 用户需求;原料层不动(ADR-006 事实/派生分离);融合重复 bug 修复(fusion.rs 窗口配额)为前置
REQ-083 字幕 UI 垃圾源头过滤:字幕链路入口 is_ui_junk 黑名单(水印/播放器/编辑器/应用 UI 特征),命中不入字幕投票器 P1 已实施 v0.6.0 2026-08-19 用户需求(源头治本);与 REQ-059 水印过滤互补(文本特征 vs 区域稳定性)
REQ-084 字幕 ROI 窗口切换检测:前台窗口切换 → 强制重扫 ROI(防其他窗口内容被当字幕) P1 已实施 v0.6.0 2026-08-19 用户需求;实测会话 11 字幕区抓入 VSCode/网页内容
REQ-085 AI 复核过滤:规则判不了的边界段 → 云端付费模型三态判定(keep/delete/merge) P1 已实施 v0.6.0 2026-08-19 头脑风暴;SiliconFlow 默认档 deepseek-ai/DeepSeek-R1-0528-Qwen3-8B(免费 ¥0/M + MIT 可商用;备选 Qwen3-30B-A3B 付费质量档/GLM-4-32B-0414 可配置);密钥环境变量;授权默认关+上传确认+文本 hash 缓存+每日配额+审计;截断半句先判上下文衔接(能接则 merge);绝不改写文本;AI 不可用→纯规则输出
REQ-086 OCR 触发重做:网格差异统计替代分块采样 hash(去采样混叠)+ 字幕路径 ROI 帧判变 + 全帧带外变化事件驱动(翻页 ≤2s 触发) P1 已实施 v0.6.0 2026-08-19 用户反馈(同视频静止画面页面变化不触发 OCR,切换软件页面才触发);根因:8 块×60 字节采样在 1920 宽仅 4 个采样列,局部文字变化漏检;ADR-011 + 设计规格([ ] 已归档);FORCE_OCR 15s 兜底与调度语义保留;659 单测全绿;M4 真机验收待执行
REQ-087 视频区内突发 UI 面板抑制:变化格连通聚类 → 面板事件 → 字幕路径源头丢弃(控制栏/弹窗不产生错误字幕) P1 已实施 v0.6.0 2026-08-19 用户反馈(视频区域内突发显示非视频界面导致错误 OCR);与 REQ-086 同源(复用变化格集合);原料层不动(ADR-006);ADR-011;M4 真机验收待执行

v0.7.0 · 信任收尾 + 存储使能 + 类型扩展(第七阶段,已交付)

2026-08-19 依据 需求裁决表([ ] 已归档) 逐轴裁决登记;M0 前置 = v0.6.0 M7 真机验收(未通过不启动);REQ-088 自 V1.0 提前。 状态同步(2026-08-22):M0~M3 全量代码建设完成(2026-08-19,24 提交,926 单测,含审查即修 12 项);M4 真机验收待执行(REQ-146 总清前置)。

ID 需求 优先级 状态 目标版本 备注
REQ-098 置信度体系真实化(CORE-O1):ASR 段置信度用重打分一致性替代硬编码 + 诚实 None + 字幕投票置信度落库 P1 已实施 v0.7.0 管线分析 CORE-D1/D4;融合/过滤/质量报告三处假数据根治;校准矩阵 spike 前置
REQ-099 悬空机制治理(X-O1):预处理链/讲者/音量/DTW 四处"已交付未接线"逐个决策 P1 已实施 v0.7.0 管线分析 X-O1;决策记录齐备
REQ-100 质量报告指标修正(POST-O4):OCR 失败 engine 计数+落库低分块双源 P2 已实施 v0.7.0 管线分析 POST-D4;指标从恒≈0 变真实
REQ-101 音频预处理链闭环启用(PRE-O1):S4 落盘 CER 微基准定默认 + 设置 UI 开关 P1 已实施 v0.7.0 管线分析 PRE-D1;REQ-041 从悬空变闭环
REQ-102 讲者诚实降级(POST-O1):产物模板移除讲者占位/显式不可用;接线随 V1.0 P1 已实施 v0.7.0 管线分析 POST-D1;消除空转死代码
REQ-103 段级 volume 落库+音量骤变接线(POST-O2):重点标注三信号全亮 P1 已实施 v0.7.0 管线分析 POST-D2;落库列随 M-存储 schema
REQ-104 剪贴板信号(M11):课中复制=高置信信号 → 产物/热词候选 P1 已实施 v0.7.0 深化方向 M11;仅课中监听+不持久化原始内容
REQ-105 音频事件过滤(M14):通知音/系统音模式检测 → VAD 门控联动 P2 已实施 v0.7.0 深化方向 M14;REQ-126 实装后降为兜底
REQ-106 日志脱敏(TRUST-4):诊断日志过滤 OCR 文本/会话标题 P2 已实施 v0.7.0 查漏 TRUST-4;隐私红线延伸
REQ-107 数据备份/恢复(TRUST-1):数据目录打包+恢复入口(与 E1 解耦独立) P1 已实施 v0.7.0 查漏 TRUST-1;本地优先信任基建
REQ-108 M-存储·统一信号事件表(POST-O3 上调):帧切换/长静音/音量骤变/VAD/剪贴板/前台/播放器事件 P1 已实施 v0.7.0 管线分析 POST-D3;章节检测从近似变真实
REQ-109 M-存储·段级元数据列:volume/语速/停顿 + speaker 影子列预留 P1 已实施 v0.7.0 二轮探讨;K1 掌握度建模输入备好
REQ-110 M-存储·档案级存储策略档位 + 图像流存储层:文本优先/均衡/图像优先;时间轴帧序列 P1 已实施 v0.7.0 §6.3 裁决;图像流通道存储实现;磁盘实测定阈值
REQ-111 融合切分对齐标点/词边界(CORE-O3) P1 已实施 v0.7.0 管线分析 CORE-D3;词破碎修复
REQ-112 滚动字幕防误杀(CORE-O5):连续 N 帧确认机制 P2 已实施 v0.7.0 管线分析 CORE-D6
REQ-113 import 分窗重叠+边界去重(CORE-O6) P2 已实施 v0.7.0 管线分析 CORE-D8;复用 asr_merge
REQ-114 抗混叠重采样(PRE-O2):带限低通+抽取 P2 已实施 v0.7.0 管线分析 PRE-D2;与 REQ-101 共用基准
REQ-115 VAD/健康监测口径统一(PRE-O4) P1 已实施 v0.7.0 管线分析 PRE-D4
REQ-116 24bit/8bit 格式支持(PRE-O5) P2 已实施 v0.7.0 管线分析 PRE-D5;防御性
REQ-117 导入链路净化对齐(PRE-O6):import 过 is_ui_junk P2 已实施 v0.7.0 管线分析 PRE-D7
REQ-118 重复合并升级(POST-O7):归一化比较+短语级 Jaccard P2 已实施 v0.7.0 管线分析 POST-D6
REQ-119 AI merge 拼接边界空格(POST-O8) P2 已实施 v0.7.0 管线分析 POST-D8;纯函数
REQ-120 OCR 错误模式校准表(PIPE-3):混淆对画像 → 替换/校准表 P2 已实施 v0.7.0 查漏 PIPE-3;数据驱动
REQ-121 T3 编程实战档案:示例代码提取(逐字符 OCR+缩进恢复+ASR 交叉+低置信标记)+ M5 代码 diff 步骤卡 + M13 代码域朗读规范化 P1 已实施 v0.7.0 类型轴裁决;示例代码提取为 2026-08-19 用户灵感
REQ-122 T8 播客/有声书档案:ASR-only 短路 + 封面/章节元数据;UI 显示名「播客/有声书」 P1 已实施 v0.7.0 类型轴裁决;随 REQ-130 短路
REQ-123 T4 跟练型档案(图像流首个):时间轴图像流 + 步骤边界(M7 口令/REQ-070 练习段/M8 交替) P1 已实施 v0.7.0 类型轴裁决;图像流通道首个档案
REQ-124 图像流档案组(顺带注册):T1 直播(ASR+图像流,无 OCR/弹幕)· T2 白板 · T9 游戏教程 · T11 题目讲解(ASR+图像流,题目结构化后续) P2 已实施 v0.7.0 类型轴裁决;M4 书写重建留远期
REQ-125 M1 播放器行为信号(含 MEC-1 UI 识别 + M17 倍速感知采样):倍速/暂停/回看=难点信号 P1 已实施 v0.7.0 深化方向 M1(100 分);用户裁决实装提前
REQ-126 M10 分应用音频路由:WASAPI 会话级按进程取音频 P1 已实施 v0.7.0 深化方向 M10;环回污染根治;实现首阶段验证 API 面
REQ-127 M6 抢话/打断检测(代理信号版先行):短间隔连续语音+能量突变;讲者接线随 V1.0 P2 已实施 v0.7.0 深化方向 M6;用户裁决实装提前
REQ-128 M16 前台时间线(落库+消费):前台切换序列 + 实践段标记,纯规则无 AI P1 已实施 v0.7.0 深化方向 M16;用户裁决全部 v0.7.0;A4 周报数据备好
REQ-129 M12 样式信号暴露面核查:oar-ocr 颜色/字号输出;无则启发式降级方案(实装 V1.0) P2 已排期(spike 前置) v0.7.0 深化方向 M12
REQ-130 P4 无音/无图短路:按档案声明禁用 ASR/OCR 链 P1 已实施 v0.7.0 平台轴裁决;T8/T1 消费
REQ-131 P13 模型版本管理/回退 + 磁盘占用面板 P2 已实施 v0.7.0 平台轴裁决;缺口评估 X6
REQ-132 P9 导入源·剪贴板图片子集:剪贴板图片直贴入图集(随 REQ-104 监听);其余输入源留 V1.0 P2 已实施 v0.7.0 平台轴裁决子集拆分
REQ-133 IMG-1 图内文字检索入口:FTS5 OCR 块视图 → 关键词命中图 P2 已实施 v0.7.0 查漏 IMG-1;影子缺消费入口
REQ-134 IMG-2 图片内容裁剪/去白边:版面区域框复用 P2 已实施 v0.7.0 查漏 IMG-2;图像流存储配套
REQ-088 图注生成(本地规则):关键图一句话图注(OCR 高频词×转写摘要交叉);影子层基础设施 P2 已实施 v0.7.0 图像复用 REQ-088 自 V1.0 提前;为 REQ-094 影子 schema 铺路

v0.7.1 · 会话体验小版本(2026-08-19 头脑风暴:会话页交互与效率增强)

状态同步(2026-08-22):REQ-135~137 代码交付(2026-08-19,946 单测全绿);真机验收待执行。

2026-08-19 头脑风暴(用户:会话库是"视频→笔记"生产流水线):管理控制台 + 转化流水线(A+B 合并); 设计文档 sessions-ux-efficiency-design([ ] 已归档); 数据模型变更 ADR-014。 状态同步(2026-08-22):REQ-135~137 代码交付(2026-08-19,946 单测全绿 + 审查即修 4 项);真机验收待执行。

ID 需求 优先级 状态 目标版本 备注
REQ-135 转化状态可视化 + 会话↔笔记双向关联:notes.session_id 列(SET NULL 保笔记)+ SessionListItem 标记(has_note/note_id/has_content)+ 笔记页「来源会话 →」互跳 P1 已实施 v0.7.1 旧 classroom 笔记诚实 NULL(不猜不填);详情页重新转换可建立关联;artifact_to_note 同步写关联(口径统一);⚠️ 2026-09-12 批 1 更正:artifact_to_note 已随产物子系统删除(批 1 Task 3)——写关联的活通道是 session_to_note / batch_session_to_note(commands_session_note.rs:245);notes.session_id 列与 SessionListItem 标记本身未动
REQ-136 批量转笔记:batch_session_to_note(≤50、部分成功语义、跳过规则显式回传)+ 列表行内一键转笔记(4 步→1 步)+ 已转会话显示「查看笔记 →」 P1 已实施 v0.7.1 convert_to_note 核心提取(单条/批量共用单一管线,REQ-081/082 原则延续);批量跳过已转防重复,详情页保留有意重新生成
REQ-137 会话列表管理增强:状态/转化筛选 + 排序 + 批量删除(笔记保留)+ 双模式搜索整合(标题/转写内容)+ 事件驱动刷新(live:status/session:fused/切页 active)+ 新完成提示条 + 空态/加载态 P1 已实施 v0.7.1 display:none 挂载不刷新导致的"采集中"残留根治(TD-004 副作用);筛选本地过滤零后端改动

v0.7.2 · 课堂助手实时体验深化(2026-08 用户需求批次)

2026-08 用户需求:采集过程信息透明化 + 说话人切换可见 + 合集识别联动 + 断句自适应; 设计依据 档案检测准确度头脑风暴([ ] 已归档) · 视频数据提取清单 · v0.7.2 版本文档。

ID 需求 优先级 状态 目标版本 备注
REQ-148 最近画面按时间先后排列(用户需求) P1 已实现 v0.7.2 缩略图条旧→新,新图追加末尾(后端本就升序,去掉前端 reverse)
REQ-149 ASR 未沉淀行多行展示 + 识别中按句拆行(用户需求) P1 已实现 v0.7.2 识别中灰斜(按句读拆多行全部显示)+ 已定稿待沉淀黑并存;连续定稿不覆盖丢失;纯前端状态机
REQ-150 档案新增「未知」选项,无法自动识别时选中(用户需求) P1 已实现 v0.7.2 零信号命中→unknown 候选→自动选中生效;参数默认档零回归;全链路支持
REQ-151 采集信息面板:播放平台/视频时长/合集集号/字幕情况 P1 已实现 v0.7.2 平台=标题后缀规则;时长=播放器 OCR 时间文本;合集=标题规则+播放器 OCR 分P文本;字幕=实时字幕检测状态;全本地零网络;live:session-info 事件 + 信息条 UI
REQ-152 合集检测与联动:extract_series/normalize_title + 档案检测系列名投票 + 记忆系列键 + 课程分组扩展 P1 已实现 v0.7.2 纯文本规则(P/集/EP/括号/数字后缀+反例);P1 与 P5 投票一致;选一次整系列生效;B站合集自动归组;搜索接口反查否决(风控/隐私)
REQ-153 说话人分离弱化版:SpeakerEmbeddingExtractor 引擎接线 + VAD 段馈入 + 切换事件落库展示 + 使用说明提醒 P1 已排期 v0.7.2 弱化版不聚类身份(只标切换点);wespeaker 模型(Apache-2.0)缺失降级;会话后离线分析;A3 spike 已验证 sherpa 1.13 可用;模型文件待下载
REQ-154 语速停顿习惯自适应:动态合并阈值 + 语速骤变事件 P2 已实现 v0.7.2 S-1 合并 gap 自适应(中位数段前停顿×0.5,clamp 300-900ms);S-2 speech_rate 骤降 ≥40% 事件落库(重点标注备数据)

v0.8.0 · AI 接入——会话→笔记精修 + 知识补充 + 信任基建(第八阶段,M4 开发中)

2026-08-19 头脑风暴收敛(头脑风暴 v0.8 AI 精修([ ] 已归档)):核心=SiliconFlow AI 接入(会话→笔记 AI 精修 + 余额查询); 范围裁决:AI 精修=本地草稿+云端结构化(规则/AI 双模式)、知识补充=深度 D1-D3 + 广度 B1-B6 全收(可选入口)、版本管理=git-like 快照链(可回溯); 5 项 UX 遗漏全收(异步任务化/溯源标注/成本拦截链/空态引导/降级可见);M0 前置=四版本真机验收总清;复用 REQ-085 适配器/护栏/审计骨架。 2026-08-21(M1~M4 已交付):M1 密钥管理(DPAPI,ADR-016)/余额/授权审计/共享 ai_client(REQ-138/139/140 完成);M2 AI 精修双模式/AiRefine 协议+档案提示词/异步任务+切片/diff 预览/成本确认基础版(REQ-141 完成、REQ-143/145 基础版完成);M3 知识补充/AiEnrich 协议九子项/混合落位/B6 无链接/撤销还原(REQ-142 完成);M4 版本快照链/统一 versioned 写路径/回滚/50 版上限/diff 对比/成本落库 note_ai_usage(REQ-144 完成、REQ-143 完整版完成)——用户裁决:M0 用户主导、M1 起代理先行代码建设。

ID 需求 优先级 状态 目标版本 备注
REQ-138 AI 密钥管理:设置面板密钥输入 + Windows Credential Manager 安全存储(keyring,spike 失败 DPAPI fallback)+ 掩码显示 + 一键连通性验证 + 端点/模型可配置 P1 已实施(2026-08-21,M1) v0.8.0 明文红线(不落 SQLite/明文文件);环境变量保留为开发路径;共享 AI client 抽取(ai_client.rs 够用抽象);keyring spike 因 TLS 拦截跳过,DPAPI 直写(ADR-016)
REQ-139 余额查询与展示:GET /v1/user/balance(total/grants/topped_up)+ 设置页余额卡片 + 成本确认弹窗内联余额 + 低余额提醒(<¥1) P1 已实施(2026-08-21,M1) v0.8.0 ai_balance.rs 新模块;超时重试沿用适配器模式;成本确认弹窗内联余额随 M2 精修接线
REQ-140 AI 授权与审计可见化:全局"AI 功能"开关(默认关)+ 首次授权确认(上传内容说明:仅文本不上传音视频/图像)+ 审计列表 UI(REQ-085 骨架消费) P1 已实施(2026-08-21,M1) v0.8.0 授权红线(AGENTS.md:AI 调用须用户授权且默认关闭);content_gate 双条件门控由 M2/M3 内容命令消费
REQ-141 会话→笔记 AI 精修(规则/AI 双模式):convert_to_note 增 mode;AI 模式=note_filter 草稿 → AiRefine 协议(去非知识内容+结构化层级)→ diff 预览 → 落库;按档案提示词模板;失败降级纯规则 P1 已实施(2026-08-21,M2) v0.8.0 单条转换可选 AI,批量保持规则;精修=整理不创作(与补充严格区分);REQ-025 AI 笔记精修云端部分提前兑现;diff 预览在 NotePreviewView 精修卡内(版本对比 UI 归 M4)
REQ-142 知识补充入口(可选):深度 D1 概念展开/D2 步骤补全/D3 例子补全 + 广度 B1 前置知识/B2 进阶/B3 横向关联/B4 对比辨析/B5 实践建议/B6 资源推荐;AiEnrich 协议批量块;混合落位(深度就近插入+锚点溯源、广度聚合扩展区);"AI 补充·非课程内容·需核实"标注;B6 仅标题不输出链接 P1 已实施(2026-08-21,M3) v0.8.0 2026-08-19 头脑风暴新增能力;广度=模型外部知识(幻觉风险高);块可整体删除(撤销还原 base);重补=新版本(M4 消费);"对这段补充"锚点机制保留接口(V1.0)
REQ-143 成本机制:token 预估 + 费用确认(首次必显可记忆)+ 弹窗内联余额 + 成本落库(note_ai_usage)+ 余额不足拦截引导(充值/免费档/跳过) P1 已实施(2026-08-21,M4 完整版) v0.8.0 预估/确认/记住选择/内联余额(M2 基础版)+ 成本落库 note_ai_usage(精修/补充采纳自动记录 token/费用/模型/切片);余额不足三出口引导=前端确认弹窗显示余额+低余额提醒,任务遇 402 归一 Balance 失败引导
REQ-144 笔记版本管理(git-like):notes_versions 快照表(content/source 本地规则|AI精修|AI补充|用户编辑/parent 链/meta)+ 每次变更=新版本(线性,50 版上限)+ 段级 diff + 回滚(不破坏历史)+ 版本时间线 UI P1 已实施(2026-08-21,M4) v0.8.0 核心=可回溯能力;统一"重新生成"语义(不再覆盖);覆盖 v0.7.1 后续批次"转化历史管理";手动保存也入版本;回滚 parent=最新版本(线性链——见 v0.8.0.md M4 注记)
REQ-145 AI 生成异步任务交互:任务状态机 + 长笔记按章节切片(≤8000 字/片,并发 2-3,按片进度)+ 完成通知 + 失败保留本地版+原因四类提示 + 重试 P1 部分实施(2026-08-21,M2) v0.8.0 状态机/切片/进度事件/失败四类/重试已交付;并发 2-3 切片与配额计数并发安全改造归 M3 切片复用期
REQ-146 多版本真机验收总清(M0 前置):v0.5.0 M9 / v0.6.0 M7 / v0.7.0 M4 / v0.7.1 验收清单系统执行 + 缺陷清零 P1 已排期 v0.8.0 AI 线不盖在未验收地基上;未通过不启动 AI 开发
REQ-147 AI 链路契约测试:AiRefine/AiEnrich schema 强校验 + mock 适配器全链路 + 降级四路径 + 提示词 golden 冒烟回归 P2 已排期 v0.8.0 前端无 Vitest 基建维持真机手动清单
REQ-194 设置页:课堂助手设置类面板迁出(与课堂助手同级第 4 tab「⚙ 设置」)——模型(模型管理/磁盘占用/OCR 设备)/音频(预处理链/落盘管理)/AI 服务(密钥授权/任务中心)/数据(备份恢复)/词表 五组,单页滚动+分组标题布局;课堂助手左栏仅保留采集动线 P2 已实施(2026-08-21,提交 6720bec) v0.8.0 2026-08-21 用户需求;市场调研定稿方案 A;保留挂载模式(TD-004)状态无共享问题(模型下载全局事件由课堂助手监听器接收)

v0.7.3 · 画面要点屏卡体系(2026-08-20 头脑风暴裁决)

用户反馈"画面要点(OCR)提取的内容零碎(时间整理和识别内容)";会话29 实证(175 块 OCR / 12 时间戳重复 / 平台 UI+其他窗口污染 / 无 bbox 落库)。 设计规格 头脑风暴 OCR 屏卡体系([ ] 已归档) · 架构决策 ADR-015 · v0.7.3 版本文档。 裁决:路线 A+B+D(采集治理+屏ID+屏级合并+bbox 落库+行合并/版面角色+结构识别接线);笔记形态=屏段落+配图;AI 精修留给 v0.8.0。 状态同步(2026-08-22):M1~M5 代码建设完成(2026-08-20,1053 单测全绿);真机验收待执行。

ID 需求 优先级 状态 目标版本 备注
REQ-155 屏级聚合与去重:screen_merge 纯函数(normalize/similarity/cluster/line_merge/classify_roles)+ ScreenTracker 在线屏(版面指纹变化=新屏)+ 旧数据聚类兜底 P1 已实施 v0.7.3 在线/离线共用同一套纯函数(单管线双出口);翻回旧页间隔>3s=新屏
REQ-156 bbox/screen_id 落库迁移:session_ocr_blocks 加列(ensure_column 幂等)+ 实时/导入双入口双写 P1 已实施 v0.7.3 bbox JSON {x,y,w,h} 帧坐标系(TD-046 反算复用);NULL=旧数据;不建新表(GROUP BY 派生屏)
REQ-157 采集治理:前台窗口过滤扩展全帧(复用 foreground_foreign,REQ-084 先例)+ ui_junk 直播互动元素扩充 P1 已实施 v0.7.3 根治会话29 平台 UI/IDE 污染;黑名单扩充+启发式兜底
REQ-158 屏内组织:line_merge 断行拼接 + classify_roles 版面角色(标题/正文/图注标签)+ SessionScreen 契约 P1 已实施 v0.7.3 region_kind=table/formula/code 不参与行合并(徽标+精修入口)
REQ-159 结构识别接线:refine_screen_structures 纯函数复用 commands_refine_inner(REQ-049/050 内核不动)+ 停止后批量精修 + 屏卡 Markdown/LaTeX/代码渲染 P2 已实施 v0.7.3 模型已本地就绪(pp-doclayout-l/formulanet/slanet);失败降级徽标
REQ-160 消费端:SessionDetail.screens + 原料屏卡流(可展开块级明细复查)+ 笔记屏段落配图(asset:// 本地图)+ 大纲/检索按屏 P1 已实施 v0.7.3 配图可开关;旧数据降级(聚类屏无行合并/角色);大纲无 bbox 回退文本启发式
REQ-161 实时面板按屏显示:live:ocr 事件带 screen_id,最近画面要点按屏摘要 P2 已实施 v0.7.3 一行=一屏摘要(区间+标题)

v0.7.5 · 会话转笔记规则净化优化 + 停止状态残留修复(2026-08-20 头脑风暴裁决)

会话31 实证(172 段 ASR / 215 块 OCR / 笔记 215 行)暴露规则链缺口:已建净化规则未接线(verbal/symbol normalize 只服务实时路径)、视频页 UI 垃圾漏拦、单字符碎片过放、屏零跨度/重复图、无时间锚点/规则版本/回归语料; 同日用户反馈"停止采集后会话仍长时间显示采集中"——会话31 status=failed + ended_at 有值 = 线程未走完 finish_session(audio.stop join 无超时 → 永久卡死),重启后由 mark_interrupted_sessions 兜底翻案。 设计规格 头脑风暴 会话转笔记规则优化([ ] 已归档) · v0.7.5 版本文档。 裁决:净化快赢批 12 项 + 停止残留修复 3 项全收;结构组织(章节/摘要/要点/术语/时间对齐内联)暂不实施(与 v0.8.0 AI 精修 REQ-141 衔接)。 状态同步(2026-08-22):REQ-162~176 全部落地(停止残留修复 0834b38 先行,净化批次 2026-08-20 完成);章节/术语两项纯本地可行项已由 v0.7.6 落地。

ID 需求 优先级 状态 目标版本 备注
REQ-162 口语净化接入笔记管线:filter_note 段循环接 verbal_normalize(保守档)+ symbol_normalize P1 已实施 v0.7.5 复用已有模块(接线优先于新建);原料层不动可逆;净化后文本才做精确去重
REQ-163 口头禅短段规则级删除:≤8 字且全由口头禅词组成 → 规则层直接删(免 AI) P1 已实施 v0.7.5 现有 FILLER 分类只作 AI 候选;本项补规则层删除路径
REQ-164 ASR 结巴/叠字折叠 + 术语替换:「甲甲甲」→「甲」、「项目班」→「项目班子」 P2 已实施 v0.7.5 叠词白名单(慢慢/常常)保护;glossary 复用
REQ-165 讲述内容段落时间戳锚点:[MM:SS] 前缀(段首 start_ms) P2 已实施 v0.7.5 笔记可回跳原视频位置;可开关
REQ-166 视频页 UI 垃圾过滤:VideoPageUi 类别(简介/评论/点赞/收藏/投币/观看数/标签/作者/推荐卡片/二维码/展开)+ 数字量词短串 + 边缘条带 bbox 黑名单 P1 已实施 v0.7.5 会话31 实证「清晖加油站/若凡娃娃/1.3万0/qh202522」;正文数字不误杀
REQ-167 单字符碎片块丢弃 + 低分阈值校准:MIN_BLOCK_SCORE 0.5→0.7(配回归验证) P1 已实施 v0.7.5 公式/表格上下文豁免(region_kind 保护)
REQ-168 OCR 错字纠错:glossary 复用 + 转写共现校验(画面词与讲述词互证) P2 已实施 v0.7.5 「項灣」→「项目」;无映射不猜(保守)
REQ-169 屏零跨度修复 + 重复图去重:first=last 并入相邻屏;相同图只留首个屏引用 P1 已实施 v0.7.5 会话31 画面 1~5 零区间、569515.webp 三屏重复;frame_cluster 复用
REQ-170 失败/异常会话转笔记警示:status != finished → 笔记追加警示行 P2 已实施 v0.7.5 > ⚠️ 会话异常(status),内容可能不完整;诚实降级
REQ-171 规则版本化元数据:notes 加 rule_version + purify_stats(JSON 净化统计) P2 已实施 v0.7.5 ensure_column 幂等迁移;旧笔记 NULL 诚实降级
REQ-172 黄金语料回归集:会话31/29 原始素材 → 期望笔记夹具(note_filter_tests 扩展) P1 已实施 v0.7.5 新增规则先写失败测试再实现(TDD)
REQ-173 净化阈值配置化:120字/60s/0.5/0.6 集中常量 + JSON 校准 P2 已实施 v0.7.5 ui_junk.json 先例
REQ-174 停止链路超时保护:audio_loopback::stop() join 加 2s 超时(超时 detach 不阻塞) P1 已实施 v0.7.5 兑现注释"join 超时保护"承诺(原实现注释与代码不符);WASAPI 卡死时停止命令仍返回
REQ-175 前端全局采集徽标拉取兜底:App.tsx 监听 session:fusing + 停止 invoke 成功后 live_session_status 确认 P1 已实施 v0.7.5 徽标不再单一依赖 live:status 事件;停止后 ≤2s 清除
REQ-176 DB 残留 recording 会话兜底标记:list_sessions 发现 recording 但 manager 无活动线程 → 自动标 failed P1 已实施 v0.7.5 复用 mark_interrupted_sessions 语义;无需重启翻案;进行中会话不误标

v0.7.6 · 笔记纯本地结构渲染层(章节入笔记 + 术语表入笔记)

v0.7.5 裁决缓做的"结构组织"六项中纯本地可行的两项(章节/TOC、术语表)落地;摘要/结论、语义切段归 v0.8.0 AI 精修(REQ-141),时间对齐内联/要点标记后续批次。 设计:v0.7.6 版本文档。

ID 需求 优先级 状态 目标版本 备注
REQ-177 章节入笔记:章节边界 → ## 章节 N [MM:SS] 标题层级;章节名取窗口内 outline 标题(OCR 大字块/屏标题),无命中占位 P1 已实施(2026-08-20) v0.7.6 复用 REQ-044/064 章节检测 + REQ-077 outline 标题检测,缺的只是"接进笔记";边界段内不切段(诚实粗粒度);structure_note.rs
REQ-178 术语表入笔记:glossary 候选 → 笔记尾部 ## 词汇表 块(画面×N/语音×M + [MM:SS] 锚点);自动候选直入(可手动删,不做确认 UI);上限 20 防噪音 P1 已实施(2026-08-20) v0.7.6 复用 REQ-046/061 glossary;与 v0.8.0 知识补充(REQ-142)语义区分:本项=会话内已有术语,非模型外部知识
REQ-179 结构渲染配置化:NoteStructureConfig(chapter_headings/glossary_block/glossary_max_terms)JSON 可校准 P2 已实施(2026-08-20) v0.7.6 purify_config.json 先例(嵌套 structure 对象);全关 = v0.7.5 输出逐字节一致(零回归护栏单测)
REQ-180 结构元数据:StructureStats 并入 purify_stats + RULE_VERSION 递增 note-rules-0.7.6 P2 已实施(2026-08-20) v0.7.6 REQ-171 机制延续;FilterStats 三新字段 serde(default);旧笔记 NULL 诚实降级
REQ-181 黄金语料回归扩展:会话31 夹具 → 期望带结构笔记断言(TDD) P1 已实施(2026-08-20) v0.7.6 REQ-172 机制扩展(2 例:章节标题+词汇表);预览/落库双出口同函数同口径

v0.7.7 · 非线性结构图像捕获与持久化(结构图)+ 会话管理两处修复(2026-08-20 头脑风暴裁决)

版面分析已能分类 text/table/formula/code/image/unknown,但非线性文本结构缺"图像级持久化"闭环:表格/公式/代码裁剪图仅作精修中间产物;流程图/思维导图等(Image/Unknown)完全无裁剪无持久化;AI 语义重建(REQ-056/058)V1.0 才实装——本版用"图像即产物"兜底(ADR-010 诚实降级)。 设计规格 头脑风暴 结构图 v0.7.7([ ] 已归档) · v0.7.7 版本文档。 裁决:方案 A+(批量时机+屏内多帧选优,不做在线状态机——增量 CPU 小但状态机复杂度/实时链路回归风险大);混合触发(自动=结构三类+Image 过 diagram_likeness,手动=屏卡框选);消费=会话内图库(笔记内联下版);并修两处会话管理体验问题。 状态同步(2026-08-22):REQ-182~187 代码完成(2026-08-20,1172 单测全绿 + 前端构建通过);真机验收后由 v0.10.2 重构自动捕获机制(保留手动框选/图库)。

ID 需求 优先级 状态 目标版本 备注
REQ-182 结构图自动捕获:批量任务(停止后触发+图库可重跑)——屏内多帧选优(pick_sharpest 边缘能量)→ 版面分析复用 → table/formula/code 直收 + Image/Text 过 diagram_likeness(长直线主信号+墨迹密度+面积占比+形状约束,防标题误收)→ 白边裁剪入库 P1 已实施 v0.7.7 每屏采样 ≤8 帧 bound 解码成本;实现校准:真实流程图页密度高被判 Text——Text 同过图结构判定;unknown 跳过(归 V1.0 AI 补缝);重跑幂等(same_image 去重)
REQ-183 结构图持久化:session_structure_images 新表(kind/bbox/screen_id/source_ts/source)+ struct/ 命名空间(与 crop/ 精修中间产物语义分离)+ 缩略图 + 独立预算(auto 80/会话常量,manual 不限)+ same_image 去重 P1 已实施 v0.7.7 ensure_table 幂等迁移;RegionKind 不动(kind 字符串枚举);screen_id 留笔记消费锚点
REQ-184 手动结构图截取:屏卡全帧图框选(BoxSelectOverlay 拖框 + 确认浮层防误触)→ capture_structure_manual(归一化坐标/越界钳制/<32×32 拒绝/原样裁剪不白边) P1 已实施 v0.7.7 无 image_ref 屏禁用+提示;手动不设预算上限(用户主动行为)
REQ-185 会话内结构图库:ImageGallery 扩展 StructureImageSection(kind/source 徽标+时间+屏号+删除+重新捕获按钮+空态) P1 已实施 v0.7.7 list_session_structure_images / delete_structure_image / capture_session_structures 三命令
REQ-186 修复:会话列表全选框(当前筛选视图 filtered 口径 + indeterminate 三态;列表/分组视图共用;纯前端本地状态零后端改动) P2 已实施 v0.7.7 段搜索命中视图批量栏隐藏→全选框自然不出现
REQ-187 修复:参考图片详情查看(ImagePreviewOverlay 大图预览遮罩 + 相对路径/时间信息栏 + 删除 + ESC/点遮罩关闭;参考图/结构图共用) P2 已实施 v0.7.7 修复 ImageGallery 缩略图无点击处理现状

v0.9.0 · 视频档案框架 v2(第九阶段,2026-08-21 头脑风暴定稿,已交付)

设计依据:video-profile-framework-v2.md([ ] 已归档)——会话 33(动画科普)实证驱动,四维解耦重新设计; 关联 brainstorming-video-profile-detection.md([ ] 已归档)(v1 检测改进候选,v2 为其重新设计版)。 状态同步(2026-08-22):M1~M5 全部交付(cargo test 1352 全绿 + clippy 零警告 + 前端构建通过);真机验收已执行并记录修复(见 v0.9.0.md 验收记录)。

ID 需求 优先级 状态 目标版本 备注
REQ-188 视频档案框架 v2 四维解耦:形态 7 类(讲授/实操/解说/对话/题目/代码/音频)独立决定产物模板;画面价值 4 档(高/中/低/无)独立决定采样/OCR/存储;13 类→7 类映射迁移(记忆库 kind 映射、档案参数拆解到「7 形态 × 4 画面档」矩阵、消费端契约零改动) P1 已实施 v0.9.0 会话 33(动画科普→解说×中档)归属验证;whiteboard→讲授(画面档=高);podcast/live→音频(无画面档);video_profile_spec.rs 已落地
REQ-189 画面价值档位自动检测:开始前默认「中档」+诚实声明;会话中每 2-3 分钟重评(帧切换率+OCR 文字密度+区域构成三信号加权投票,复用 vote_detect 范式);升档静默生效、降档需用户确认;维度独立于形态检测(形态 unknown 时画面档照常生效) P1 已实施 v0.9.0 解决"unknown 跑全程"(会话 33 实证);C4 帧切换/A1 OCR 已落库可接线;video_tier_detect.rs 已落地
REQ-190 领域标签体系(粗+细两级):粗 15 领域(内置种子词表 20-50 词)+ 细标签开放(平台原文/术语频率自动命中);接线 hotwords 预热(VocabManager 通道)/术语表筛选/区域预期(数学→公式区、代码→code 区);来源=平台分区标签→标题领域词→用户确认→会话中术语频率 P1 已实施 v0.9.0 领域错判代价低:无需确认门禁,可随时改;细标签"公积金"类不必枚举;video_profile_domain.rs 已落地
REQ-191 平台信号适配:轻量平台适配器(detect_video_profile 增 platform 输入,前端从窗口标题/进程名推断;初期 bilibili 分区标签→领域+画面暗示 + local 文件路径→路径语义)+ OCR 标签通用化(画面内标签/标题卡文字入投票词表映射);无平台信号时零回归 P2 已实施 v0.9.0 会话 33 分区标签(知识科普|经济管理)实证;浏览器/独立播放器场景靠通用层信号;platform_adapter.rs 已落地
REQ-192 检测卡 v2 三维一体交互:形态/画面/领域各自可点击下拉修改(修改即记忆);置信不足维度高亮"待确认";未知维度"识别中"不阻塞会话开始;档案卡不含"开始捕获"按钮(归课堂助手采集控制区) P1 已实施 v0.9.0 用户裁决 2026-08-21;询问门禁=错判代价(形态必问/画面不问/领域可改);ProfileDetector.tsx 已重写
REQ-193 叙事结构产物模板变体:故事线/结构化条目/直接教学;讲义/摘要模板"叙事线+要点提取"变体(专有名词角色+口语故事化转折词检测),保留叙事主线同时提取结构化要点 P2 已实施(2026-09-12 批 1 起已回退,见备注) v0.9.0 会话 33 故事化科普(小马故事+1/2 要点)实证;模板内部规则,非独立维度;narrative_detect.rs 已落地;⚠️ 2026-09-12 批 1 更正:narrative_detect.rs 与 artifact_templates*.rs(模板变体的宿主)已随产物子系统整套删除(批 1 Task 3)⇒ 本需求的实现已不在代码中

v0.11 · 大目标版本系列:v4 路线图落地(两地形、一产物、一循环,2026-08-22 裁决立项)

2026-08-22 用户全盘采纳 v4 路线图建设顺序规划,并裁决:以 v0.11 为大目标版本,按 v4 Phase 1-3 分四个小版本推进; 大目标=pain-points-v4 §1.1:结构在内容里的成为课程,结构在行为里的成为组,都被同一个学习循环接住; 自底向上纪律贯穿全系列:原子层(类型/纯函数)→ 业务层(service)→ 系统层(command/UI)。

小版本 对应规划 范围 状态
v0.11.0 Phase 1 前半(Step 1+2) 笔记组基建·容器侧:组模型 + terrain 标记 + 结构密度路由 + 容器侧组化 + 路由可见可改 已交付(2026-08-22,REQ-195~198 实施)
v0.11.1 Phase 1 后半(Step 3) feed 进料口:碎片快速捕获 + fragments 原料层 + DomainTag 归组;功能开关默认关 已交付(2026-08-22)
v0.11.2 Phase 2(Step 4+5) 学习循环统一:FSRS 间隔重复引擎(SM-2 降级;提取优先 + 弹性承诺)+ 组级复习/自测 UI(最小化)+ 北极星/过程指标埋点 已交付(2026-08-22,fsrs crate 引入成功,ADR-018)
v0.11.3 Phase 3(Step 6) 组结算机制:阈值/周期触发 + 核心提炼 + 重复合并 + 低价值归档(防沼泽仪式) 已交付(2026-08-22)
v0.11.4 学习循环补齐 + feed 消费闭环 内容分型(N13 续:action 卡最小版)+ 周契约视图 UI(弹性承诺呈现层)+ feed 最小消费闭环(碎片生命周期 UI + 碎片卡徽标;开关默认关) 已交付(2026-08-22,REQ-199~201 实施)

Phase 4(测量层:显影报告/盲测仪器/常模库)以 v0.11.2 碎片升级率数据为启用前置,门控另议不预占版本号(防测量层过度建设死法)。 前置事项(Step 0):REQ-146 真机验收总清(待用户真机执行)+ 七轮安全加固代码批提交(✅ 2026-08-22 已提交 6 个原子 commit)。 全系列代码交付见 versions/v0.11.md,真机验收待执行。 v0.11.4 规划详见 versions/v0.11.md 规划章节(进入论证/接入方案/边界清单)。

v0.11.0 · 笔记组基建·容器侧

ID 需求 优先级 状态 目标版本 备注
REQ-195 笔记组数据模型:note_groups 表(terrain 标记 container/feed + source 溯源 + domain_tag + kind 课程组/主题组/独立组)+ notes.group_id(ensure_column 幂等) P0 已实施 v0.11.0 v4 §7.4 融合点基建;terrain 为管线分叉前提;代码已交付(2026-08-22),真机验收待执行
REQ-196 结构密度路由纯函数:四维解耦信号接入(形态 unknown 比例/画面档位/章节密度/OCR 文本密度/DomainTag 命中度)加权投票(vote_detect 范式)→ 自成一组|归主题组|建议待确认;golden 路由用例 TDD P0 已实施 v0.11.0 v4 附录B 判据;路由误判为 ★★★★ 死法,单测先行;代码已交付(2026-08-22,group_route.rs 7 个 golden 用例)
REQ-197 容器侧组化:会话→笔记落库按 series_detect 自动归课程组(REQ-078 语义升级为容器组)+ 无系列会话按结构密度自成一组 + 组列表 UI(按钟分域:容器组在每日/会话面) P0 已实施 v0.11.0 接线优先于新建;存量资产重组;代码已交付(2026-08-22,convert_to_note 接线 + 组侧栏)
REQ-198 路由决策可见可改:组卡片显示路由理由(命中信号明细)+ 一键改判(修改即记忆,v0.9.0 检测卡交互哲学延续) P1 已实施 v0.11.0 防路由误判埋没/空洞;改判样本反哺阈值校准;代码已交付(2026-08-22,route_reason JSON + override_group_route)

v0.11.4 · 学习循环补齐 + feed 消费闭环(2026-08-22 用户裁决立项)

用户裁决:feed 进入范围为最小消费闭环(三根柱子与测量层维持 Phase 4 门控); 内容分型 + 周契约 UI + feed 闭环合并为单版本。规划详见 versions/v0.11.md。

ID 需求 优先级 状态 目标版本 备注
REQ-199 内容分型动作卡(N13 续):flashcards.kind 扩展 fact/action(model 留接口);动作卡生成规则纯函数(碎片含步骤语义信号→action 卡,front=动作名 back=步骤清单;无信号维持 fact);golden TDD P1 已实施 v0.11.4 v2 §8.1 内容分型最小版;不做动手闭环 UI(N12 另议);代码已交付(2026-08-22,card_generate 分型规则 + 5 个 golden 用例,22 测通过)
REQ-200 周契约视图 UI(弹性承诺呈现层 P31+N10):contracts 表(group_id/week_start/target_days/target_cards)+ upsert_week_contract 幂等 + week_contract_status(review_logs 周聚合纯函数);组面板周契约卡(目标设定/完成进度/断签不清零视觉/最小可行日徽标) P1 已实施 v0.11.4 弹性承诺纪律不变:无 streak、无惩罚、欠账不追;代码已交付(2026-08-22,week_contract 纯函数 16 测通过 + contracts 表 + 周契约卡)
REQ-201 feed 消费闭环(最小范围):delete_fragment 命令 + list_group_fragments/update_fragment_group 接线;feed 组展开区碎片列表(文本+图片缩略,resolve 复用 app_data_dir)+ 删除/移出 + 空态引导;复习面"碎片卡"徽标(fragmentId) P1 已实施(2026-09-12 批 1 起部分回退,见备注) v0.11.4 开关默认关(v4 §11.3);零新界面;碎片→笔记升级不做(身份诚实);契约二兑现;代码已交付(2026-08-22,delete/移组/图片 resolve 三命令 + feed 碎片列表 + 复习面徽标);⚠️ 2026-09-12 批 1 更正:list_group_fragments 命令已随 IPC 面收敛删除(commands_fragments.rs 整段),feed 组展开区碎片列表现由仍活的 list_fragments 兑现(FeedFragmentList.tsx:87 · GroupSidebar.tsx:114);delete_fragment 仍活(FeedFragmentList.tsx:166);update_fragment_group 仍注册但前端零调用方(登记见规格 §14)

v0.12.2 · 笔记页信息架构重构(三栏 + 收件箱动线 + 路由信息收敛,2026-08-23 交付)

规划详见 versions/v0.12.2.md;本版回填——REQ-198 重释"可见可改"、REQ-201 补升级出口(修订 v0.11.4 范围决策),无新增 REQ 编号。

ID 需求 优先级 状态 目标版本 备注(v0.12.2 回填)
REQ-198 路由决策可见可改(重释) P1 已实施 v0.11.0 → v0.12.2 v0.12.2 重释"可见可改":组行小字一句人话归因(结果可见)+ ⓘ 弹层信号明细默认折叠(原因按需)+ 一键改判(可改,修改即记忆保留)——Gmail/Apple Photos 透明性先例;代码已交付(2026-08-23,GroupSidebar 行小字 + RouteInfoPopover 四区)
REQ-199 内容分型动作卡 P1 已实施 v0.11.4 本版无改动——升卡复用现成多句卡规则(card_from_fragment),分型最小版不变
REQ-200 周契约视图 UI P1 已实施 v0.11.4 v0.12.2 UI 迁入 ⓘ 弹层四区第④区(组行展开区下线,功能不变)
REQ-201 feed 消费闭环(范围修订) P1 已实施 v0.11.4 → v0.12.2 v0.12.2 修订 v0.11.4"碎片→笔记升级不做(身份诚实)"决策:本版补升级出口——promote_fragment_to_note(事务建笔记+搬运图+删碎片,轻确认)+ promote_fragment_to_card(幂等);收件箱恒常视图(全量 active 碎片,不再依赖 feed 组展开);feedCapture 开关语义改「快速记录入口」默认开启(用户裁决转正,旧持久化配置不受影响);代码已交付(2026-08-23)

v0.13 · 大目标版本系列:知识体系层(方案 B,2026-08-23 裁决立项)

2026-08-23 用户全盘采纳 整合分析·方案 B([ ] 已归档),裁决:v0.13 为大目标版本,按整合分析 §六 分小版本推进; 依据:竞品调研([ ] 已归档)("应用/决策"零竞品带)· 指南源文档([ ] 已归档); 理念局部修订(P13 重裁决等)随 v0.13.0 前置文档批(ADR-024);前置门控:REQ-146 真机验收总清(组级学习循环通过); 系列规划详见 versions/v0.13.md。

ID 需求 优先级 状态 目标版本 备注
REQ-202 知识体系数据模型:knowledge_systems/nodes/concepts/models/links/audits 表(db_migrations 幂等;concepts.name 全局唯一→交叉点判定) P0 已立项 v0.13.1 整合分析 §四.2;零破坏(既有表不动,flashcards.kind 补值 model)
REQ-203 体系 CRUD:全局体系创建向导(极简启动模板:核心问题→3-5 领域入口→本周第一个输出)+ 领域体系 + 问题树节点 CRUD P0 已立项 v0.13.1 创建向导防"从分类开始搭"误区;不预填内容(防假燃料)
REQ-204 引用层 knowledge_links:体系↔组/笔记/卡/碎片引用命令(引用不复制;体系无内容收纳权) P0 已立项 v0.13.1 契约一/组是唯一容器纪律延续
REQ-205 纯函数 TDD:audit_due(结算同构)/ concept_stale(90 天无引用→待观察、180 天未应用→归档建议)/ promote_rules(升格规则 golden) P1 已立项 v0.13.1 防体系沼泽化;判定规则先于 UI
REQ-206 内容分型 model 落地:flashcards.kind='model'(front=概念名,back=三问本质/边界/联系+锚点回链,延迟揭示) P1 已立项 v0.13.2 REQ-199 预埋接口兑现;N13 心智模型→重建
REQ-207 卡→概念升格:组内 model 卡"纳入体系"→ 创建/关联概念+回填三问(AI 可选默认关)+概念库 UI(三问一用卡片) P1 已立项 v0.13.2 升格单向(概念→卡不反向);metrics_events(concept_promoted)
REQ-208 决策/应用一表两面:knowledge_decisions(kind=decision/application;四行法 content/expectation/actual/reflection+used_refs 引用必填) P0 已立项 v0.13.3 防双重记账;只记"我的决策"(产物 Decision 块禁自动升格)
REQ-209 应用记录入口(动手闭环 N12 最小环):概念页/组/复习面"记一次使用"→ 四行 → 概念 last_applied_at 更新 P1 已立项 v0.13.3 N12 从"另议"转落地;Phase 4 显影"应用率"数据源
REQ-210 决策日志 UI + metrics_events 扩展(decision_logged/application_logged/system_audited/concept_promoted) P1 已立项 v0.13.3 指标从第一天记(v4 §8 纪律)
REQ-211 体系审计:季度触发(settlement_due 同构)+审计清单(指南附录 D 六项)+组结算第三步增强(概念失效检查) P1 已立项 v0.13.4 审计产出建议、用户确认后生效(防古德哈特/骚扰)
REQ-212 交叉点派生提示(概念被 ≥2 领域体系引用时提示升格/建引用;默认关)+审计报告视图(思辨动作 vs 学习动作并列) P2 已立项 v0.13.4 不做跨体系自由引用/图谱可视化;v0.14 视数据转正

v0.13.5 · 书籍笔记组与知识树附加(方案 C,2026-08-23 用户裁决立项)

用户裁决:知识树附加书籍+书籍笔记组+体会模板"应用"字段+阅读状态生命周期+交叉点/升卡复用——不存书内容(版权零触碰),只存用户体会("书→判断"贯通,竞品空白带)。 依据:个人电子图书馆调研+用户脑暴;规划详见 versions/v0.13.md v0.13.5 规划。

ID 需求 优先级 状态 目标版本 备注
REQ-213 books 元数据壳表(group_id UNIQUE=一本书一个组;title/author/isbn/status/rating/lesson——不存书内容)+ note_groups.kind 扩展 'book'(命令层白名单+1) P0 已立项 v0.13.5 定制于内容供给红线外——只存体会;一书本一组(组=学习单元契约延续)
REQ-214 书籍组 CRUD:create_book_group(事务建组+books 行)/ update_book_group / list_book_groups(状态过滤);组卡片书籍元数据+状态徽标 P1 已立项 v0.13.5 删除=既有组归档路径(不删数据)
REQ-215 知识树"附加书籍":节点/概念详情面板书籍区(list_knowledge_links(target=note_group)+元数据 JOIN)+ 添加=复用 link_knowledge_target(选已有/现场新建书组) P1 已立项 v0.13.5 方案 C 展示层——树侧零 schema;交叉点提示自动适用(v0.13.4 复用)
REQ-216 体会模板("这本书改变了我哪个判断/我打算怎么用"应用字段)→ 一键复用 v0.13.3 application 记录(content=应用字段,挂概念/问题)——"书→判断"贯通 P1 已立项 v0.13.5 应用字段可空;解析/转义纯函数 TDD
REQ-217 阅读状态生命周期(toread→reading→finished/abandoned 白名单)+ book_stale 纯函数(finished 90 天无访问→审计"这本书还在影响你吗?") P1 已立项 v0.13.5 concept_stale 同范式;随 v0.13.4 审计清单展示;书版沼泽化防御
REQ-218 体会升卡与复习:复用 generate_group_cards/复习面(书组自然生效)+ 书组徽标 P1 已立项 v0.13.5 零新代码(接线+徽标);生成效应(自己产出记忆深 2-5 倍)
REQ-219 形态展平 7→10:ContentForm 增 meeting/live/narrative(会议/直播/影视——挂既有模板 MeetingNotes/Summary+叙事线变体;矩阵/反向映射/词表/下拉同步) P0 已实施 v0.13.6 零新模板零 DB 迁移;旧 13 类 Meeting/Live 反向映射回归新形态;代码已交付(2026-08-23)
REQ-220 领域两层:DomainKind 15→20(新增美食烹饪/摄影视频/历史人文/写作阅读/数码硬件)+细目 curated 静态表(84 项,kebab id+标签+种子词;DomainTag.fine 升级为细目 id 多选数组,旧 raw 兼容展示) P0 已实施 v0.13.6 细目多选 chips(用户裁决);hotwords/术语筛选按细目细分;代码已交付(2026-08-23)
REQ-221 检测链升级:平台分区映射表(B站 分区→形态/粗领域/细目;影视/直播分区→narrative/live)+形态信号词表扩展+分区→形态优先于标题词 P1 已实施 v0.13.6 会话 33 实证分区是零成本强信号;映射未命中回落现状零回归;代码已交付(2026-08-23)
REQ-222 领域记忆扩展:ProfileMemory 增领域独立通道(DomainMemoryEntry,serde default 零迁移)+remember_domain/lookup_domain(series 键同口径)——用户确认的 coarse+细目下次同标题/系列直接生效 P1 已实施 v0.13.6 修改即记忆纪律延续;检测>记忆兜底;领域通道与 kind/form 通道分离防污染(规格精化);代码已交付(2026-08-23)
REQ-223 修复批:add_knowledge_node 契约(前端 type→nodeType,2 调用点+测试)+ 笔记编辑完成即时刷新(await 保存+get_note 回填 selected+列表重载,补齐 ESC 路径) P0 已实施 v0.13.6 用户实测 P0;标题修改显示不生效同根因;代码已交付(2026-08-23)

v0.16.0 · 内嵌 AI 对话(纯聊天 · DeepSeek Harness 蓝本)

规划见 versions/v0.16.0.md;用户裁决(2026-08-30):轻量复刻 DSH 交互范式 + 复用 BYOK 平台 + 精修对话轨迹整合;AI 增强采集(REQ-229)后续再议。

REQ 需求 优先级 状态 目标版本 备注
REQ-224 AI 对话页(纯聊天):顶部 Tab「AI 对话」+ 多轮文本聊天 + 消息落 SQLite(ai_chat_sessions/ai_chat_messages 两表)+ markdown 渲染 P0 已立项 v0.16.0 复用 react-markdown+GFM+KaTeX;不做上下文注入/工具调用
REQ-225 聊天流式输出 + 停止 + 重发/编辑重发 + 错误重试:SSE(ureq into_reader 逐行解析 → Tauri 2 Channel)+ 状态机 preparing/streaming/done/aborted/failed + 单活跃流 P0 已立项 v0.16.0 DSH 手感核心;错误复用 AiClientError 六类
REQ-226 聊天会话管理:侧栏新建/重命名/删除/搜索 + 会话切换保留挂载 P0 已立项 v0.16.0 TD-004 同模式
REQ-227 每会话模型选择:复用 AI Provider 预设(默认=设置默认)+ 消息模型标签 P1 已立项 v0.16.0 预设下拉
REQ-228 聊天授权/成本/审计:content_gate 双闸门(默认关)+ 空态引导 + 每消息 token/成本 + 用量/审计落库 P0 已立项 v0.16.0 复用现链;首次发送云端提示
REQ-229 AI 增强采集(实时理解/智能切片,抖音范式) P2 待评估 后续再议 2026-08-30 用户裁决:后续再议,本版登记不进范围
REQ-230 AI 任务对话视图(精修/补充轨迹):ai_tasks 加 trajectory_json([{turn,system,user,response}])→ AI 对话页「AI 任务」段只读对话展示提示词/回答全文 + 可跳转引用(来源会话/笔记)+ 结果预览 + 失败重试 P0 已实施 v0.16.0 用户裁决:需看到提示词和回答,会话用可跳转引用;精修工作台深链登记后续增强(结果已在对话视图内预览);代码已交付(2026-08-30)

v0.16.1 · 笔记体验与 AI 对话闭环(2026-08-31 用户反馈批)

用户实测反馈批(2026-08-31):图片插入 RangeError、手动分组不可达、正文多色、对话转笔记、AI 任务对话化、精修工作台深链、右键菜单完整性、浏览器原生右键菜单去除——全部经用户逐项裁决后实施;文档与代码同提交。

REQ 需求 优先级 状态 目标版本 备注
REQ-238 修复:图片插入 RangeError——CM6 禁止插件产出 block decoration(Block decorations may not be specified via plugins);imageDecorationPlugin 改内联 replace + 回归测试 P0 已实施 v0.16.1 2026-08-31 用户实测报障;独立行图片视觉等价(所在行仅空白);编号说明:REQ-231 已由 v0.16.0 预留给聊天上下文注入(L1-L4),本批顺延自 238
REQ-239 正文多色荧光笔:==[色]文本==(12 色板小写 id;无前缀保持默认黄,存量零迁移)——修订 v0.14 B「多色=伪需求」裁决;remark 插件 + 双编辑器工具栏(色板包裹)+ 双主题 WCAG 前景 + hName 修复 P0 已实施 v0.16.1 2026-08-31 用户裁决前缀式;修复既有缺陷:mdast mark 节点无 hName → defaultUnknownHandler 落 div,components.mark 从未命中(荧光笔实际无样式)
REQ-240 对话转笔记:双入口(会话顶栏整段 / AI 消息级至该条)+ 完整对话含问答(提问引用块 + AI 回答全文)+ 标题/目标组可选 + 保存成功跳笔记页 P0 已实施 v0.16.1 2026-08-31 用户裁决双入口+完整问答
REQ-241 AI 任务对话化:聊天中发起任务(工具条按钮 + /refine /enrich 命令)+ 线程任务卡(进行中实时 / 完成 10 分钟内可「在对话中追问」预填结果要点)+ 会话页精修启动自动跳 AI 对话页 P0 已实施 v0.16.1 2026-08-31 用户裁决「并入聊天线程+可追问」+ 会话页精修自动跳转
REQ-242 AI 任务对话视图 → 精修工作台深链(任务卡「🛠 打开精修工作台」→ 会话页自动切预览视图 + AiRefineCard 取回结果直接展开) P1 已实施 v0.16.1 2026-08-31 用户裁决补深链;完成 v0.16.0 登记后续项
REQ-243 右键菜单完整性:笔记行完整菜单(移动到组子菜单/固定/复制标题正文/编辑/删除)+ 组行右键=ⓘ 组管理弹层 + 会话行右键=打开详情 P1 已实施 v0.16.1 2026-08-31 用户裁决「完整菜单+检测其他区域」;知识画布/树右键暂不新增(无既有处理语义,全局已禁原生菜单)
REQ-244 浏览器元素去除:全局禁用 WebView2 原生右键菜单(host 侧 AreDefaultContextMenusEnabled=false——wry with_webview + ICoreWebView2 链)+ 前端 contextmenu preventDefault 兜底 + 文本输入应用内右键小菜单(剪切/复制/粘贴/全选) P0 已实施 v0.16.1 2026-08-31 用户裁决「先修浏览器右键」;prompt/confirm/alert 13 处替换经用户确认本批不做(后续批)

v0.17.0 · AI 精修可到达度——策略化提示词 + 笔记级 AI 能力 + 流式会话化(2026-09-01 用户裁决)

依据:用户对话——①精修提示词可选项化(例子具体程度/概念学术通俗/原文保留程度等)②笔记页编辑模式使用 AI 精修(手写刚需)+ 知识补充并入编辑模式入口③精修会话化(跳转 AI 对话/显示所发送提示词/流式返回/完成后回到会话与查看笔记);复活 v0.11.6 策略层设计(2026-08-22 已批准未实施)并扩展;设计见 spec 2026-09-01([ ] 已归档) + ADR-026。

REQ 需求 优先级 状态 目标版本 备注
REQ-245 AI 精修策略层:prompts/note_refine.json v3(strategy_dims/ladder_presets/intents)+ ai_strategy.rs 纯函数 + 组装 pipeline(core+style+strategy+few_shot+output)+ 目标 chips(原文保真/考点浓缩/通俗转述/速查纲要/金句摘录 + 自由输入本地关键词映射未命中诚实提示)+ 4 档阶梯(L1 忠实整理/L2 标准精修=现状零变化/L3 深度改写/L4 极简提取)+ 6 旋钮高级微调 + ai_refine_prompt_preview(与实发同代码路径)+ ai_refine_strategy_meta + AiSettings.refine_strategy(全局默认+任务级覆盖) P0 已立项 v0.17.0 协议零改动(策略只改提示词);非法值回退默认;L3 表达改写但事实红线不动(不新增事实/术语数据原样)
REQ-246 笔记级 AI 能力:编辑态「🤖 AI」菜单(AI 精修/知识补充/预留)+ NoteAiDialog + 笔记级精修(输入=编辑器当前内容直接传参、基线=当前笔记版、版本链 source=ai-refine 复用)+ handwritten 档案(笔记式,仅笔记级请求,采集端零改动)+ ai_note_refine_estimate/start + 工作台笔记级模式 + 阅读态 AI 入口直接进入编辑态 + 阅读态独立 EnrichPanel 移除 P0 已立项 v0.17.0 手写笔记刚需;image 块前缀白名单化(session-images/+notes-images/,向后兼容)
REQ-247 精修流式会话化:Tauri IPC 流式通道(progress/block_done/slice_failed/done 帧)+ 后端片级流式(片完成 validate 后推渲染,协议强校验/失败回退不变)+ 对话页消息流(消息1=提示词全文立即显示/消息2=片级解析流)+ 完成自动升工作台(diff 同步打开)+ 消息底部 [回到会话][查看笔记] 双入口 + 追问保留(10 分钟窗口) P0 已立项 v0.17.0 B+ 档(片级解析流);任务表语义(幂等/成本/审计/重试/trajectory 终态)全保留——流式=呈现增强

v0.18.0 · 学习目标层(2026-09-02 用户裁决立项)

依据:用户指令「探讨学习目标(长期/短期)是否偏离产品」「目标设定需通过询问明确真正需求,而非『我要学习 xx』」+优化评审 10 项全部采纳(删缓存列/删 draft 态/单组件双展开/单行卡/FSRS 弱项/里程碑草案/table-driven golden/切分微调/预算档位化); 设计:spec 2026-09-02-v0.18-learning-goals-design.md([ ] 已归档) + ADR-027; 系列规划详见 versions/v0.18.0.md(M1 目标对象+访谈+聚合视图(无 AI)→ M2 毕业仪式+回顾流 → M3 AI 教练默认关)。

REQ 需求 优先级 状态 目标版本 备注
REQ-248 学习目标数据模型:goals/goal_milestones/goal_groups 三表(db_migrations 幂等;N:M 绑定 UNIQUE(goal_id,group_id);判据配方/访谈答案 JSON;status 四态无 draft)+ metrics_events kind 扩展(goal_created/goal_milestone_done 写入;self_test_passed/failed 占位契约)+ 组删除 CASCADE 行为测试(goal_groups 级联清、ref_group_id SET NULL) P1 已实施 v0.18.0 意图层对象(目标=组的容器,组仍是唯一容器);进度信号现算零双写;代码已交付(2026-09-02,db_goals + 三表 + CASCADE/结算钩子测试)
REQ-249 访谈式目标设定:一套 InterviewDialog 双展开(访谈=四步向导+宣言确认,第 1/3 问必答、2/4 问折叠可跳过;快速=名称+期限判据走默认档)+ goal_interview 纯函数(答案→判据配方/suggest_milestones 里程碑草案/宣言组装,table-driven golden 6 条端到端+参数矩阵)+ 答案可回溯编辑(重新访谈配方重推) P1 已实施 v0.18.0 0 AI 本地规则(M3 叠加 AI 追问);访谈中断不落库;代码已交付(2026-09-02,goal_interview + 里程碑草案命令 + InterviewDialog/InterviewSteps)
REQ-250 目标聚合视图:GoalPage 独立 Tab(单行卡:名称/状态徽标/一句话进度/🎓可毕业)+ GoalDetail(里程碑勾选/关联组 N:M/判据明细/弱项块=FSRS 低稳定性卡占比 Top 组)+ goal_rules 四态状态机与毕业判据 + 埋点 + 组结算里程碑自动通过钩子 P1 已实施 v0.18.0 毕业仪式/回顾流/pause-abandon UI 属 M2(状态机纯函数与守卫已先行);代码已交付(2026-09-02,GoalPage/GoalCard/GoalDetail + goal_rules/goal_progress + 结算钩子)
REQ-255 毕业仪式与报告快照:goal_settle 命令(毕业判据守卫:未达标/重复毕业/已放弃拒绝)+ goal_graduation_reports 快照表(里程碑/子组结算/复习统计/成果物清单——目标删除后报告仍可读,快照独立于 goals 行)+ 埋点 goal_graduated P1 已立项 v0.18.1 毕业=用户确认仪式(延续 v0.11.3 结算仪式纪律);报告快照同 notes_versions「回滚不破坏历史」哲学
REQ-256 回顾流时间线:创建→里程碑→组结算→毕业 全时间线(现算:goals.created_at/milestones/settlements/graduation)+ 毕业报告永久入口 + RetroTimeline UI P1 已立项 v0.18.1 纯只读聚合零双写;毕业报告入口独立于目标存在性(目标删除仍可读)
REQ-257 暂停/放弃显式动作(可选原因、无惩罚文案)+ 组删除降级提示 UI(bound 里程碑 ref_group_id SET NULL→「该组已删除,判据信号丢失」按手动确认) P1 已立项 v0.18.1 弹性承诺上延(断签不清零无惩罚);状态机守卫已有(ADR-027 §3)

v0.18.2 · AI 目标规划师(2026-09-02 用户裁决立项)

依据:用户指令「目标仅规则算法——我想要接入 AI 用 AI 对目标进行规划,规划内容同步构建体系等等深度联动」+ 用户逐项裁决(双入口/建议制确认落库/联动四项全选/AI 提供初步体系/默认关+授权确认); 排期:v0.18.1(M2 毕业仪式)先行 → v0.18.2 实施; 设计:2026-09-02-v0.18.2-ai-goal-planning-design.md([ ] 已归档) + ADR-028(已批准)。

REQ 需求 优先级 状态 目标版本 备注
REQ-251 AI 规划协议与任务化:GoalPlanProposal(里程碑/组/体系/周契约/说明;serde 强校验:白名单/长度/id 有界/体系门槛)+ ai_goal_plan_estimate/start(ai_refine_estimate 范式;ai_tasks 任务化+轨迹)+ 建议制确认流(GoalPlanApprovalDialog 双入口共用;规则草案一键回退;失败整次降级) P1 已立项 v0.18.2 修订 spec §十六:建议制 AI 拆解入列(人类确认+失败降级);每日推送仍不做
REQ-252 目标↔体系深度联动:knowledge_links.target_type 白名单 +'goal'(零迁移)+ 目标详情「服务体系」区 + 体系页「服务于目标 X」反标 + AI 初步体系(骨架建议:名称+核心问题+≥1 领域入口+初始概念 3-5;门槛校验缺一丢弃;确认后既有体系命令逐项创建) P1 已立项 v0.18.2 只加引用通道(体系层零侵入);骨架部分失败不污染目标层
REQ-253 目标↔概念弱项(M3 真实化)+ /goal 对话:目标内概念低激活信号(90 天无引用/未应用)+「最弱概念」块 + ai_chat /goal 命令(L4.5 目标摘要现算注入 <1K + L3 检索 top-K) P1 已立项 v0.18.2 concept_stale 判据理念;摘要现算无缓存(优化评审 #1 延续)
REQ-254 治理与设置:目标 AI 开关(默认关)+ 授权弹窗(content_gate)+ 预算档位化(4K/10K/30K 默认标准)+ 单次硬顶 + token/成本/trajectory 落库 + 设置页「目标 AI」段 P1 已立项 v0.18.2 复用 v0.11.6 Provider/v0.16 授权流/预算硬约束(ADR-027 §4)

v0.19 · 检索与发现层(RAG 接层)(2026-09-03 用户裁决立项)

依据:用户 2026-09-03 方向裁决「方案三:派生索引+双读路径+人工裁决闭环」(加一层能力 + 换引擎良性内核;整体重定位/引擎替换否决);检索欠账核实(FTS5 未实装、/goal L3 为标题占位)后立项; 设计:2026-09-03-v0.19-rag-retrieval-discovery-design.md([ ] 已归档) + ADR-029(已接受); 排期:M0 spike → v0.19.0(索引基建)→ v0.19.1(学习库问答)→ v0.19.2(采集体验小版本——用户实测插队,见下段)→ v0.19.3(检索建议)→ v0.19.4(AI 任务体验与标识治理批——2026-09-04 用户反馈批插队,见下段)→ v0.19.5(语义增强,spike 定案后)。

REQ 需求 优先级 状态 目标版本 备注
REQ-258 检索与索引基建:kb_chunks/kb_meta/FTS5 影子表(节级切块 ≤800 字符硬切、多态源双可空 FK)+ 生命周期(保存收口钩子重索引/删除事务内显式清理/全量重建 reindex_all + kb_index_stats 角标)+ kb_search 混合检索(FTS5 BM25 ∪ 向量余弦 → RRF 融合;LIKE 旧链保留) P1 已实施 v0.19.0 FTS-only 可发布;影子表写入收敛 kb_index 同事务双写(不依赖触发器);代码已交付(2026-09-03:三表 DDL + 切块/查询纯函数 + 生命周期钩子 + reindex_all/stats + kb_search;切词校准定案=trigram+2 字 LIKE 补充;RRF 函数 TDD 先行待 v0.19.3 合流)
REQ-259 本地 embedding 引擎:EmbeddingEngine trait(Noop/Onnx/Ollama 实现)+ M0 spike 定选型(内嵌 ONNX bge-small-zh-v1.5 vs Ollama /api/embeddings;中文小评测集 ~30 查询;ORT 共存必测)+ 模型分发复用 model_registry + 混合检索开启 P1 已实施 v0.19.5 无模型 = FTS-only 降级,不阻塞 v0.19.0~2;模型文件不入库;2026-09-03 顺延:v0.19.2 采集体验小版本用户实测插队(原 v0.19.3);2026-09-04 再顺延:v0.19.4 用户反馈批(AI 任务体验与标识治理)插队(原 v0.19.4);代码已交付(2026-09-04,244ea92→cd9bcee 七提交:纯层/分词/ONNX 引擎/混合 RRF 合流/回填/下载/设置 UI——真机模型实测登记 v0.19.5 版本文档待办)
REQ-260 学习库问答「问我的学习库」:chat_sessions.retrieval 列 + chat_send 检索分支(命中列表恒可用·本地;生成经 content_gate + kb_qa_enabled 默认关)+ pack_fragments 转正 + 预算档位/成本/审计(ai_usage + meta_json 引用)+ 引用 chips 跳笔记高亮命中词 P1 已实施 v0.19.1 兑现 REQ-024/REQ-231 检索欠账(口径修订见设计 §十二.1);断网回退命中列表;代码已交付(2026-09-03:retrieval/meta_json 补列 + kb 双闸门编排 + KbHits 事件 + CitationChips + 笔记内命中词搜索高亮 + 设置「学习库」段)
REQ-261 检索建议(发现路径):概念/节点详情「相关素材建议」候选(混合检索 top-K ≤10,排除已链接)→ 人工勾选确认 → 既有 link_knowledge_target 落库(白名单零迁移)+ 跨体系相似概念提示(提示型不自动合并) P2 已实施 v0.19.3 kb_discovery 默认关(交叉点默认关延续);建议不落库零双写;代码已交付(2026-09-03:kb_discovery.rs 排除已链接 + feature flag + DiscoverySuggestSection 勾选确认流 + 相似提示,dd5f9b2 之后 v0.19.3 提交);v0.19.2 采集体验插队顺延一档
REQ-262 治理与设置:SettingsPage「学习库」段(引擎状态/模型下载/索引统计与重建/发现开关)+ FTS5 使能核查 + 中文 BM25 切词校准 P2 已实施 v0.19 系列随批 复用 speaker/OCR 模型下载 UI 范式;已交付(2026-09-03):FTS5 使能核查 + 切词校准定案(trigram)+ 设置「学习库」段(引擎状态/问答开关与档位/统计/重建/相关素材建议开关 v0.19.3);模型下载随 v0.19.5(2026-09-04 随 REQ-259 顺延);代码已交付(2026-09-04:引擎治理状态/下载/加载 UI + 重建回填引导,cd9bcee,REQ-259 同批)

v0.19.2 · 采集体验小版本(2026-09-03 用户实测插队立项)

依据:用户实测 4 点反馈逐项裁决(B站独立播放窗口/抖音固定标题仅能全窗口选择 · 系统进程未过滤 · 点开始不等待引擎就绪); 设计/记录:v0.19.2 版本文档;前置修复:live 预热 StrictMode 双跑语义收敛(802a370)。

REQ 需求 优先级 状态 目标版本 备注
REQ-271 系统窗口过滤:window_filter 系统进程白名单(explorer/notepad/cmd/powershell/WindowsTerminal/taskmgr/UWP 宿主等)+ CaptureWindow.systemWindow + 前端默认隐藏(开关找回,能力不丢) P1 已实施 v0.19.2 纯函数+单测;进程名精确匹配不猜标题;代码已交付(2026-09-03,dd5f9b2)
REQ-272 站点/播放器可达性与活跃置顶:评分表补抖音/快手/B站客户端(标题+进程)+ CaptureWindow.zOrder(EnumWindows 序号)推荐区同级按 z 序——活跃窗口自然靠前 P1 已实施 v0.19.2 真"播放中"检测(OCR/音频轮询)成本高,z 序为零成本近似——观察项;代码已交付(2026-09-03,dd5f9b2)
REQ-273 开始即录就绪门控:start 有界等待 5s→15s(CUDA 冷载);超时取消+会话行回滚+明确报错(不再双引擎重载);前端启动过渡态——recording 事件(引擎真就绪、AV 同刻)前不显示暂停/浮窗等采集中控件 P1 已实施 v0.19.2 双击防抖(starting 闸);wasEngineReady 分流防内联提前置活动态;代码已交付(2026-09-03,dd5f9b2)

v0.19.4 · AI 任务体验与标识治理批(2026-09-04 用户反馈批插队立项)

依据:用户 2026-09-04 反馈 6 点逐项讨论裁决,设计详见 v0.19.4 版本文档(含丙案全局面板交互规格/裸号清单 6 处/uid 基建/事件总线域设计); 排期注:本批抢位 v0.19.4;REQ-259(本地 embedding)顺延 v0.19.5(REQ-262 模型下载余项随动)。

REQ 需求 优先级 状态 目标版本 备注
REQ-274 AI 任务对话化·全局 AI 对话面板(丙案):应用级右停靠、按需唤起+内容保活(隐藏不销毁/后台任务照跑/完成 toast)、面板线程=chat_sessions 真实会话(AI 对话页可查可继续)、全站入口统一「以对话处理」(笔记编辑态/会话精修/补充/任务中心/选中文本)、完成操作条按来源渲染(采纳到工作台/查看来源回跳/追问)+ 补充采纳断点补齐(ChatPage enrich 无就地采纳、完成卡无查看笔记) P0 已实施 v0.19.4 2026-09-04 用户三选裁决定稿丙案+保活模型;复用 ChatMessageList/ChatComposer/TaskThreadCard 与既有 ai_refine_*/chat 协议零新 IPC;ChatPage 收敛面板全屏态后续再说;代码已交付(2026-09-04,b1ffb5c)
REQ-275 AI 响应速度治理:链路耗时拆解(首 token 延迟/流式帧节奏与前端节流/任务发起前置 estimate 链)→ 针对性优化 P1 已实施 v0.19.4 先建基线报告再动刀;排除:换 Provider/改云端协议/content_gate 与预算语义;代码已交付(2026-09-04,16c5b31——帧级批量渲染;链路基线实测登记真机验收)
REQ-276 笔记页「挂体系」浮层/弹层边距残缺修复:右缘钳制/按可视区重定位与翻转 + 边距统一;同类阅读头悬浮弹层群(色板/归组)统查 P1 已实施 v0.19.4 2026-09-04 用户定位选 A(挂体系浮层/弹层);补窄窗与贴边场景验收;代码已交付(2026-09-04,7126452)
REQ-277 ID 治理:6 处裸数字上屏语义化(ChatSidebar/ChatPage 兜底「会话 #N」、TaskConversationView「来源会话 #N」、AiTaskPanel「任务 #N 结果」、NotePreviewView「笔记 #N」、ClassroomRightPane「#N」→ 标题/日期/「已删除」文案)+ notes/sessions 加不可变 uid(`n s-YYYYMMDD-6随机`,唯一索引;幂等加列+存量回填,零表重建) P1 已实施 v0.19.4
REQ-278 通用变更事件总线:Rust data:* 六域广播(notes/sessions/note-groups/goals/knowledge/ai-tasks)挂载零广播写命令模块 + 前端 useDomainRefresh(防抖 300ms+路由活跃门控)订阅刷新 P1 已实施 v0.19.4 既有领域事件(ai:task-update/knowledge:links-changed/live:*)保留不重复造轮子;根治「AI 任务完成需切页才见详情」;代码已交付(2026-09-04,296e4d1——data: 五域广播+常驻订阅;画布/决策写路径后续批补)*
REQ-279 精修程度「自定义」档(自由文本随提示词+实时预览同路径)+ 标准恒纯净:换档替换语义清残留(不再并集合并)/记忆仅显式非默认调整生效/意图基准偏好派生修复/后端 preset=standard 恒空策略不叠加 P1 已实施 v0.19.4 2026-09-04 用户裁决两者都做;污染三通道盘点证据见 v0.19.4 文档 §6;代码已交付(2026-09-04,39dd1a7)
REQ-280 笔记联合整理(相似内容汇总整理,维护笔记有序性)——远期登记 P3 待评估 后续再议 2026-09-04 思考结论:相似判定依赖 v0.19.5 本地嵌入;建议制确认+版本链回滚复用既有模式;本批不实施,四子问题存档于 v0.19.4 文档 §7

v0.19.6 · 用户反馈批一:焦点采集/标题内容化/拖拽修复/精修埋点(2026-09-05 裁决立项)

依据:用户 2026-09-05 反馈批 9 项逐项讨论裁决(第 8 项执行型智能体立项另文规划,建议 v0.21 系列;其余切 v0.19.6~8); 设计:2026-09-05-v0.19-feedback-batch-design.md + 2026-09-05-goal-execution-agent-design.md; 排期:v0.19.6(2.1 帧心跳/watchdog · 2.4 拖拽修复 · 2.2A 标题零 AI 层 · 2.8 埋点先行)→ v0.19.7(2.3 开关入弹层 · 2.5 挂体系轻建 · 2.6 列表交互重构 · 2.8 流式+预算)→ v0.19.8(2.2B AI 标题建议 · 2.7 体系 D1/D2)。

REQ 需求 优先级 状态 目标版本 备注
REQ-281 画面停更检测与捕获会话自愈:帧心跳(live:frame-heartbeat 每 2s:backend/新帧/计数/可见性)+ WGC 静默 watchdog(visible 且 5s 无新帧→重建,节流 30s)+ live:frame-stalled 轻提示横幅(区别于窗口丢失)+ 末帧保留 P1 已实施 v0.19.6 用户双屏复现:视频本身在动→我方链路;ScreenStats 计数已备仅未外露;watchdog 纯状态机单测
REQ-282 会话标题内容化 A 层(零 AI):来源名净化+同源去重后缀(抖音 #2)+ 融合完成首句升级(8–40 字过 UI 垃圾/纯音乐不升级)+ sessions.title_kind(source/manual,改名=manual 停止覆写)+ 详情头改名入口(update_session_title + data:sessions-changed) P1 已实施 v0.19.6 title_kind 幂等加列零重建;纯函数 golden 单测
REQ-283 会话标题 AI 建议层:titleSuggestEnabled 默认关独立开关 + 会话结束轻任务(前 3000 字清洗转写 ≤1K token → ≤20 字标题 JSON)+ 精修采纳后基于精修稿刷新一次 + 徽标采纳/忽略(toast 可撤销) P2 已立项 v0.19.8 AI 增强可选总则;op_type title_suggest;失败静默零阻断
REQ-284 画面理解开关入精修发起弹层:会话级弹层 checkbox(初值=全局)+ 任务级覆写传参(resolve 纯函数覆写优先)+「设为默认」显式写回全局(单向)+ 生效来源文案 P1 已实施 v0.19.7 笔记级不显示;设置页保持总入口
REQ-285 ColumnResizer 全站增量拖拽修复:move 传相邻增量(lastX)替代累计位移;补 pointer 序列单测(50→70→80=[20,10]) P1 已实施 v0.19.6 根因:增量语义 resizeBy 收到累计 dx 重复累加=「加速」
REQ-286 挂体系弹层搜索+三类内联轻建:实体区改 Tab+搜索列表(树形缩进选父锚点)+ 零命中「+新建『x』」即建即选(问题挂所选父/概念模型体系级平铺)+ 空体系引导按钮 P1 已实施 v0.19.7 SearchSelectList 通用零依赖;轻建=名称级详情后补;键盘 ↑↓/Enter/Esc 两段式
REQ-287 笔记列表交互重构:去行内 checkbox + Ctrl/Shift 修饰多选与「批量选择」模式 + 单击选中右栏读 + 即时拖拽(跨组=组行/组头双 drop;组内=手动排序模式 note_groups.order_mode+notes.order_index 命令族)+ 划过加选(空白锚点)+ 批量栏扩(删除/移动到组)+ 右键选集菜单(交互矩阵 §2.6/2.9) P1 已实施 v0.19.7 HTML5 DnD 保留观察项;列表键盘导航观察项
REQ-288 体系 D1 证据反推生长:未挂接证据源 embedding 聚类(引擎缺=诚实降级关键词簇)→ 建议簇卡片(拟问题文案可编辑/相似节点查重/基于此新建/忽略软隐藏)——建节点不自动挂(红线) P2 已立项 v0.19.8 解决冷启动与"树不生长";kb_evidence 纯函数+golden
REQ-289 体系 D2 节点缺口仪表:system_node_gaps 现算(证据分型数/最近引用/90·180 天 stale/三问未填/无应用记录)+ 缺口清单 [加入目标]→里程碑草稿(toast 去向反馈) P2 已立项 v0.19.8 执行型 agent P0 输入源;零双写
REQ-290 AI 精修加速:①片内流式(SSE 复用 parse_sse_line + RefineStreamFrame::Delta + 顺序呈现规则)②档位输出预算化(prompts 声明 output_budget_chars + max_tokens 按档收敛)③链路埋点(片 t0/首 delta/结束,A/B 基线) P1 已实施 v0.19.6/7 v0.19.6 先埋点取基线,v0.19.7 上流式+预算;直连无中转;validate/审计语义零变化
REQ-291 视频暂停随播随停(声画双通道即时检测):音频 200ms RMS 连续静默 ≈0.6s=疑似暂停 + 画面 tick ≤1s 无变化互证=确认暂停(滞回防缓冲动画误判)→ 沿用 P2 自动暂停语义(画面链冻结+会话时间轴扣除暂停段+末帧保留);恢复=声/画任一恢复 ≤0.5s;live:media-paused/resumed 事件+课堂页「⏸ 已随视频暂停」徽标;同时作 REQ-281 watchdog 的互斥门(真暂停不误报停更);替代 player_behavior 5s OCR 判定为主通道 P1 已实施 v0.19.7 2026-09-05 用户裁决:认可双通道方案+扣除暂停段时间轴语义;信号全现成零新采集成本;audio_active 共享槽+media_state 纯状态机+阈值真机标定

v0.20 · ASR 质量增强(2026-09-03 用户裁决立项 C:P0~P2)

依据:repowiki+代码互证盘点(阈值经验化/实时缺全量精修/无混淆画像/三处文档落差)+ 用户裁决(① 验证必须代码自验证 ② 立项范围 C); 设计:asr-optimization-plan.md(决策稿) + ADR-030(已接受)+ v0.20 版本文档; 排期:v0.20.0(P0 harness+首轮报告)→ v0.20.1(P1 DTW 接线/参数 A-B 定案/热词加固/积压验证)→ v0.20.2(P2 全量精修/混淆画像闭环/LLM 校对);退出标准全为代码自验证。

REQ 需求 优先级 状态 目标版本 备注
REQ-263 asr_eval 自验证 harness:批量样本转写(流式/离线/参数矩阵/预处理开关)→ dtw 对齐 → CER/混淆画像 → A-B 对比表 → 回归退出码(CI)+ 有参考样本 fixtures 固化 + 首轮自测报告(含漂移分布) P1 已实施(2026-09-05 首轮:M1 纯函数层/M2 双路 harness/M2b 会话信道;真机数据面验收待执行) v0.20.0(P0) 参考信道:字幕轨>字幕OCR>会话字幕段;无参考不进 CER;复用 cer_bench/cer.rs/dtw_align/asr_forensic;首轮报告(已归档);缺口:本机无 ≥3 段字幕会话(真参考/漂移待素材)、GBK SRT 与 CI e2e 接线 P1
REQ-264 DTW 漂移校正生产接线(dtw_align 纯函数已备、现无调用点):接入字幕融合入口 + 漂移估计分布统计 P1 已实施(2026-09-05:correct_drift_if_any 生产包装 + rewrite_with_fusion 融合前校正接线;漂移统计=harness 会话信道已有) v0.20.1(P1) 字幕权威路线错位主因;门槛:段数 ≥3、带内 200ms~15s 才采纳(过小=抖动/过大=异常拒动),未采纳保留测量日志;dtw 单测 11 绿(含新 4);全量回归 9 例既有失败处置:7 例测试纠偏/分隔符即修(a33737e,title_rules/frame_liveness/ndjson_feed),2 例 note_filter = 既有 TD-2026-08-30-B 复现(2026-09-05 注记)
REQ-265 参数定案族:预处理默认定案 + VAD 预热/窗口/倍率、端点 rule1/2/3、重打分门限、融合 gap/SIM/权重、去重阈值——asr_eval 自动 A/B 标定 + 配置化/档案化(JSON/audio_preproc_config 先例) P1 已实施(2026-09-05:55cbd02 档案化骨架 + 注入面 + c433485 首轮标定定案——端点 rule3 默认 8s→12s(5/5 一致改善)、rule1 维持 2.4s;结论页(已归档)) v0.20.1(P1) 向后兼容:未设档默认生效零迁移;asr-params.json 可覆盖可回退;族内余项(VAD/重打分门限/融合/去重阈值标定、预处理默认定案复核)登记续延标定批
REQ-266 热词加固与注入源扩展:tokens 表外字过滤/崩溃防护单测 + 标题/章节/术语候选自动注入(领域细分已有) P1 已实施(2026-09-05:7abc9a3 防护单测 4 例 + title_hotword_candidates 纯函数与 3 测 + preheat 命令 title 参数扩展;85a836c 前端预热传标题接线) v0.20.1(P1) 感知质量主战场(术语/专名错);标题源已接线(changeDomain 预热即注入);章节词源随采集侧 profile 再检测批接线(登记开放);术语源=glossary 确认闭环已有;tokens 表外字由 use-time filter 兜底
REQ-267 重打分积压验证与停止 drain 策略(3s 有界超时下的 channel 积压/慢机内容缺失) P1 已实施(2026-09-05:防线核实=live-loop 停止宽限 drain(8s,可观测日志)已存在 + engine 超时排空(三维复审 #5)已存在 + c433485 补排空专用单测(持活 receiver 队列→逐条 Err 清空)与超时计数既有测;harness 流式档近似口径不含重打分,慢速档回放=真链路集成级,登记真机会话实测) v0.20.1(P1) harness 慢速档回放验证
REQ-268 会话全量离线精修档:会话结束 S4 落盘音频全量 SenseVoice 第二遍 → 段级 diff → 预览采纳/回退(原料不可变、替换段标记来源/置信) P1 已实施(2026-09-06:fc8e862 后端——asr_pass2 纯逻辑(窗规划/propose 门限/effective+overlay 合成)、session_refine_drafts 草稿表(origin/source/confidence/similarity/status 全标记,REQ-270 共用)、second_pass_start/cancel/list/decide 命令(后台可取消+session:refine2:* 事件)、转笔记装载有效轴合成接线;f168fa0 前端——⚡离线精修裁决面板+详情入口;原料不可变单测/overlay 8 例/db 5 例全绿) v0.20.2(P2) 实时会话获得导入同级离线质量;O4 登记项落地;重跑=清 pending 留裁决史;v0.20.1 并行线同库合流(c433485~dad00da4)
REQ-269 ASR 同音混淆画像闭环:画像→候选纠错表(共现才替换、确认制,OCR ocr_confusion 机制迁移)→ 反哺 hotwords;JSON 可校准 P2 已实施(2026-09-06:9612216 后端——asr_confusion 画像/规则/忽略三态 JSON 表、采纳流自动采集(second_pass_decide 接线)、词级候选(含单字同音对)+ 确认制(共现才替换 apply_rules)+ 反哺热词命令;05494f4 前端——设置页「ASR 纠错」候选确认面板;13 单测(门槛/确认/忽略/共现门/JSON 往返)+ 全量回归绿) v0.20.2(P2) 术语/专名错自动发现与修正;规则只作用产物文本(原料不可变);单字对风险=确认制+共现守卫+可删规则三重把关
REQ-270 可选 LLM 文本校对:建议制逐句 + content_gate 默认关 + 成本审计;仅文本上云(语音不出本机红线);离线降级规则 P2 已实施(2026-09-06:1904c2c 后端——ai_settings.proofread_enabled 默认关+proofread_gate+ai_set_proofread、ai_proofread 纯逻辑(分句/分块/提示词/解析校验,7 单测)、commands_proofread estimate/run/list(per-run authorized+Provider 就绪+240 句护栏+ai_tasks 记账);19ca5cb 前端——设置开关 + 会话详情 🔤 校对面板(预估/授权勾选/建议裁决)) v0.20.2(P2) 复用 ai_platform(本地 Ollama/云端 BYOK);人类裁决=裁决走草稿通道(采纳/回退与 REQ-268 同轴);网络失败零草稿明确报错(原文零触碰);v0.20.2 三需求全部落地

V1.0 · 体验增强(远期)

ID 需求 优先级 状态 目标版本 备注
REQ-056 补缝式 AI 实装:Qwen-VL 接入+授权计费+配额+审计 UI P1 待评估 V1.0 复用 REQ-055 协议与 mock;用户授权默认关闭;上传预览;审计可见化;⚠️ REQ-055 的实现已于批 1 删除(2026-09-12)⇒ 若重启,需按 ADR-023 的图片理解通道重新设计,不再复用已删协议
REQ-057 PP-Structure 模型组完整版:layout 模型+SLANet+UniMERNet 统一管理 P2 部分落地(v0.5.0) V1.0 余项 layout/SLANet/公式模型已经 oar-ocr OARStructure 落地(按需下载);余项:无线表格/手写公式模型增强(规则版"半做"边界覆盖)
REQ-058 流程图语义重建:AI 补缝返回 nodes/edges 结构 P2 待评估 V1.0 本地规则版 0.5.0 仅区域标记;Mermaid 渲染可选
REQ-093 AI 参考图上下文:补缝/问答自动附带相关图作视觉上下文 P2 待评估 V1.0 2026-08-19 头脑风暴(图像复用);C14 授权维度已有,"自动选图"规则未定义;依赖 REQ-056
REQ-094 AI 描述影子缓存:每图一次 VLM 描述 → 搜索/分类/卡生成/问答多下游复用 P1 待评估 V1.0 2026-08-19 头脑风暴(图像复用);成本关键(防重复传图付费);协议随 REQ-056 一同设计
ID 需求 优先级 状态 目标版本 备注
REQ-021 生成式复习:先回忆后揭示(P30) P2 待评估 V1.0 默认开启
REQ-022 高自信错误追踪(黄金错误)(P40) P2 待评估 V1.0 增加错误卡片复习频率
REQ-023 转写时间轴回放与可编辑 P2 待评估 V1.0 点击跳转 ≤500ms
REQ-024 AI 多轮问答:基于会话上下文(P8) P2 待评估 V1.0 云端多模态;离线队列
REQ-025 热词/替换词表 + 口语书面化 + AI 笔记精修 P2 待评估 V1.0 本地存储;可开关;热词/替换词表本地部分已提前至 v0.4.0(REQ-040)
REQ-032 会话段派生视图:原始段与融合轴分离 P2 已立项 V1.0 ADR-006;session_segments 保留原始段(含置信度),融合结果独立表(fused_at);支持重算融合/可信度审计/离线精修(O1/O4 前置);涉 ADR-004/005 数据模型变更
REQ-089 图↔段落双向跳转:画廊/笔记点图 → 定位讲解段落+时间点;段落点选 → 高亮相关图 P2 待评估 V1.0 2026-08-19 头脑风暴(图像复用);以文搜图已有,反向语义跳转缺失;图↔段时间戳对齐已有
REQ-090 课中参考面板:参考图集图钉侧栏边学边对照;支持新会话手动加载 P2 待评估 V1.0 2026-08-19 头脑风暴(图像复用);C7 截图入图集为入口,本项为消费端
REQ-091 课前回温包:新会话自动带出上次会话关键图 P2 待评估 V1.0 2026-08-19 头脑风暴(图像复用);P16 中断恢复的图版
REQ-092 术语↔图关联:术语表条目挂"出现过的图" P3 待评估 V1.0 2026-08-19 头脑风暴(图像复用);C3 术语表与三层图打通
REQ-095 导出带图:笔记导出/Anki 包内嵌图 P3 待评估 V1.0 2026-08-19 头脑风暴(图像复用);引用不复制原则扩展到导出

V1.1+ · 差异化(更远期)

ID 需求 优先级 状态 目标版本 备注
REQ-026 章节速览/思维导图 P3 待评估 V1.1 依赖时间轴
REQ-027 重点标记→闪卡自动联动 P3 待评估 V1.1 竞品无此闭环
REQ-028 中英混说识别 P3 待评估 V1.1 先做本地模型 spike
REQ-029 知识图谱可视化(P13) P3 待评估 远期 高成本;2026-08-23 联动(ADR-024):体系层(有界体系)落地后本项含义降为"体系数据可视化补充",维持 P3;不做力导向图(Heptabase 已占位 + P13)
REQ-030 学习计划系统(P17) P3 已激活(v0.18.0 系列立项) v0.18.0 目标→任务→追踪;2026-09-02 激活:目标层定位=意图层(目标=组的容器 N:M、访谈式设定、判据配方、四态生命周期),拆分登记为 REQ-248~250;后续:生成式复习(REQ-021 单独立项)依赖本线自测链路
REQ-096 跨会话图指纹关联:相同图跨课程出现 → 课程关联(P13 轻量版) P3 待评估 V1.1 2026-08-19 头脑风暴(图像复用);REQ-067 指纹的消费端
REQ-097 测验引用图:测验自生成时图表作题干素材 P3 待评估 V1.1 2026-08-19 头脑风暴(图像复用);依赖 K2 测验自生成

v0.20 系列立项批(2026-09-05 用户裁决:行动/SOP 后处理批 + web 采集素材批,均在 v0.20 实现)

依据:v0.20 版本文档支线(决策/数据模型/交互/命令面/G1-G7) · web 采集 Foresight 定案 · 四路深研(任务方法论/清单科学/SOP 软件/集成形态)——批号(v0.20.3/v0.20.4)与实施序见 v0.20 版本文档。

ID 需求 优先级 状态 目标版本 备注
REQ-292 行动底座:task_index 增量索引(保存钩子重扫)+ 回写原子层(parse/migrate/replace_line 纯函数,全入口收敛) P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 后处理支线;勾选继续走既有字符级回写
REQ-293 行动中心:待办裁决队列 UI(逾期/计划日/搁置/待提炼四区 + ✓完成/📅改期/🎴转卡/⤴迁出/✗放弃留因 行操作) P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档;v0.20.5 入口变更:独立为顶层「✅ 行动」Tab、组侧栏按钮/徽标移除——b78ddae7) v0.20 系列 锚定 ReviewSessionOverlay/GroupSidebar 模式;v0.20.5 起页面化(ActionPage + action-center/ 目录,见 spec)
REQ-294 周回顾裁决仪式:逾期未办逐条裁决(执行/改期/转闪卡/迁出/有意识放弃)+ 完成史周视图 + batch_weekly_resolve 单事务 P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 "不留死尸的机制是裁决不是自动清理"
REQ-295 迁出通道集:保底三件套(复制 todo.txt 行/导出 .todo.txt/邮件说明)+ Todoist todoist://quickadd 与滴答 x-callback(先探测注册);REST+keyring(ADR-016 DPAPI)二期;迁出=放手+手动回填(无 API 轮询) P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 内容随迁出文本携带;回填入完成史
REQ-296 SOP 功能区:模板(段落行范围引用,无双写,≤50 步)+ 双模式执行(READ-DO 单步引导/DO-CONFIRM 总览核对)+ 预期结果/暂停点/失败点轻分支 + run 档案(轨迹/证据/复跑对比/保鲜 diff) P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 证据复用图片三入口+notes-images
REQ-297 SOP 演进:run 史聚合失败步 → 修订建议(v1 纯本地提示,AI 拟稿后置)+ 版本化复用 notes 版本链 + 模板生成入口(编辑态选区/课堂素材半自动草稿) P2 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 用户自定义一等约束
REQ-298 完成史:completion_history 统一事件(done/abandoned/exported/export_manual_done/practice_tick/sop_run)+ 周回顾原料 + Goals 回顾流接入 P1 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 完成即证据;成长轨迹唯一数据源
REQ-299 练习条目:practice_items(frequency daily|manual/goal/mastery/next_due)+ 打点 + 宽容缺勤只记史;练习曲线 P2 P2 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 闪卡外第二条复利曲线接口预留
REQ-300 问题清单(Me 问题化):questions 表 + 笔记段「转为问题」提炼入口 + 行动中心「❓ 问题」页签(open/answered/archived);「问题→复习卡」出口 P2 P2 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 核心处理 γ 分类型特化
REQ-301 SE/AI 封存标记:tag 标记(#树洞/氛围标签)+ 列表/复习面默认排除(设置可显);AI 随机漫步入口 P2 P2 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 核心处理 γ;tags 已有零新表
REQ-302 M 模型卡提炼接线:笔记段 → 模型卡草稿 → 复习面;先核对现有 model 卡生成路径防双轨 P2 已实施(2026-09-06 v0.20.3 批:c78e294~7dd8af2 提交链,逐 REQ 备注见版本文档) v0.20 系列 核心处理 γ;RouteInfoPopover「model 卡纳入体系」先例
REQ-303 web 采集阶段 1 内核:课堂助手动线区「URL 采集」入口 → 本地抽取管线(静态直取 + 隐藏 wry 注入 readability 系兜底)→ kind=web 会话 + BodySource::Web + 元数据(URL/站点/作者/时间入 properties)+ 标题锚点回链 → 转笔记复用 P1 已实施(2026-09-06 v0.20.4 批:c47e394~1f0bace 提交链——URL 内核/扩展收件薄壳/整页快照静态档;渲染型快照与截图兜底登记后置,见 v0.20.md 与协议文档) v0.20 系列 Foresight 定案;正文失败降级原 HTML 附件;SPA 缺口由阶段 2 覆盖
REQ-304 web 采集阶段 2 扩展薄壳:浏览器扩展(登录态 DOM 抽取:readability+turndown → MD+元数据)→ 本地 loopback 收件服务(127.0.0.1+随机 token+/ping 探测)→ 图 base64 落盘改写引用 P2 已实施(2026-09-06 v0.20.4 批:c47e394~1f0bace 提交链——URL 内核/扩展收件薄壳/整页快照静态档;渲染型快照与截图兜底登记后置,见 v0.20.md 与协议文档) v0.20 系列 登录墙(公众号/知乎)正解;只绑 loopback+CORS+单向投递安全边界
REQ-305 web 采集阶段 3 整页快照:隐藏 wry 窗口 DOM+子资源内联(自研 core.js,规避 SingleFile AGPL)+ monolith(CC0)静态降级 + 截图兜底链 P2 已实施(2026-09-06 v0.20.4 批:c47e394~1f0bace 提交链——URL 内核/扩展收件薄壳/整页快照静态档;渲染型快照与截图兜底登记后置,见 v0.20.md 与协议文档) v0.20 系列 富格式/整页快照;WebView2 无 MHTML API 已否决
REQ-306 AI 任务 id 数据安全(重启防复用顶替历史行):启动恢复的 id 序列基准由「恢复集(succeeded 且未采纳)max」改为「ai_tasks 表全表 max」——已采纳/failed/proofread/goal_plan 等 id 更大的行不再被重启后新任务复用(insert_ai_task 的 INSERT OR REPLACE 曾静默顶替含已采纳的历史行——结果/成本/轨迹丢失) P1 已实施(2026-09-09 批 1 审查修复:db_ai_tasks max_ai_task_id + commands_ai_refine task_seq_lower_bound 纯函数(配单测)+ app_setup 恢复块基准改造,提交见 v0.20.md v0.20.6 交付记录) v0.20 系列 审查清单批 1 项 1(数据安全);查询失败降级为旧恢复集口径不放大风险
REQ-307 AI 任务视图刷新与标题/采纳口径:ChatPage active 门控切回重同步 + ai:task-update 终态事件订阅(保活挂载下别页完成的任务侧栏即时新增);任务标题按 target_kind 分发(笔记级精修查笔记标题、enrich 恒笔记级、target_kind=NULL 旧数据 session 兜底——entityLabel.taskRefLabel 单一来源);AiTaskPanel 精修采纳按 target_kind 分发(笔记级走 ai_note_refine_apply,原恒传 sessionId 报「会话不存在」);AI 任务段补「非聊天会话」语义说明 P1 已实施(2026-09-09 批 1 审查修复:entityLabel 纯函数 + 三处调用方 + ChatPage/App + AiTaskPanel + ChatSidebar,提交见 v0.20.md v0.20.6 交付记录) v0.20 系列 审查清单批 1 项 2~5(刷新缺口/标题错位/采纳链/UI 语义)
REQ-308 暂停语义修复(延迟与快速恢复丢内容):暂停来源单状态机(manual/media/foreground——manual 锁存、auto 条件互不解除、解除瞬间重评估)+ 暂停边沿 flush 跳过 SenseVoice 整句重打分(flush_no_rescore,停止路径保留)+ seq 代数补偿漏边沿(合成 Pause/Resume 事件对 + 按暂停边界切断链式合并,恢复时刻 clamp 保 DB 单调)+ 事件/DB 载荷 reason 化 P1 已实施(2026-09-09 批 2a:pause_state/live_session_pause 纯函数(25 例单测)+ streaming_asr 参数化 + persist rescore 参数,提交见 v0.20.md v0.20.7 交付记录) v0.20 系列 用户 11 项问题 1;ADR-013 决策 2 语义由 ADR-031 修订
REQ-309 前台离开自动暂停(定制语义):被采集锚定窗口离开前台→自动暂停(reason=foreground)、回前台→自动恢复;仅键盘失焦/熵减自身失前台/软件内切页不触发;手动暂停不被自动解除(manual 锁存);无窗口锚定采集(全屏/纯音频档案)规则停摆并文档写明 P1 已实施(2026-09-09 批 2a:foreground_pause.rs ForegroundGate 250ms×2 滞回 + windows.rs is_self_hwnd 自窗中性 + frame worker 全部直写点收敛 request API,提交见 v0.20.md v0.20.7 交付记录) v0.20 系列 用户 11 项问题 2;前台判定阈值真机标定开放项
REQ-310 采集控制状态单一来源(切页/事件丢失后 UI 回退修复):每窗口 CaptureStatusProvider(挂载查询含 paused_reason + 事件订阅 + 5s 看门狗回查 + 守卫错误自愈),课堂页/浮窗/导航徽标/右栏收口同一事实源;徽标/浮窗 reason 三态文案;移除 media-* 与 live:paused/resumed 的全部二级订阅(grep 收口仅剩 provider);顺带修复刷新后徽标空白旧债 P1 已实施(2026-09-09 批 2b:liveCaptureState 纯 reducer(16 例单测)+ useLiveCaptureControl provider + 三窗接入(App/ClassroomPage/CaptureFloatPanel/LiveActivityPanel/useLiveSessionEvents),提交见 v0.20.md v0.20.7 交付记录) v0.20 系列 用户 11 项问题 3;架构见 ADR-031
REQ-311 笔记滚动到底居中(统一底部留白):根因=滚动行程在内容末尾耗尽(末段贴容器底边无法上移居中,非双层滚动);统一 BOTTOM_BREATHER(约视区高 1/3,max(96px, 33vh))供阅读容器/CodeMirror .cm-content/textarea 降级三滚动面同源消费;锚点 scrollIntoView(start|center) 与大纲/搜索定位不受影响 P2 已实施(2026-09-09 批 3:utils/contentBreather.ts + NoteReadingView/RichEditorView/NoteEditView 三面接线,提交见 v0.20.md v0.20.8 交付记录) v0.20 系列 用户 11 项问题 9;会话页 NotePreviewView 等同构面如再现同法修
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 因基线含锚点草稿可能与剥离锚点展示文本错位
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;课程分组=派生视图非实体,移至组/合并/导出/归档已与用户确认排除;右键删除走单条动线、批量删除走新命令
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/深链 + 笔记域拆件(拆件行数演进以 line-limit-exemptions.md 实测为准),提交见 v0.20.md v0.20.10 交付记录) v0.20 系列 用户 11 项问题 6;顶层 Tab=9 收纳观察启动(spec §9,只登记不做);设计见 2026-09-09 spec([ ] 已归档);v0.20.5 spec §9 二期预留兑现
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 模式不置顶=模式语义(后端排序负责)
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 无软删先例一致)
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 技术债清单

优先级定义

优先级 含义
P0 阻塞当前阶段,必须立即做
P1 近期版本必须包含
P2 排期做
P3 观察/待定(远期)

状态流转

待评估 → 已立项(关联 prd-template 产出 PRD)→ 已排期(进入 versions/vX.Y.Z.md)→ 已实现(验收后关闭)

维护规则

  • 新需求从 prd-template.md 补充详情
  • 已实现需求标记关闭并注明版本,保留一行记录(追溯)
  • 需求变更走评审:变更影响范围、优先级、排期