Skip to content

Releases: PensiveFei/deep-read-summarize

deep-read-summarize v0.3.6

Choose a tag to compare

@PensiveFei PensiveFei released this 28 Aug 17:38

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:
    1. if the video has a platform subtitle (Bilibili AI subtitle / YouTube CC), use it directly (= full text, fastest, zero-dependency);
    2. otherwise, transcribe via the built-in scripts/transcribe.ps1.
  • New self-bootstrapping transcription tool scripts/transcribe.ps1: uv creates a Python 3.12 venv, installs faster-whisper from a PyPI mirror, and pulls the model from hf-mirror with caching. faster-whisper bundles PyAV, so no separate ffmpeg is needed.
  • Workflow tuning: maxChunks default 6→4, maxRetries default 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

Choose a tag to compare

@PensiveFei PensiveFei released this 28 Aug 11:05

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.minVersion 0.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

Choose a tag to compare

@PensiveFei PensiveFei released this 25 Aug 05:18

v0.3.3(修复版)

兼容性变化:无。纯修复,不改变输入格式、配置项或输出结构,可直接升级。

修复

  • 幂等缓存对带尾部空 query 的 URL 失效https://example.com/dochttps://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

Choose a tag to compare

@PensiveFei PensiveFei released this 21 Aug 16:00

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 门禁)

npm: https://www.npmjs.com/package/deep-read-summarize

v0.1.1 — DSH 插件化版

Pre-release

Choose a tag to compare

@PensiveFei PensiveFei released this 20 Aug 14:57

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 — 首个预发布版

Pre-release

Choose a tag to compare

@PensiveFei PensiveFei released this 18 Aug 17:18

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/)