Skip to content

Commit effa77c

Browse files
committed
docs(capture): v0.19.2 版本文档与需求登记(REQ-271~273,REQ-261/259 顺延)
1 parent dd5f9b2 commit effa77c

4 files changed

Lines changed: 50 additions & 5 deletions

File tree

‎docs/product/requirements-pool.md‎

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,15 +457,26 @@
457457

458458
> 依据:用户 2026-09-03 方向裁决「方案三:派生索引+双读路径+人工裁决闭环」(加一层能力 + 换引擎良性内核;整体重定位/引擎替换否决);检索欠账核实(FTS5 未实装、/goal L3 为标题占位)后立项;
459459
> 设计:[2026-09-03-v0.19-rag-retrieval-discovery-design.md([ ] 已归档)](../archive/2026-09-03/2026-09-03-v0.19-rag-retrieval-discovery-design.md) + [ADR-029](../adr/ADR-029-rag-retrieval-discovery-layer.md)(已接受);
460-
> 排期:M0 spike → v0.19.0(索引基建)→ v0.19.1(学习库问答)→ v0.19.2(检索建议)→ v0.19.3(语义增强,spike 定案后)。
460+
> 排期:M0 spike → v0.19.0(索引基建)→ v0.19.1(学习库问答)→ v0.19.2(采集体验小版本——用户实测插队,见下段)→ v0.19.3(检索建议)→ v0.19.4(语义增强,spike 定案后)。
461461
462462
| REQ | 需求 | 优先级 | 状态 | 目标版本 | 备注 |
463463
|----|------|--------|------|---------|------|
464464
| 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 合流)** |
465-
| 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.3(spike 定案后) | 无模型 = FTS-only 降级,不阻塞 v0.19.0~2;模型文件不入库 |
465+
| 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.4(spike 定案后) | 无模型 = FTS-only 降级,不阻塞 v0.19.0~2;模型文件不入库;**2026-09-03 顺延:v0.19.2 采集体验小版本用户实测插队(原 v0.19.3)** |
466466
| 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 + 笔记内命中词搜索高亮 + 设置「学习库」段)** |
467-
| REQ-261 | 检索建议(发现路径):概念/节点详情「相关素材建议」候选(混合检索 top-K ≤10,排除已链接)→ 人工勾选确认 → 既有 link_knowledge_target 落库(白名单零迁移)+ 跨体系相似概念提示(提示型不自动合并) | P2 | 已立项 | v0.19.2 | kb_discovery 默认关(交叉点默认关延续);建议不落库零双写 |
468-
| REQ-262 | 治理与设置:SettingsPage「学习库」段(引擎状态/模型下载/索引统计与重建/发现开关)+ FTS5 使能核查 + 中文 BM25 切词校准 | P2 | 部分落地(v0.19.0~1) | v0.19 系列随批 | 复用 speaker/OCR 模型下载 UI 范式;**已交付(2026-09-03):FTS5 使能核查(bundled 恒编 FTS5)+ 中文切词校准定案(trigram)+ 设置「学习库」段(引擎状态/问答开关与档位/统计/重建);模型下载与发现开关随 v0.19.3/v0.19.2** |
467+
| REQ-261 | 检索建议(发现路径):概念/节点详情「相关素材建议」候选(混合检索 top-K ≤10,排除已链接)→ 人工勾选确认 → 既有 link_knowledge_target 落库(白名单零迁移)+ 跨体系相似概念提示(提示型不自动合并) | P2 | 已立项 | v0.19.3 | kb_discovery 默认关(交叉点默认关延续);建议不落库零双写;**2026-09-03 顺延:v0.19.2 采集体验小版本用户实测插队** |
468+
| REQ-262 | 治理与设置:SettingsPage「学习库」段(引擎状态/模型下载/索引统计与重建/发现开关)+ FTS5 使能核查 + 中文 BM25 切词校准 | P2 | 部分落地(v0.19.0~1) | v0.19 系列随批 | 复用 speaker/OCR 模型下载 UI 范式;**已交付(2026-09-03):FTS5 使能核查(bundled 恒编 FTS5)+ 中文切词校准定案(trigram)+ 设置「学习库」段(引擎状态/问答开关与档位/统计/重建);模型下载随 v0.19.4、发现开关随 v0.19.3** |
469+
470+
### v0.19.2 · 采集体验小版本(2026-09-03 用户实测插队立项)
471+
472+
> 依据:用户实测 4 点反馈逐项裁决(B站独立播放窗口/抖音固定标题仅能全窗口选择 · 系统进程未过滤 · 点开始不等待引擎就绪);
473+
> 设计/记录:[v0.19.2 版本文档](../versions/v0.19.2.md);前置修复:live 预热 StrictMode 双跑语义收敛(802a370)。
474+
475+
| REQ | 需求 | 优先级 | 状态 | 目标版本 | 备注 |
476+
|----|------|--------|------|---------|------|
477+
| REQ-271 | 系统窗口过滤:window_filter 系统进程白名单(explorer/notepad/cmd/powershell/WindowsTerminal/taskmgr/UWP 宿主等)+ CaptureWindow.systemWindow + 前端默认隐藏(开关找回,能力不丢) | P1 | 已实施 | v0.19.2 | 纯函数+单测;进程名精确匹配不猜标题;**代码已交付(2026-09-03,dd5f9b2)** |
478+
| REQ-272 | 站点/播放器可达性与活跃置顶:评分表补抖音/快手/B站客户端(标题+进程)+ CaptureWindow.zOrder(EnumWindows 序号)推荐区同级按 z 序——活跃窗口自然靠前 | P1 | 已实施 | v0.19.2 | 真"播放中"检测(OCR/音频轮询)成本高,z 序为零成本近似——观察项;**代码已交付(2026-09-03,dd5f9b2)** |
479+
| REQ-273 | 开始即录就绪门控:start 有界等待 5s→15s(CUDA 冷载);超时取消+会话行回滚+明确报错(不再双引擎重载);前端启动过渡态——recording 事件(引擎真就绪、AV 同刻)前不显示暂停/浮窗等采集中控件 | P1 | 已实施 | v0.19.2 | 双击防抖(starting 闸);wasEngineReady 分流防内联提前置活动态;**代码已交付(2026-09-03,dd5f9b2)** |
469480

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

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@
6969
| app/src-tauri/src/commands_ai_settings.rs | 330 | AI 设置命令域(视图/密钥/授权/目标 AI) + v0.19.1 ai_set_kb_qa 最小面命令(+28)——read-modify-write 同域先例(ai_set_goal_plan)内聚 | 若再增长:kb/goal 最小面命令拆至 commands_ai_settings_extra.rs |
7070
| app/src-tauri/src/db_ai_chat.rs | 309 | AI 对话双表仓储 + v0.19.1(REQ-260)retrieval/meta_json 补列与行映射(+42)——SQL/行映射内聚(db_* 文件先例) | 若再增长:消息侧读写拆至 db_ai_chat_messages.rs |
7171
| app/src-tauri/src/db_fragments.rs | 309 | 碎片数据层 + v0.19.0(REQ-258)索引生命周期钩子(建/删/升笔记事务内清块重建,+16)——promote 显式事务与知识链接清理同域 | 若再增长:promote_fragment_to_note 事务拆至 db_fragments_promote.rs |
72+
| app/src-tauri/src/windows.rs | 342 | 窗口枚举/评分域 + v0.19.2(REQ-271/272):CaptureWindow.zOrder/systemWindow 字段 + 抖音/快手/B站客户端评分表(+28)——枚举系统副作用与评分纯函数同域便于单测(既有模式) | 若再增长:z 序/系统标记纯函数拆至 windows_meta.rs |
73+
| app/src-tauri/src/live_session_lifecycle.rs | 301 | 会话启动/预热生命周期 + v0.19.2(REQ-273)15s 就绪等待与超时回滚(+11)——start/prepare/release 与等待/回退策略强耦合于 impl 生命周期域 | 若再增长:wait_prepared_ready 与回退策略拆至 live_session_start.rs |
7274

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

