Skip to content

Commit a3a7b78

Browse files
committed
docs(019): v0.19.7 交付登记与豁免/状态收口
1 parent 7460ae3 commit a3a7b78

3 files changed

Lines changed: 30 additions & 20 deletions

File tree

‎docs/product/requirements-pool.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 需求池
1+
# 需求池
22

33
> 熵减 (Entropydecrease) 项目需求的统一登记入口:需求 → 优先级 → 版本 → 实现 → 验收追踪。
44
> 需求来源:痛点图谱 [pain-points-v1.md([ ] 已归档)](../archive/2026-08-21/pain-points-v1.md) · PRD [prd.md](./prd.md)(MoSCoW)· 课堂助手路线图(原项目 P0-P2 映射)· 图像复用头脑风暴(2026-08-19)。
@@ -504,14 +504,14 @@
504504
| REQ-281 | 画面停更检测与捕获会话自愈:帧心跳(live:frame-heartbeat 每 2s:backend/新帧/计数/可见性)+ WGC 静默 watchdog(visible 且 5s 无新帧→重建,节流 30s)+ live:frame-stalled 轻提示横幅(区别于窗口丢失)+ 末帧保留 | P1 | 已立项 | v0.19.6 | 用户双屏复现:视频本身在动→我方链路;ScreenStats 计数已备仅未外露;watchdog 纯状态机单测 |
505505
| 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 单测 |
506506
| REQ-283 | 会话标题 AI 建议层:titleSuggestEnabled 默认关独立开关 + 会话结束轻任务(前 3000 字清洗转写 ≤1K token → ≤20 字标题 JSON)+ 精修采纳后基于精修稿刷新一次 + 徽标采纳/忽略(toast 可撤销) | P2 | 已立项 | v0.19.8 | AI 增强可选总则;op_type title_suggest;失败静默零阻断 |
507-
| REQ-284 | 画面理解开关入精修发起弹层:会话级弹层 checkbox(初值=全局)+ 任务级覆写传参(resolve 纯函数覆写优先)+「设为默认」显式写回全局(单向)+ 生效来源文案 | P1 | 已立项 | v0.19.7 | 笔记级不显示;设置页保持总入口 |
507+
| REQ-284 | 画面理解开关入精修发起弹层:会话级弹层 checkbox(初值=全局)+ 任务级覆写传参(resolve 纯函数覆写优先)+「设为默认」显式写回全局(单向)+ 生效来源文案 | P1 | 已实施 | v0.19.7 | 笔记级不显示;设置页保持总入口 |
508508
| REQ-285 | ColumnResizer 全站增量拖拽修复:move 传相邻增量(lastX)替代累计位移;补 pointer 序列单测(50→70→80=[20,10]) | P1 | 已立项 | v0.19.6 | 根因:增量语义 resizeBy 收到累计 dx 重复累加=「加速」 |
509-
| REQ-286 | 挂体系弹层搜索+三类内联轻建:实体区改 Tab+搜索列表(树形缩进选父锚点)+ 零命中「+新建『x』」即建即选(问题挂所选父/概念模型体系级平铺)+ 空体系引导按钮 | P1 | 已立项 | v0.19.7 | SearchSelectList 通用零依赖;轻建=名称级详情后补;键盘 ↑↓/Enter/Esc 两段式 |
510-
| REQ-287 | 笔记列表交互重构:去行内 checkbox + Ctrl/Shift 修饰多选与「批量选择」模式 + 单击选中右栏读 + 即时拖拽(跨组=组行/组头双 drop;组内=手动排序模式 note_groups.order_mode+notes.order_index 命令族)+ 划过加选(空白锚点)+ 批量栏扩(删除/移动到组)+ 右键选集菜单(交互矩阵 §2.6/2.9) | P1 | 已立项 | v0.19.7 | HTML5 DnD 保留观察项;列表键盘导航观察项 |
509+
| REQ-286 | 挂体系弹层搜索+三类内联轻建:实体区改 Tab+搜索列表(树形缩进选父锚点)+ 零命中「+新建『x』」即建即选(问题挂所选父/概念模型体系级平铺)+ 空体系引导按钮 | P1 | 已实施 | v0.19.7 | SearchSelectList 通用零依赖;轻建=名称级详情后补;键盘 ↑↓/Enter/Esc 两段式 |
510+
| REQ-287 | 笔记列表交互重构:去行内 checkbox + Ctrl/Shift 修饰多选与「批量选择」模式 + 单击选中右栏读 + 即时拖拽(跨组=组行/组头双 drop;组内=手动排序模式 note_groups.order_mode+notes.order_index 命令族)+ 划过加选(空白锚点)+ 批量栏扩(删除/移动到组)+ 右键选集菜单(交互矩阵 §2.6/2.9) | P1 | 已实施 | v0.19.7 | HTML5 DnD 保留观察项;列表键盘导航观察项 |
511511
| REQ-288 | 体系 D1 证据反推生长:未挂接证据源 embedding 聚类(引擎缺=诚实降级关键词簇)→ 建议簇卡片(拟问题文案可编辑/相似节点查重/基于此新建/忽略软隐藏)——建节点不自动挂(红线) | P2 | 已立项 | v0.19.8 | 解决冷启动与"树不生长";kb_evidence 纯函数+golden |
512512
| REQ-289 | 体系 D2 节点缺口仪表:system_node_gaps 现算(证据分型数/最近引用/90·180 天 stale/三问未填/无应用记录)+ 缺口清单 [加入目标]→里程碑草稿(toast 去向反馈) | P2 | 已立项 | v0.19.8 | 执行型 agent P0 输入源;零双写 |
513-
| 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/审计语义零变化 |
514-
| 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 纯状态机+阈值真机标定 |
513+
| 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/审计语义零变化 |
514+
| 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 纯状态机+阈值真机标定 |
515515

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

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 单文件行数豁免登记(AGENTS.md §3:单文件 ≤300 行;300-600 行须登记本清单)
1+
# 单文件行数豁免登记(AGENTS.md §3:单文件 ≤300 行;300-600 行须登记本清单)
22

