Releases: PensiveFei/deep-read-summarize
Releases · PensiveFei/deep-read-summarize
Release list
deep-read-summarize v0.3.6
deep-read-summarize v0.3.6
Unified video pipeline with a built-in faster-whisper transcription bootstrap.
What's new
- Video: unified pipeline (no more "tiers") — the goal is always a full transcript before deep-reading:
- if the video has a platform subtitle (Bilibili AI subtitle / YouTube CC), use it directly (= full text, fastest, zero-dependency);
- otherwise, transcribe via the built-in
scripts/transcribe.ps1.
- New self-bootstrapping transcription tool
scripts/transcribe.ps1:uvcreates a Python 3.12 venv, installsfaster-whisperfrom a PyPI mirror, and pulls the model from hf-mirror with caching. faster-whisper bundles PyAV, so no separate ffmpeg is needed. - Workflow tuning:
maxChunksdefault 6→4,maxRetriesdefault 1→0, batched parallel (3 per batch) to avoid long hangs. - yt-dlp: never auto-download the exe (GitHub direct is slow/flaky); use winget/pip or degrade; add
--socket-timeout 15 --retries 3. - Source used (
textSource: subtitle|transcription|desc|manual) is surfaced in the run log ([source]) and result — not written into the note.
Important caveats
- First transcription downloads the model (small ≈ 484MB, via hf-mirror); cached afterwards, so it happens only once. Only videos with no public subtitle trigger transcription.
- For quality, no-subtitle videos take longer (CPU ≈ 0.5–2× video duration); subtitle videos are near-instant. This is intentional.
- This is an assistive deep-reading tool, not a substitute for learning — verify against the source.
Feedback welcome: open an issue.
v0.3.4
v0.3.4 — DSH rc7 (Cordis) 兼容修复
修复 0.3.3 在 DSH rc7 上「invalid plugin / 插件树加载失败 / harness 无法启动」的问题(任何用户按 README 安装都会触发)。
Fixed
- 插件入口改为标准 Cordis 插件契约:导出
name+inject: ['skills']+apply(ctx),apply 时将自带 SKILL.md 注册为运行时技能(含 workflow meta + 自包含 script + args 示例),模型可直接用workflow工具执行精读。 - workflow script 自包含:四个解析器(book/paper/video/web)的
buildPrompt及其依赖的buildFetchPrompt构建时内联进脚本(修正内联后的闭包引用),不再依赖宿主注入args._parsers(rc7 的 workflow 工具只暴露 args JSON,不会注入);保留args._parsers回退(宿主注入时优先)。 - 保留旧
load()接口以兼容旧式读取;dsh.minVersion0.1.0。
Upgrade notes
- 0.3.3 → 0.3.4 直接替换即可(npm install deep-read-summarize@0.3.4)。
- 25/25 测试通过,lint + 安全检查干净。
详见 CHANGELOG.md
v0.3.3
v0.3.3(修复版)
兼容性变化:无。纯修复,不改变输入格式、配置项或输出结构,可直接升级。
修复
- 幂等缓存对带尾部空 query 的 URL 失效:
https://example.com/doc与https://example.com/doc?此前会生成不同指纹,导致同一链接换一种写法就被重复精读、重复消耗 token。现在两种写法共享指纹(顺带修掉normalizeInput里一段从未生效的死代码)。 - 空文件(size=0)指纹与「无 meta」混淆:指纹拼接里
||会把0当成空值,空文件与不带文件元信息的输入可能共享指纹。改用??后 size 严格参与指纹。 tempFile双斜杠路径:当options.tempDir以斜杠结尾时,workflow 生成./.tmp//input.txt式路径(与 0.3.2 对parsers/_prompt.js的修复对齐)。
测试
- 新增 2 个用例(URL 尾部
?归一、size=0 指纹区分),25/25 通过(lint + 安全检查同步通过)。
升级提醒
- 无需改配置。升级后跑一次
npm test看到TOTAL: 25 passed, 0 failed即环境就绪。
已知问题
- 视频输入仍依赖 yt-dlp,未安装时需手动提供转写文本。
v0.3.1
v0.3.1 — 发布前检查修正版
- 移除文档中的本地绝对路径(README/RELEASE)
- 同步过时版本号(README tgz、测试数 17→21)
v0.3.0 项目优化:
- 解析器去重:四个解析器共用共享提示词模板(
parsers/_prompt.js),输出不变 - 幂等缓存 URL 规范化(host/端口/fragment/尾斜杠归一)
- 安全扫描增强(覆盖 .env.example、正斜杠路径,可测试化)
- 测试 17 → 21 项;CI 增加 Node 18/20/22 矩阵
- npm 发布配置(publishConfig + prepublishOnly 门禁)
v0.1.1 — DSH 插件化版
v0.1.1 — DSH 插件化版
新增
- cordis.patch.yml(dsh bundle patch,插件安装清单)
- index.js 插件入口(导出 workflow/parsers/schemas)
- skills/ 打包(deep-read-summarize SKILL.md 随插件分发)
- node:test 风格测试(tests/index.test.js)
- dsh-plugin topic(dsh.so 生态可发现)
变更
- package.json:dsh.bundle 字段、exports、repository、keywords
- 废弃 cordis.yml → cordis.patch.yml
提交目标
- dsh.so 收录(Declared → 用户报告兼容性升 Verified)
v0.1.0 — 首个预发布版
v0.1.0 — 首个预发布版
锁定的 DeepSeek Harness 版本:workflow 工具语义(
agent()/parallel()/phase()/log()/args)。
兼容性:0.x 为早期迭代,接口可能变化;升级前重跑npm test。
发布说明
deep-read-summarize 是一个给 DSH(DeepSeek Harness)用的精读工作流:输入一本书、一篇论文、一个视频链接或网页,输出一份带 YAML frontmatter 的结构化 Obsidian 笔记。本版本是首个公开预发布版,核心流程已可用,接口细节在 1.0.0 前可能调整。
新增
- 四种输入解析器插件(
parsers/):书籍(PDF/EPUB/MOBI)、论文(arXiv/PDF/HTML)、视频(yt-dlp 字幕抓取)、网页正文——每种可单独替换,fork 后只改自己的解析器 - 三波次 MapReduce 精读:解析器获取分块 → 并行子代理精读(Map)→ 合并成稿(Reduce),长内容不溢出上下文
- JSON Schema 结构化输出(
schemas/):各子任务结果受 schema 约束,不合格自动重试 - 幂等缓存(
lib/cache.js):对输入指纹去重,已处理过的输入直接跳过,省 token - 失败分级:配置错误直接终止(FATAL);内容解析失败降级为缺口标记继续(可降级)
- 质量校验:关键引用标注出处 + 成稿自检 + 可选重试(
maxRetries) - Obsidian 输出:YAML frontmatter(type 字段可配合 Dataview 查询),输出目录可配置(
outputDir) - 工程配套:CI(lint + 17 项 fixture 测试 + Gitleaks 密钥扫描)、SECURITY.md、CONTRIBUTING.md、CHANGELOG.md
修复
- 长文本获取不再依赖单次上下文(写入临时文件 + 行范围分块)
- 独立质量校验子代理超时问题(合并进成稿波次)
- 硬编码本地路径全部参数化(
outputDir/tempDir),通过 6/6 安全检查
升级提醒
- 首个公开版本,无旧版迁移负担
options参数与 README「用法」示例保持一致即可
已知问题
- DSH 为 developer preview,升级后需重跑
npm test验证 - 视频字幕依赖 yt-dlp,未安装时需手动提供转写文本
- 子代理写文件可能受权限限制,workflow 会返回内容由主代理落盘
验证
npm test # 17 项离线测试(不依赖真实 API)
npm run lint # 13 个 JS 文件语法检查
npm run validate当前功能列表(v0.1.0)
| 能力 | 状态 |
|---|---|
| 书籍解析器(PDF/EPUB/MOBI) | ✅ |
| 论文解析器(arXiv/PDF/HTML) | ✅ |
| 视频解析器(yt-dlp 字幕) | ✅ |
| 网页解析器 | ✅ |
| 分块 + 并行精读(MapReduce) | ✅ |
| JSON Schema 输出约束 | ✅ |
| 幂等缓存 | ✅ |
| 失败分级 | ✅ |
| 质量校验循环 | ✅ |
| Obsidian 输出(Dataview 兼容) | ✅ |
| CI + 密钥扫描 | ✅ |
| 自定义解析器插件(custom-parsers/) | ✅ |