7577
| 文件 | 行数 | 豁免理由 | 拆分计划 |
7678
|------|------|---------|---------|
77-
| app/src/pages/ClassroomPage.tsx | 607 | 装配层页面:左栏配置区(就绪清单/窗口选择/实时捕获/视频导入/OCR 设备/词表/素材)+ 右栏内容区;v0.15 左栏列状态(useColumnLayout 折叠/拖拽)再增——**注意:超 600 硬限为预存债务(v0.14 前已越线,登记值 547 为过期快照),本版据实测 607 纠偏并承接拆分计划** | 若再增长:将实时捕获卡片拆出 LiveCaptureCard(状态与事件监听下沉)——超硬限必须拆 |
79+
| app/src/pages/ClassroomPage.tsx | 702 | 装配层页面:左栏配置区(就绪清单/窗口选择/实时捕获/视频导入/OCR 设备/词表/素材)+ 右栏内容区;v0.15 左栏列状态再增;v0.19.2(REQ-271/273)系统窗口开关与启动过渡态(+59,实测 702)——**超 600 硬限为预存债务(TD-2026-08-30-A:v0.14 前已越线)持续累增,拆分计划(LiveCaptureCard)顺延待执行** | 若再增长:将实时捕获卡片拆出 LiveCaptureCard(状态与事件监听下沉)——超硬限必须拆 |
7880
| app/src/components/LiveActivityPanel.tsx | 510 | 实时活动面板:会话状态/转录流/OCR 预览/控制区多状态面板内聚(前端审查登记) | 若再增长:转录流与 OCR 预览拆至 LiveTranscriptStream.tsx / LiveOcrPreview.tsx |
7981
| app/src/components/SessionListPanel.tsx | 491 | v0.7.1 拆分产物:列表域 UI(双模式搜索/筛选排序/课程分组折叠/批量操作栏/内联转化)内聚——筛选/排序/选择为面板本地状态;v0.15 宽度 prop 适配(实测较登记值 501 回落) | 若再增长:批量操作栏与列表项拆至 SessionListRow.tsx |
8082
| app/src/components/AiServicePanel.tsx | 390 | v0.8.0 M1(REQ-138/139/140)AI 服务设置面板:全局开关/密钥管理(掩码+DPAPI 保存)/端点模型/测试连接/余额卡片/授权确认卡/审计列表——配置面板 UI 内聚 | 若再增长:余额卡片与审计列表拆至 AiBalanceCard.tsx / AiAuditList.tsx |