33
> 登记规则:文件超过 300 行时在此登记(文件 + 行数 + 豁免理由 + 拆分计划)。
44
> 超过 600 行必须硬拆(不允许豁免)。
@@ -101,6 +101,9 @@
101101
> 前端 SessionsPage.tsx 审查快照 304 行(登记值),v0.7.1 硬拆后长期 ≤300,本轮审查期间轻微越线;随 NotesPage/types.ts 拆分任务一并复核,若仍越线按上表模式登记。
102102
> 前端 EnrichPanel.tsx 实测已回归 299 行(登记值 ~330 移除)。
103103
104+
| app/src-tauri/src/ai_refine_protocol.rs | 340 | v0.19.7(REQ-290①)逐节流式:render_sections 渲染出口重构 + NDJSON 行解析 + 常量(协议域内聚,to_markdown/validate 共用) | 若再增长:行解析与常量拆至 ai_protocol_ndjson.rs |
105+
| app/src/components/NoteListView.tsx | 525 | v0.19.7(REQ-287)列表交互重构:选择三通道/批量模式/拖拽矩阵(组头与行落点)/手动序消费/划选锚点/选集菜单——编排内聚;纯选择逻辑已拆 noteSelection.ts、组头载荷已拆 NoteTreeSection 导出 | 若再增长:拖拽/划选接线拆至 useNoteListDnD.ts;手动序拆至 useNoteOrders.ts |
106+
104107
## 已拆分 / 登记移除记录
105108