‎docs/versions/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
| v0.18.2 | [v0.18.2.md](./v0.18.2.md) — AI 目标规划师:规划建议+体系深度联动(建议制·默认关;协议/预算/摘要/弱项/双入口确认流已交付——REQ-251~254,ADR-028) | 版本文档(M1 批已实施 2026-09-02,设置段/`/goal` 下批) |
5252
| v0.19.0 | [v0.19.0.md](./v0.19.0.md) — 检索与发现层·索引基建:kb 派生三表 + 生命周期钩子 + reindex_all/stats + kb_search 全库混合检索(切词校准=trigram+2 字 LIKE;FTS-only 可发布——REQ-258,ADR-029) | 版本文档(已实施 2026-09-03,真机验收待执行) |
5353
| v0.19.1 | [v0.19.1.md](./v0.19.1.md) — 读路径 A 学习库问答「问我的学习库」:📚 会话模式 + 命中恒可用 + 双闸门生成(pack_fragments 转正/预算/审计)+ 引用 chips 跳笔记高亮命中词 + 设置「学习库」段(REQ-260/262 部分) | 版本文档(已实施 2026-09-03,真机验收待执行) |
54+
| v0.19.2 | [v0.19.2.md](./v0.19.2.md) — 采集体验小版本:窗口选择增强(抖音/快手/B站客户端评分表 + z 序置顶 + 系统窗口过滤开关找回)+ 开始即录门控(15s 就绪等待自动开录/等待期无采集中控件/AV 同刻,REQ-271~273;REQ-261/259 顺延 v0.19.3/v0.19.4) | 版本文档(已实施 2026-09-03,真机验收待执行) |
5455
| v0.20 | [v0.20.md](./v0.20.md) — ASR 质量增强系列(自验证路线):v0.20.0 asr_eval harness + 首轮报告(REQ-263)→ v0.20.1 DTW 接线/参数定案族/热词加固/积压验证(REQ-264~267)→ v0.20.2 全量精修/混淆画像闭环/LLM 校对(REQ-268~270) | 系列文档(2026-09-03 立项 C,待实施;ADR-030) |
5556

5657
## 沉淀规则

‎docs/versions/v0.19.2.md‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# v0.19.2:采集体验小版本——窗口选择增强 + 开始即录门控
2+
3+
> 状态:**已实施**(2026-09-03;真机验收待执行)
4+
> 依据:用户实测反馈 4 点(B站独立播放窗口/抖音固定标题仅能全窗口选择 · 系统窗口未过滤 · 开始不等待引擎就绪)逐项裁决(2026-09-03:系统窗口彻底过滤+开关找回 / 就绪等待自动开录、等待期不显示采集中控件且 AV 同刻 / 评分表扩充+z 序置顶)
5+
> 关联:前置修复 [802a370](live 预热 StrictMode 双跑语义收敛)· 代码提交 [dd5f9b2] · REQ-271~273(已登记);原排期 REQ-261/REQ-259 **顺延 v0.19.3/v0.19.4**(本小版本用户实测插队裁决)
6+
7+
## 本批已交付
8+
9+
| 用户反馈 | 实现 |
10+
|---|---|
11+
| ① B站视频新开播放窗口标题不固定、② 抖音标题固定"抖音"——仅能通过全部窗口选择 | **评分表扩充**(window_filter/windows.rs):标题词 抖音/douyin/快手 + 进程词 douyin/kuaishou/bilibili(独立客户端)——固定标题与无标题关键词的播放窗口都能进"推荐窗口";**z 序置顶**:CaptureWindow.zOrder = EnumWindows 自上而下序号,推荐区同级按 z 序(活跃/播放中窗口自然靠前——真"播放中"检测需 OCR/音频轮询,登记观察项) |
12+
| ③ 系统进程(终端/记事本/文件资源管理器等)未过滤 | **系统窗口过滤**:window_filter::is_system_window 进程白名单(explorer/notepad/cmd/powershell/pwsh/Windowsterminal/taskmgr/ApplicationFrameHost/SystemSettings 等,纯函数+单测)→ CaptureWindow.systemWindow → 前端**默认隐藏**,勾选"显示系统窗口"找回(能力不丢) |
13+
| ④ 点开始采集无论引擎是否就绪都会开始 | **开始即录门控**:后端生命周期 start 有界等待上限 5s→**15s**(CUDA 冷载 >5s 常超时触发"取消+内联"双引擎重载——超时不再双载,取消并回滚会话行后明确报错请重试);前端新增**启动过渡态**(starting):点击即挡双击、未就绪时按钮置"⏳ 引擎初始化中…";只有 **recording 事件(引擎真正就绪)才显示暂停/浮窗等采集中控件**,等待期不出现会话控件;wasEngineReady 分流避免内联路径提前置活动态 |
14+
15+
## 关键实现说明
16+
17+
- z 序近似:EnumWindows 遍历即顶层窗口 z 序(0=最顶);推荐区排序从"同分按标题"改为"同分按 z 序"——浏览器多标签同分窗口不再按字母埋没活跃窗口。
18+
- 系统窗口判定只用进程名(小写、无扩展名、精确匹配)——标题易变(资源管理器标题=目录名);空进程名不猜不滤(保留兜底可捕获窗口)。
19+
- 等待期一致性:录制真正开始时音频/屏幕共享同一会话纪元(ADR-008 既有口径),前端从"点击"到"recording 事件"全程不出现"采集中"控件——视觉与听觉同刻启动承诺可观察。
20+
- dev StrictMode 双跑问题同批修复(802a370):预热 effect 单次守卫 + 加载期 Cancel 即时释放(不先报 Ready 再报取消),预热日志不再自相矛盾。
21+
22+
## 测试与验证
23+
24+
- Rust:window_filter 系统窗口判定/媒体与办公不误判(+2)+ windows 抖音评分(+1)——全量 **2051 通过 / 2 失败(note_filter 预存,TD-30-B)**;clippy 零警告
25+
- 前端:tsc 零错误 · vitest 70 文件 525 用例全绿
26+
- 真机验收项(待执行):抖音/B站独立窗口出现在推荐区;系统窗口默认消失且开关找回;未就绪点开始→"引擎初始化中…"→就绪自动开录且无暂停/浮窗控件提前出现
27+
28+
## 待办
29+
30+
- [ ] 真机验收(①②③④ 各场景)
31+
- [ ] "播放中窗口"真检测(OCR/音频轮询)——观察项,量级与成本评估后再立 REQ

0 commit comments

Comments
 (0)