106109
> 已拆分:engine.rs(三维复审 #5 超时排空机制接入后逼近 600 行硬拆线)按登记计划将 worker 主循环与请求协议(AsrRequest/OcrRequest/双 worker 循环/词表纠错纯函数)拆至 engine_worker.rs(253 行)——engine.rs 回归 440 行(仍登记,300-600 区间),engine_worker.rs ≤300 行无需登记。

‎docs/versions/v0.19.7.md‎

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,37 @@
11
# v0.19.7 · 用户反馈批二:开关入弹层/精修加速/挂体系轻建/列表交互重构
22

3-
> 状态:**实施中(2026-09-05 裁决立项;已交付 REQ-284 + REQ-290②)**。
4-
> 依据:用户 2026-09-05 反馈批裁决;设计:[2026-09-05-v0.19-feedback-batch-design.md([ ] 已归档)](../superpowers/specs/2026-09-05-v0.19-feedback-batch-design.md) §2.3/2.8/2.5/2.6。
3+
> 状态:**已实施(2026-09-05,代码提交 c0c6eff/1c7f808/d7d589b5/a5c912d/b6a00a4/305d8cc0/d001c2fc/33aff9a/7460ae3;真机验收待执行)**。
4+
> 依据:用户 2026-09-05 反馈批裁决;设计:[2026-09-05-v0.19-feedback-batch-design.md([ ] 已归档)](../superpowers/specs/2026-09-05-v0.19-feedback-batch-design.md) §2.3/2.8/2.5/2.6 + §2.10(REQ-291 用户追加)。
55
> 排期注:v0.19.7 承接 v0.19.6 的 REQ-284/286/287 + REQ-290 ①②(v0.19.6 已交付 ③ 埋点与其余 REQ)。
66
77
## 范围与需求映射
88

99
| REQ | 需求 | 优先级 | 状态 |
1010
|-----|------|--------|------|
1111
| REQ-284 | 画面理解开关入精修发起弹层(任务级覆写+设为默认单向写回) | P1 | **已实施(c0c6eff)** |
12-
| REQ-290 | AI 精修加速:① 片内流式 + ② 输出预算化(+③ 埋点已于 v0.19.6) | P1 | ② 已实施(1c7f808);① 实施中 |
13-
| REQ-286 | 挂体系弹层搜索+三类内联轻建 | P1 | 已立项(实施中) |
14-
| REQ-287 | 笔记列表交互重构(交互矩阵) | P1 | 已立项 |
12+
| REQ-290 | AI 精修加速:① 片内流式(NDJSON 逐节 SSE+Delta) + ② 输出预算化(③ 埋点已于 v0.19.6) | P1 | **已实施(②1c7f808 · ①b6a00a4)** |
13+
| REQ-286 | 挂体系弹层搜索+三类内联轻建 | P1 | **已实施(d7d589b5)** |
14+
| REQ-291 | 视频暂停随播随停(声画双通道,2026-09-05 追加) | P1 | **已实施(a5c912d)** |
15+
| REQ-287 | 笔记列表交互重构(交互矩阵) | P1 | **已实施(305d8cc0/d001c2fc/33aff9a/7460ae3)** |
1516

16-
## 口径与决策记录(随实施填)
17+
## 口径与决策记录
1718

18-
- **REQ-284**:checkbox 初值=全局;勾选=本次覆写(仅会话级显示,笔记级纯文本语境隐藏);`ai_refine_start` 增 `vision_refine: Option<bool>`(缺省 None=后端跟随全局——payload 无键,无双写歧义);「设为默认」显式 `ai_set_vision_refine` 写回(单向同步);生效来源文案实时展示(本次/全局);开启附耗时费用提示。resolve 纯函数 `resolve_vision_refine`(ai_settings.rs)+ 2 单测;FE 3 契约测试(覆写携带/未覆写无键/笔记级隐藏)。
19-
- **REQ-290②**:`refine_budget.rs` 纯函数——guidance ≈ 输入×档位缩放(faithful 1.0 / standard·custom 0.9 / deep 0.95 / minimal 0.3,下限 200 字);max_tokens = guidance×2+1500,下限 4000(防截断毁 JSON 校验)、档位上限(16k / minimal 9k,恒 ≤ 原 20k);system 尾追加引导段(动态逐片值,静态预览不含——注释如实声明);adapter 以 clone 客户端覆盖上限,协议/校验/轨迹零变化。4 单测入库。
19+
- **REQ-284(c0c6eff)**:见上文 §1(checkbox 初值=全局;覆写缺省不发键;设为默认单向写回;resolve_vision_refine 纯函数 2 单测 + FE 3 契约用例)。
20+
- **REQ-290①(b6a00a4)**:NDJSON 逐节流式默认路径(env REFINE_STREAM_NDJSON=0 可关;mock 恒非流式)——`NDJSON_SYSTEM_SUFFIX` 引导逐节 JSONL + 整包自动兼容;每节解析即推 `Delta` 帧(渲染 md 片段=前缀渲染终稿同源);模型未遵守 → 同拍回退非流式(逐字节兼容)、重试拍非流式;FE `sliceStreamContent`(delta 拼接/blockDone 收尾去重/乱序按片升序)+ TaskThreadCard 打字机(▍ 光标)。协议校验/落库/审计零变化;3 解析单测 + FE 4 归集用例。
21+
- **REQ-290②(1c7f808)**:见前文 §1。
22+
- **REQ-286(d7d589b5)**:见前文 §1(LinkEntityPicker 搜索树列表+三类轻建即建即选;零新后端;14 用例含 3 轻建)。
23+
- **REQ-291(a5c912d)**:见 §2.10 落实——media_state 纯状态机(5 单测);媒体声音戳(RMS≥0.003 200ms/块,区别于 VAD 语音级);worker 独立 1s 媒体拍(idle 静默期亦判)+ 快恢复(≤~1.5s,OCR 5s 降级辅助);事件/徽标;watchdog 天然互斥(暂停态不判停更)。
24+
- **REQ-287(305d8cc0/d001c2fc/33aff9a/7460ae3)**:后端=`note_orders` scope 独立表(g{id}/none 快照先删后插单事务)+ note_order_list/save/clear(校验/2000 守卫/notes 域广播);前端=去 checkbox(✓ 前缀+靛蓝多选视觉)、三通道多选(Ctrl 加减/Shift 列表位置区间/批量选择模式 Esc 完成)、批量栏(删除+移动到组+完成)、拖拽矩阵(行→左栏组行与中部组头双 drop[多选 JSON+单 id 兜底]、同 scope 行落点=自动启用快照+整表覆写、自动排序组仅归组)、组头空白划选(区间=组内首行至当前行)、组头「手排 ↺」一键回自动、右键选集批菜单;树视图消费手动序;组折叠只隐 body 不卸载组头(chevron 恒可再点)。12 列表交互用例 + 纯逻辑 4 用例全绿。
2025

2126
## 真机验收待办(登记)
2227

2328
- [ ] REQ-284:会话精修弹层开/关/设为默认三路径 + 全局开关联动;笔记精修不出现
24-
- [ ] REQ-290:3 条真实会话 A/B(v0.19.6 已取基线;预算化后对比耗时/字数/成本)→ 流式上线后再取一组
29+
- [ ] REQ-290①:抖音/B站真实会话 NDJSON 流式逐节打字机观感;模型不守约时回退非流式无感;流式 + 预算后 A/B 总耗时(v0.19.6 基线已取)
30+
- [ ] REQ-291:抖音播放→暂停→恢复三拍:随停 ≤~2s、恢复 ≤~1.5s、徽标显隐;阈值滞回标定一次(MEDIA_AUDIO_ACTIVE_RMS/拍数)
31+
- [ ] REQ-286:空体系/空节点/零命中新建三场景走查
32+
- [ ] REQ-287:交互矩阵逐格真机走查(修饰多选/批量模式/组头与行拖放/手排切换与回自动/划选/右键批菜单)+ 引用跳转回归
2533

26-
## 验证记录(随实施填)
34+
## 验证记录
2735

28-
- v0.19.6 底:tsc 零错误 · vitest 75 文件 556 用例全绿 · clippy 零警告(受限环境说明见 v0.19.6 文档)
29-
- REQ-284:RefineLaunchDialog 契约 + 新 3 用例全绿(5/5)
30-
- REQ-290②:refine_budget 4 单测入库(待常规终端/CI 补跑——受限环境说明同 v0.19.6)
36+
- FE:vitest **全量绿(571 用例/78 文件——含新增 REQ-284 3 例、流式归集 4 例、REQ-286 14 例、REQ-287 交互 12+4 例、选择器纯逻辑 4 例)**;tsc 零错误。
37+
- Rust:cargo check --all-targets 干净;clippy 待终检登记(受限环境说明同 v0.19.6——Rust 单测二进制无法在本会话沙箱启动,media_state 5/协议 3/预算 4/排序 scope 1/选择? 等单测随文件入库,常规终端/CI 补跑登记)。

0 commit comments

Comments
 (0)