dsh-paper-library
mappedinfo/dsh-paper-library
DeepSeek Harness용 로컬 우선 연구 작업 공간입니다. PDF 주석, AI 읽기, 인용, 지식 그래프, LaTeX, 슬라이드를 지원합니다.
설치
dsh plugin --profile web add github:mappedinfo/dsh-paper-libraryREADME
Paper Library
在 DeepSeek Harness 中收集文献、阅读批注、整理证据与写作。
安装与开发 · 使用说明 · PDF / Slides 演示 · DSH 社区讨论 · 问题反馈
非官方 DSH 社区插件,由 Mappedinfo 独立开发和维护。原创代码为 MIT;PDF 引擎等依赖另有许可,见第三方许可。
Paper Library 将文献收集、PDF 阅读与批注、知识整理和 LaTeX 写作放在同一个工作环境中,可以作为 DeepSeek Harness 插件使用,也可以独立运行。文献与数据集留在自己的资料库;DSH 对话沿用宿主模型配置,后台文献分析另支持显式配置的 GLM/Kimi/DeepSeek API,无需打开界面。
| 你的工作 | 在 Paper Library 中完成 |
|---|---|
| 收集与组织 | PDF / DOI 导入、元数据补全、APA 7 引用、收藏与 #tag/subtag 筛选 |
| 阅读与追问 | PDF 原生划线、矩形框、自由笔画;同一批注下持续备注和提问 |
| 浏览结构 | 公式、图片、表格、算法目录;裁剪与定位、旋转表格转正、伪代码流程图 |
| 积累语言与知识 | 中英翻译、五种表述优化方向、双语词条与原句来源、全文分析与引用图谱 |
| 写作与展示 | 多文献画板、LaTeX 工作台、PlainDeck Slides 与可编辑 PPTX 导出 |
版本说明:npm 当前发布版为 0.2.5(2026-11-09 核实);下文介绍当前 main 源码,包含尚未发布到 npm 的更新。体验新功能请使用源码安装。徽章显示 npm 实际发布版本,不表示与 main 功能同步。
把使用说明当作演示来试用:PDF 手册 · 带批注 PDF 示例 · 可编辑动态 PPTX · PlainDeck 项目 ZIP · Slides 静态 PDF。导入手册阅读批注,导入 ZIP 修改并再次导出;主稿与复现说明记录内容和验证范围。
项目原创代码采用 MIT。默认 PDF 引擎 PyMuPDF 采用 AGPL/商业许可,CSL 等第三方组件保留原许可;完整安装的依赖栈并非仅受 MIT 约束。详见 第三方许可。
继续开发前先读 项目交接,其中记录当前能力、验证证据和待验证项。 版本变更见 CHANGELOG。
本地资料维护另提供基础元数据覆盖检查:先复用 Zotero 和采集清单中的资料,再列出需要补全的文件,避免为已有字段重复调用模型。另有独立模型 API 测试,用合成示例验证 GLM/Kimi 直连,无需运行 DSH。
无界面批量分析:独立后端使用说明提供命令行与程序调用入口,支持独立资料提取、23 个问题的逐题分批阅读和待审阅笔记。可编辑问题与提示词采用选择项、可选自由判断和原文证据,由程序生成图谱;全文分析不再提取书目资料与原始 Abstract。默认文本路径保持不变;可显式选择 Markdown,并由独立 GLM/Kimi/DeepSeek 后端按页接收有界图像,原生 DSH 明确拒绝图像请求。结果保存在同一资料库,之后可在 Paper Library 查看、审阅及明确写回。默认不自动修改 PDF 资料;模型次数与并发均有上限。与 Research Knowledge OS 的文献、证据、论断图谱已有 rkos-v3 导出适配,完整边界见兼容性说明。
从收集文献到阅读、整理与写作
- 收集、管理与引用:导入 PDF、论文链接、DOI 或 JSON/RIS/BibTeX,检索与维护元数据,复制 APA 7 引用、导出 BibLaTeX,并检查引用键与资料缺失。使用方法
- 阅读与原生 PDF 批注:单页/双页连续滚动、缩放和正文选文;高亮、下划线、删除线、便笺、矩形框和自由笔画/关联手写保存在管理副本 PDF 中,导出后继续携带批注,导入原件保持不变;详情页的「⇱ 在新分栏打开」把当前论文放进第二个分栏标签页,多篇论文并排对照、各自记住阅读位置。Pencil 与手写
- DSH 对话、伴学与语言:每篇论文使用自己的 DSH 对话,把选文和批注带入提问,保存关联回复;可开启实时伴学,翻译、优化表述并积累难词。论文对话 · 实时伴学
- 阅读项目与文献画板:按主题组织文献,用节点和连线整理思路,把文献与知识图谱节点放到画板;画板可作为固定引用带入 DSH 对话,也支持 Mermaid/draw.io 互通。阅读项目 · 文献画板
- 数据集与知识记录:登记数据集、版本和论文使用关系,有限预览本地表格;从选定来源生成待审阅的关系与笔记草稿,保留出处和核对状态。数据集与知识工作流
- LaTeX 写作:在工作台中编辑源码、调用本机 TeX 编译并查看 PDF,比较版本;双击 PDF 精确定位源码,记录源码选段与 PDF 高亮/区域便笺,原文改变后可按唯一高置信文本自动恢复定位,在统一自审列表复查和导出(单人自审);向 DSH 提问或审阅修改提案,接受后才写入文件。LaTeX 工作台
- Slides 制作:通过集成的 PlainDeck 画布编辑演示文稿,添加文字、图片、表格与卡片,调整主题、放映,导出可编辑 PPTX、HTML、ZIP 或打印为 PDF。DSH 对话可直接导出已保存项目,源码和图片保存在当前资料库。Slides 工作台
文献库、阅读与批注
偏好论文与层级标签:在文献卡片、资料表或资料详情中点 ☆ 收藏,再点 ★ 取消;筛选栏的「偏好论文」只显示已收藏论文。点文献旁的「标签」填写手动标签,每行一个或用逗号分隔,例如 #方法/深度学习/Transformer。手动标签与导入资料的标签分开保存,同步文献不会覆盖收藏与手动标签。
筛选栏的「标签筛选」可搜索整库标签、查看论文数并点击筛选;文献上的标签也可直接点击。选 #方法 会包含该标签以及所有子层级,不会匹配 #方法论。标签与偏好、阅读项目、关键词及回收站筛选可组合,按筛选后的结果分页;点当前标签旁的 × 清除。层级区分大小写,最多 8 层,每篇最多 100 个手动标签。保存冲突或失败会保留编辑窗口与输入,并显示原因。
批注卡片的「复制原文」只复制选中的 PDF 文字。备注直接在侧栏编辑并自动保存;「问 DSH」针对该条备注提问,先确认最新文字已保存。点「+ 备注 / 追问」在同一处划线下继续追加备注 2、备注 3,各有自己的输入框和提问按钮,原划线、旧备注及回复保持不变。备注使用原生 PDF 回复关系;AI 回复跟在对应备注下面,默认预览六行,可展开全文。保存或新增备注本身不调用模型。
批注分页固定在侧栏顶部「文献库/批注」旁。底部「开始选取提问批注」打开批量勾选,支持本页全选和跨页保留,点「提问(N)」直接发送一次组合请求;如论文对话框已有问题则采用该问题,空白时解读所选批注。发送前保存所选备注并刷新引用版本,失败保留问题和勾选,不夹带临时 PDF 选文。「选作提问材料」仍可逐条添加材料;「全部批注放入主输入框」仍仅准备主对话草稿。
矩形框在同页拖动、松手后即保存为透明原生 PDF 批注,无需弹窗确认;卡片自动显示框内 PDF 内容的缩略图,点击截图回到原位置,说明直接在侧栏填写。截图只在卡片进入视野后读取,保留 PDF 原色,不包含遮挡批注。保存期间保留边框预览,失败时保留草稿和重试入口。备注遇到跨窗口修改会保留输入,可在「核对 PDF 备注」中比较后明确采用一方。
正文中已有 PDF 内部链接的引用年份或编号可直接点击,跳到 References 对应条目;工具栏「返回刚才位置」恢复跳转前的阅读位置、缩放和单/双页布局。拖选文字仍按原批注流程处理。此功能沿用 PDF 自带的目标,不猜测没有链接的引用。
从文献库检索、整理条目,打开 PDF 阅读,再将摘录与自己的问题保存在批注中。以下演示只使用通用的阅读、思考与写作练习。演示说明

查看阅读批注、学习画板与 LaTeX 写作

文献画板把练习文档与阅读步骤放在一起,整理“阅读 → 思考 → 写作 → 返回阅读”的学习循环。

LaTeX 工作台支持并排编辑源码和预览编译结果,继续完成写作。

安装与开发说明当前源码与已发布 npm 版本的区别。
设置
设置 → 界面配色 可选「墨绿铜金」「深海蓝灰」「石墨中性」「樱粉柔光」「杏橙暖光」或「跟随 DSH」。石墨中性提供专业灰阶基底,樱粉与杏橙提供柔和粉色/橙色体系;五套主题都使用固定功能色:阅读为墨绿,知识与画板为紫色,写作为海蓝,Slides 为铜金;明暗模式随宿主,PDF 页面和已有批注保留原色。主题与阅读偏好一起保存,切换即时生效。
插件右上角 设置 可调整阅读与自动化偏好;DSH 设置 → 左侧 Paper Library 提供共享的阅读偏好,以及语言模型、翻译和润色补充提示词。语言设置也可从插件「设置 → 语言模型与提示词」或「语言与词条」窗口中的设置进入,几个入口使用同一份主机设置,模型按供应商分组。默认翻译方向为自动识别:中文译为英文,其他语言译为中文,也可固定译为中文或英文;「语言与词条」的常用方向选择可临时覆盖。LaTeX 专用选项位于工作台的「项目与设置」,外观继续跟随 DSH。
插件把偏好字段声明为 cordis Config 的 volatile 字段,原生设置页和文献库入口复用已有读写接口,改动即时生效、无需重启;用户改动保存在当前 DSH profile 的插件配置里(旧版 DSH 的 $DSH_HOME/settings.yaml 会在升级时自动迁入)。首次接入时只迁移 DSH 中尚未明确设置的旧偏好,并保留旧记录与备份。并发修改会提示重新读取,恢复默认不会重新导入旧值。资料库路径、Python 和执行权限等部署项继续由安装配置管理。
DSH 设置 → 插件 → 插件列表 可查看已加载的 @mappedinfo/dsh-paper-library;全局插件可能默认折叠,也可按包名搜索。此列表表示本机已安装插件。社区展示见上述讨论链接。
npm 安装的包不含 Python 虚拟环境;首次执行文献操作时插件会自动安装(优先 uv sync,否则创建 venv 并安装 PyMuPDF、固定版本 pymupdf4llm==0.2.9、跨平台锁 filelock 与 XLSX 读取依赖 openpyxl),需要网络且只需一次。两者都不可用时按报错提示安装 uv 或 Python 3.11+ 后重试即可。既有插件环境会在首次操作前补齐核心锁依赖、首次导入 XLSX 时补齐表格依赖;显式指定 Python 时按提示自行安装到该环境。
独立预览服务(npm start)始终可以保存本地设置。旧版本曾把"库已交给 DSH 管理但 DSH 端入口缺失"误判为只读;现在只要 DSH 没有真正接管该命名空间,预览页就回退到本库存储继续读写,避免形成死锁。不同浏览器访问同一个 DSH 服务时共享主机设置。本地状态保存默认按最后确认版本做三方合并:不同字段、嵌套字段以及不冲突的删除可自动合并;同一字段不同文本、数组或删除与编辑冲突仍保留草稿并提示核对,不把两段备注盲目拼接。
完整全文图谱
「本文图谱」默认进入 全文判断:先按问题查看全篇目录,展开后每页显示 12 项完整判断,再进入单项的全部原文证据与关系。顶部路径可返回原问题和分页,来源按钮可回到 PDF 对应页。「后台整理 → 查看完整全文图谱」进入同一视图。
直接读取已保存的完整判断和固定来源快照,不以旧摘要图的前若干节点充当全集;旧任务无需重新调用模型。每层载入有界内容,刷新才切换到最新分析,翻页期间保持同一任务。未通过的判断及“未报告/不适用”仍可查看,但不会生成肯定事实关系。不能可靠分类的关系保留提示和证据,不猜测连线。人工记录与旧摘要图可切换到「全部关系」,真实参考文献保留在「论文引用」。
公式、图表与算法阅读
阅读侧栏新增与「文献库/批注」并列的 公式、图片、表格、算法。首次打开任一入口时,只扫描当前 PDF,按页分批保存进度,可暂停、继续和检索;每页目录最多显示 40 项,翻页可查看余下结果。点击页码或裁剪图定位原文,「返回刚才位置」回到阅读处。
- 公式:合并同一行的数学片段与独立编号,显示公式裁剪和邻近原文定义。定义保持原文,不自动猜测符号含义。
- 图片/流程图:提取嵌入图片及带图题的矢量图;「只看流程图」按 workflow/roadmap/flowchart 等图题词筛选候选。「标注区域」或「标注本页流程图」按已识别范围写入标准 PDF 矩形,重复操作不重复创建,原始导入文件不变。
- 表格:显示区域裁剪和检测到的单元格,原文可检索,较长表格可回原页完整阅读。
- 算法:读取带 Algorithm/算法标题的伪代码,按明确的循环、条件、返回语句构建流程图。支持有连续行号或续页标记的相邻一页补读;保留两页来源。流程图支持滚动查看全部步骤,缺结束语句、未知控制结构或截断内容明确提示为部分流程。
自动提取只在打开这些侧栏后启动,先等阅读操作空闲;隐藏窗口或离开侧栏后停止下一批。前台保存与翻页优先,后台共享单个文献处理额度,扫描有超时保护。在「设置 → 资源与性能」选择档位,默认均衡档;也可自定义处理内存目标、预览缓存、扫描页数/间隔、磁盘索引预算及保留空间。
| 档位 | 处理内存目标 | 预览缓存 | 每批主页面/最短间隔 | 磁盘索引:每篇/全库 |
|---|---|---|---|---|
| 节能 | 256 MiB | 16 MiB | 1 页/2 秒 | 16/256 MiB |
| 均衡(默认) | 512 MiB | 48 MiB | 2 页/1 秒 | 64/1024 MiB |
| 高性能 | 1024 MiB | 96 MiB | 4 页/0.5 秒 | 128/4096 MiB |
内存目标用于预检工作量和控制缓存,并非整个 DSH/浏览器进程的内存硬上限。磁盘不足或达到预算时,侧栏显示暂停原因并保留已完成页,可进入资源设置调整后继续;「管理」也可清除此篇提取索引,不删原文或批注。设置变更对后续批次生效。具体预算与边界见 接口文档。
这些功能使用本地 PDF 引擎及确定性规则,不调用 LLM。索引是派生阅读目录,只有点击标注才写 PDF。普通划线、便笺不改变正文索引身份;正文替换后重新扫描。页面扫描完成表示覆盖到页,并不保证所有公式/图表识别完整:扫描页未接 OCR,复杂跨栏、无编号公式和超过两页的算法仍需核对原文;不会凭空补齐。
阅读工作区与百科
「阅读显示」提供独立的「深色 PDF」与「仿生阅读(英文)」开关,并记住选择。深色模式调整页面栅格显示,图表颜色也会变化,关闭可查看原色;仿生阅读强化英文单词前半部分,需 PDF 有可用文字层,不改原文件或选文内容。
阅读工具栏的「全宽/单页/双页」归为一组;保留顶部「批注」入口,批注提问按钮固定在侧栏底部。返回 DSH 与设置一起位于右侧。切换宿主标签或重新载入插件时,恢复画板/写作工作区和原阅读位置。
文献表格可点击整行选中,或用 Tab 后按 Enter/空格选择,再点击「补全资料」。标题后显示年份并可直接复制 CSL 生成的 APA 7 引用。论文对话提供贡献、数据集、方法、实验与局限等常见问题,点击后填入草稿,由读者发送。
资料补全复用 Zotero 使用的公开题录来源:优先标识符,再匹配题名,接入免费 Crossref 与 arXiv API。PDF 前三页仅在本地检查,不上传正文。查询结果先放入编辑表单;完整作者列表默认填写编辑表单,保存后才写入目录。缺失单位、收稿/接收日期和 JCR 不推测补写。
「百科」与「难词本」在窗口标题栏直接切换,共用 Wiki 式索引和正文浏览器。可按最近更新、最新/最早添加、字母 A–Z/Z–A 排序,中文名称按拼音比较,排序覆盖全部匹配结果后再分页。200 字符内的批注增加「词条」按钮:先匹配既有词条与别名,也可新建概念、术语、机构、人物或缩写,并携带文献与页码。条目可关联多篇文献,用 [[词条名]] 互相链接;百科内容由读者整理,难词释义保留 AI/人工标记。所有条目保存在当前资料库的本地状态中,不改原批注。
批注栏直接从顶部翻页区下方开始显示,减少内层留白。原文以可选取摘录显示,「定位」回到 PDF;AI 回复可「复制回复」,或选中其中一段后「引用并追问」,在同一划线下新增备注,由读者填写问题再发送。
矩形区域进入批注栏视野后读取截图;在 DSH 中截图成功后自动调用本篇已配置模型生成「AI 图像说明」,作为该矩形下的原生 PDF 回复保存。每次只处理一个可见区域,不扫描全库;模型需支持图像输入,失败显示原因并可重试。已有描述复用,PDF 写入重试不重复生成。描述是 AI 对裁图的说明,需核对,不冒充论文原文。
持久翻译批注
在批注卡片顶部点击「翻译」,会按「语言模型与提示词」中的目标语言和模型设置,翻译原文摘录、评论及已有手写转录。默认自动方向为中文译英文、其他语言译中文。最多 8000 字符,超限不会截断翻译。新生成的翻译同时提取适合学习的单词与完整词组,保存原句、原句译文及文献来源到难词本,不增加第二次模型调用;保留人工词义和学习状态。历史已保存译文不额外调用模型补译。
译文以「翻译:」开头,标明 AI 与模型,作为标准 PDF 回复保存并显示在原批注下;导出或重新导入 PDF 后仍可读取。原批注保留。相同来源版本和目标语言重复点击复用已有译文;生成期间原批注改变时拒绝写回,保存失败可再次点击重试。删除译文可用其「删除回复」,不会删除原批注。翻译仅在 DSH 模型连接可用时提供,点击会使用模型额度。
使用
按下方步骤安装到 Harness profile 后,重启 Harness,在右侧面板的入口页选择 文献库 / Paper Library。启动时不会导入或扫描现有 Zotero 文献。
-
把 PDF 拖入窗口,或粘贴论文链接 / DOI,自动下载或复制、解析并保存。支持多文件顺序导入;「文献库」工具栏的「导入」可选择文件、输入本地路径,或导入 JSON、RIS、BibTeX。目录和元数据按每批 100 条继续处理,显示累计进度;每条记录保存检查点。
-
搜索标题、作者、年份、DOI、引用键、标签或摘要。侧栏卡片用于选文阅读;「文献库」或「展开表格」用于排序、分页和维护资料。点击文献题名进入阅读界面(无 PDF 的条目只显示资料,不产生 PDF 读取);演示文稿题名打开对应 Slides 项目。PDF 默认单页连续滚动,可在阅读工具栏切为「双页」并排,奇数尾页单独保留;页码输入框可精确跳转。单页最多保留当前页附近 3 页的图像和文字,双页最多 4 页,后续页面按需载入;首屏与页面均显示加载提示,失败可重试,动画遵循系统的减少动态效果偏好。「全屏阅读」扩展阅读区域,Esc 返回。阅读工具栏提供缩放:默认「全宽」自适应窗宽,可用 −/+、直接输入 25–400 的百分比,或点「全宽」复位;支持触控板双指捏合和触屏双指缩放,保持手势中心对应的阅读位置;普通双指滚动继续滚动。放大后页面可横向移动,停止手势后按屏幕像素密度提高图像清晰度;单页最多 1,600 万像素/单边 8,192 像素,达到上限会提示,驻留仍限单页模式 3 页/双页模式 4 页。点击文中的批注标记会定位并高亮批注栏里对应的条目;点击批注栏条目则滚动到文中该批注并高亮闪示(选文优先:拖选文字仍走批注流程)。阅读与批注栏之间有一条分隔条,可拖动无级调整侧栏宽度(160–720 px,键盘方向键也可微调),PDF 随窗宽自动重新适配;宽度、缩放与单双页布局保存在主机,换浏览器或刷新后恢复。
-
在顶部「批注」工具栏选择高亮、下划线、删除线及颜色,然后拖选文字保存想法;「便笺」可点选页面位置。阅读侧栏用「文献库/批注」标签切换内容,可整体移到右侧;切换时保留检索、列表滚动与 PDF 阅读位置。Ctrl/Cmd + K 返回文献库检索。窄屏或全屏时可收起侧栏,恢复 PDF 空间。点击批注窗口外部时,有文字就先保存后关闭,空白不新增记录;保存失败保留输入,显式「取消」或 × 仍取消。本插件新建及随后编辑的下划线使用更清楚的线宽,已有外部样式不批量改写。保存完成后,标准批注已写进管理副本 PDF。
-
顶部工具栏按当前操作切换。库和阅读工具栏中的「引用与导出」菜单提供 APA 7、BibLaTeX、批注 PDF 和批注文本导出,打开菜单保留当前视图和阅读位置;「资料详情」打开快速编辑窗口。资料草稿保存在运行 DSH 的本机,关闭页面、切换论文或换浏览器后可恢复。APA 7 同时提供富文本和纯文本;插件「设置 → 导出与维护」中的「导出文献库」导出文献与数据集的引用元数据;演示稿在 Slides 工作台导出。「生成 references.bib」根据文献库条目在
exports/目录生成引用文件与身份审计bibliography.audit.json,不选择本次提问的引用(引用键冲突、DOI 重复、缺失字段、受管 PDF 文件核对;缺 DOI 的条目按"有页面链接可补全/只能手工"分别列出);AI 会话也可用library_bibliography工具触发同一构建,并可显式分批核验 DOI 的公开登记信息——逐字段比较题名、年份、期刊与第一作者,冲突会同时保留目录值与登记值,只比较,不回写。 -
在「本文图谱」中添加方法、数据集、主张、证据、概念、作者或机构,并记录有方向的关系及依据。顶栏「全库图谱」或本文图谱中的「查看全库图谱」可跨文献浏览已保存的节点与关系,按目录每批最多 40 篇翻页,当前视图最多 100 个节点;可打开来源论文及已记录的 PDF 页码。全库视图只供浏览,编辑仍回到所属论文。作者、机构和标签等元数据节点与读者记录的主张分别标示;图中关系不会自动成为学术证据。
图谱支持「+/−」缩放、「适应全图」和拖动空白平移;Ctrl/⌘ + 滚轮也可缩放。键盘可用方向键平移、+/− 缩放、0 或 Home 适应全图;Tab 进入节点后用 Enter/空格选择。当前节点以外环、强调名称和关联边标识,来源说明在图下展开,选中不会重置缩放。全库图谱右上角「全屏」优先使用浏览器全屏;不支持时展开至当前页面,「退出全屏」恢复。
图下的年份与引用量图表统计整个有效文献目录,与当前图谱批次无关,并提供可展开的数据明细。年份缺失单列;引用量按已保存的 Crossref/OpenAlex/Semantic Scholar 来源快照分别显示已知覆盖数,不把缺失当作 0,也不按当前图中的连线数推算。尚未采集可识别引用量时明确显示无数据;这些统计只读取已有元数据,不联网补齐或更新。字段与结果上限见 图谱统计接口。
-
打开论文时,插件自动建立或复用这篇论文的 DSH 对话。「对话」打开阅读中的可缩放浮窗,关闭后保留问题与引用并停止刷新历史。通过「新增与更新」「选择…」或「全部」建立本次引用集合,可混选新旧批注、增删条目,并附加临时选文。之后保存的批注会提示加入,不会改变已有选择。插件内与 DSH 主页面使用同一段历史。
-
点击「放入主输入框」将固定的批注集合以原生引用标签追加到论文主对话,由你编辑问题、发送。左侧批注卡片的「问 DSH」会直接提问。仅准备草稿不会调用模型;「发送」和可选的「实时伴学」会使用模型额度。新安装默认关闭自动回复,升级保留已有选择。
-
对带批注引用的提问,DSH 完成回复后会自动将 AI 原文保存到对应批注下面,折叠显示为「AI 回复」。涉及多条批注的回复会在各自下面显示关联;批注计数只统计原批注。PDF 保存标准回复关系以及会话、消息、当次引用快照标识,重复保存不会增加副本。保存失败可在对话中重试,DSH 原回复保留。没有明确批注引用的回复仍可手动保存,显示在「未关联回复」中。
-
选中文字后点击「直接翻译」或「优化表述」,在「语言与词条」大窗口查看结果与表达说明。顶部只保留统一入口,翻译与表述、本篇记录和难词检索共用该窗口,切换时保留输入草稿。翻译默认按原文自动选择中英文方向,也可手动指定;表述优化保留原文语言、含义和证据强度。翻译默认优先使用已配置的轻量模型(DeepSeek Flash 非思考,其次 Kimi HighSpeed 低推理;不可用时沿用宿主),润色默认跟随 DSH。可在「语言与词条」中的「语言设置」或插件「设置 → 语言模型与提示词」中单独指定模型,并分别补充翻译/润色提示词;语言设置保存在主机,不改变 DSH 默认模型或论文对话模型。结果自动落盘,可复制或带入论文对话草稿。
-
「难词本」自动积累处理原文中出现的难词,保留原句、论文、已知页码与 AI 释义。可以检索、核对和编辑释义、标记已掌握、删除或导出 JSON / CSV。AI 推荐的难词初始为「待学习」,不代表已经学会。
语言窗口左侧的「侧边窗」可切换为不遮挡选文操作的右侧窗口,再点「大窗口」恢复;切换保留草稿与结果。「跟随语言设置」旁显示当前有效目标,自动模式随输入更新检测结果;没有输入或设置读取失败时明确提示。优化表述提供通用、语法纠错、精简表达、学术表达、逻辑衔接、通俗解释,选择方向后再点击生成;各方向均保留原文语言、事实、引用与证据强度。结构目录扫描采用增量更新,保留未变化卡片、展开状态、滚动位置和已载入截图。
在「语言与词条 → 词条 → 新建词条」输入难词和包含该词的原句,点「自动翻译并保存」即可同时保存词义与原句译文。默认带入当前论文、页码和所选原文;已有难词可点「补充原句与译文」关联另一处来源,保留手动修订的释义和学习状态。原句与 AI 译文并排展示,来源按钮回到 PDF 页码。原句标明由用户选取或填写,不冒充已经逐字核验。作者语言背景默认未知;可展开填写中文/非中文/混合语言背景及核实依据,仅作为用户注明,不从姓名、机构、国籍或文章语言推断。翻译使用已配置的语言模型路线,同一次保存重试不重复生成。
目录同时显示文献、数据集和演示文稿,可按类型筛选、排序和分页;点击演示文稿的题名或「打开」进入对应 Slides 项目。阅读项目只筛选其关联文献,演示文稿不属于阅读项目。
内容导航分为 文献 / 画板 / LaTeX 写作 / 阅读项目,搜索与分类共用一行,库计数和表格操作在其下;文献的阅读项目筛选与类型、范围、排序合并。阅读项目按学习或研究主题组织文献,与 LaTeX 写作项目分开;项目目录支持检索、分页与新建,打开后直接浏览成员文献及已关联的画板和写作项目。选择条目后,「路径」和「关联」按钮按需展开当前路径与关联内容,不再常驻占行;通过阅读项目建立的联系会注明来源,不按名称推断关联或移动文件。检索栏限制宽度。选定 LaTeX 写作项目后,同排「编译版本」按钮打开版本面板;成功手动编译保存源码、PDF 和自审快照。四个入口共用导航与列表样式,切换前保护未保存改动,详见内容导航。
草稿、引用选择、阅读位置、旧版偏好、语言记录与难词本存入 $DSH_HOME/paper-library/<文献库哈希>/state;未设置 DSH_HOME 时使用 ~/.dsh。不同浏览器连接同一个 DSH 服务时共享这些文件。文献与 PDF 继续放在配置的文献库目录,主对话继续使用 DSH 原生会话文件。浏览器只保留当前操作所需的内存数据,不把内容写入 localStorage 或浏览器缓存。旧版浏览器草稿会在首次打开时迁移并核对;冲突版本另存为本机备份,可从「导出旧草稿」取回。同时编辑发生冲突时,界面保留当前未保存文字并提供导出,不会覆盖另一窗口的版本。
资料库默认在 ~/.local/share/dsh-paper-library。PDF 导入时复制到该目录;原件不修改。关闭 Zotero 后可以继续使用全部本地功能。模型功能需要连接经过身份验证的 DSH 服务;同一服务可从不同浏览器访问。独立预览服务可以管理和阅读资料,但没有单独连接 DSH 模型的代理。
界面沿用 DSH 的中性色、系统无衬线字体、按钮与侧栏样式。在 DSH 中打开时,浅色/深色主题和内容字号随主应用实时更新,不需要刷新阅读页;独立网页跟随系统的浅色/深色设置。主题变化只调整阅读工具、面板和表单,PDF 原文及所选批注颜色保持原样。插件不另存一套主题偏好。
插件内的资料详情、论文对话、百科与语言词条、后台整理、研究难点及对话窗口共用标题拖拽:拖动标题空白处或移动图标;聚焦移动图标后可用方向键移动,Shift 加速。窗口可前置、调整大小并恢复位置,缩小桌面窗口后保持可触达。资料窗口的左右切换会重新停靠。论文关联数据集是非阻断窗口,始终显示它绑定的原条目;切换论文后仍按该条目保存关系,删除继续要求明确确认。
在 DSH 中,文献库、画板、LaTeX 和 Slides 的工具栏提供「返回 DSH」,全屏时也保留。返回前先检查写入和草稿;保存失败或存在冲突时留在当前页面。嵌入式标签使用宿主返回动作,DSH 挂载路径下独立打开的页面返回同源首页;独立预览服务不显示此入口。
图片细节矩形框与自由笔画
在「批注」工具栏选择 矩形框,用鼠标或笔在同一 PDF 页上拖框,再填写可选的说明并保存。框内透明,颜色和边框粗细可调整;取消弹窗或按 Esc 取消拖框不创建批注。保存为标准 PDF /Square,可在批注栏编辑说明、删除,导出与重新导入仍保留。
自由笔画 可在页面任意位置画线、圈图和写字,沿用原生 /Ink 保存与待存笔迹队列;点 完成笔画 保存本批并继续阅读。批注卡片的 手写 仍用于把笔迹关联到已有批注。
Pencil 文字标注与关联手写
读到值得追问的地方,先高亮,再点这条批注的 手写。直接在原页写字、圈出图表、画箭头,笔迹会关联到这条批注。需要整页自由写画时,也可以使用顶部的 自由笔画 工具。
1. 标准高亮,原页写画:高亮、下划线与删除线绑定正文文字。选好批注后,在 PDF 上继续写画,保留原文、图表与笔迹的空间关系。进入手写时就显示固定的一行工具栏;落笔和自动保存不会再把页面往下推。

继续查看:收笔保存、批注预览与返回手写位置
2. 收笔继续读,批注里看原笔迹:关联手写时,停笔约 1.5 秒后自动暂存;点击 完成手写 立即回到之前的标注工具,保存继续在后台进行。批注卡片展示原笔迹预览,原文摘录和手写想法一起保留。接入 DSH 视觉模型后,还可以自动转文字并校对,原笔迹继续保留。

3. 点笔迹,回到写下它的地方:点卡片摘录回到原文,点笔迹预览回到手写位置。目标区域会短暂描亮;查看后点 返回刚才位置 继续阅读。笔迹写入标准 PDF,导出再导入也能恢复关联。

以上三图为当前 main 的实际 Chromium 界面,使用合成文档和程序输入的演示笔画,无真实论文或模型生成内容。复现演示 · 安装当前源码
面向 Apple Pencil 随航阅读场景开发,目前以 Chrome 验证。笔与手指能否分开识别取决于系统和浏览器传入的事件;物理 Pencil/随航、Safari 和 Electron 仍需设备验证,当前没有压感笔宽或双击、挤压切换工具。
结束、保存、笔迹预览与定位已按 交互设计 接入插件;合成 Chrome 验证与真机待验范围见下文。
在 Mac 上打开文献库,将窗口移到随航的 iPad。在 批注 工具栏选择 高亮、下划线或删除线,用 Pencil 拖过正文:标注绑定选中的文字,保存为标准 PDF 批注。支持跨行与部分词语选择;同一次选文限定在一页内。没有文字层的扫描页可先添加「便笺」。Apple 随航说明
- 高亮后直接写画:点侧栏对应批注的整行「手写」按钮,直接在这一页 PDF 上写字、圈画。手写开关和顶部「完成手写」的点击高度至少为 44 px。笔迹自动关联该批注;再次点击会冻结笔迹并立即回到之前的高亮、下划线等工具,保存随后继续。备注在卡片内自动保存,手写仍从卡片进入。
- 停笔自动保存:停笔约 1.5 秒后暂存一批新笔迹。页码、手写状态和返回/撤销/清除/完成操作合并在固定一行;进入手写就显示,首笔与自动保存不再推移 PDF。主机确认接收后,即使阅读窗口被收起或重建,也继续写入 PDF。只有写入确认才显示「已保存到 PDF」。尚未暂存时可继续阅读,暂停新增手写;保存待确认时可按原身份重试,原笔迹保留。顶部状态显示已保存或待保存,异常会突出提示;展开「笔迹」可查看进度、重试或导出待存笔迹。
- 原文与笔迹各自定位:卡片内显示原笔迹 SVG 预览;点击摘录定位原文,点击预览定位笔迹。相距较远的笔迹分区显示。目标仅描亮 1.8 秒,不修改 PDF;「返回刚才位置」恢复查阅前的位置。后台页面更新避开正在进行的书写和选文。
- 结束后自动转文字:在 DSH 配有视觉模型时,结束手写后识别已保存的笔迹,结果显示在该批注下并标为 AI 识别。可展开校对;校对文字不会被后续自动识别覆盖。原笔迹始终保留,新增笔迹会提示文字待更新。失败可重试原请求,或明确点「重新识别」发起新请求;纯文本模型不影响笔迹保存。
- 写进标准 PDF:页面笔迹保存为原生
/Ink,以/IRT回复关系关联高亮;识别文字单独保存为带来源标记的回复。导出后重新导入可恢复,不依赖原目录数据库。旧的 SVG 手写便签通过「打开原便签」继续编辑,导入原件不修改。 - 自由手写继续保留:顶部工具栏「自由笔画」可不关联高亮地写画,以「完成笔画」冻结一批并恢复阅读。单批最多 64 笔/4,096 点/128 KiB;单论文最多 8 个待存批次/256 KiB,全队列最多 4 篇论文/16 批/1 MiB,达到任一限制会保留原稿并提示。每条批注合计最多 64 组、128 笔/8,192 点/256 KiB 几何。主机暂存确认前的崩溃和未完成笔画仍不保证恢复;父窗口交接只保留尚未确认的笔迹及队列引用。
笔与手指分工:在手写、高亮、下划线和删除线工具中,浏览器报告的笔输入负责标注,手指拖动负责滚动;放大后也可左右拖动。书写中的额外触控不会移动页面或取消笔画。默认保留鼠标兼容书写;打开 笔输入 可查看实际识别类型,确认 Pencil 显示「手写笔」后,可开启 仅用笔标注。若显示「鼠标兼容输入」,应保持关闭。该开关只限制上述标注工具,普通选择和便笺继续支持鼠标。
浏览器中断输入、失去指针捕获或笔移出未捕获区域时,已采集的笔画部分会保留,并提示继续书写;明确点「撤销」或「清除」才删除草稿。若再次出现笔画消失,打开 笔输入 → 导出手写诊断:本机最多保留最近 256 条输入、保存与重绘事件,仅含时间、内部标识、笔数和状态,不含正文、图片或笔迹坐标。诊断在后台分批记录,不能追溯升级前或尚未传回主机的事件。
当前先适配 Chrome,后续验证 Electron。macOS 27 与 iPadOS 27 的随航支持更完整的触控,但框架可能只转发兼容鼠标/滚动事件,不能仅凭系统版本保证网页能辨认笔与手指。Apple 开发说明 接收浏览器提供的捕获、中断取消与合并采样,使用固定笔宽;当前没有压感笔宽、Pencil 双击或挤压切换工具。待保存笔迹可逐笔撤销。
验证包括结束、预览与定位、笔与触控分工、关联页面手写、识别和旧便签兼容、标准文字标注及真实 Harness 图片接口,均使用合成文档,涉及模型时使用确定性替身。各回执保留实际日期;物理 Pencil/随航手感和真实识别准确率仍需实际试用。
阅读项目
文献库顶部的「阅读项目」把文献组织成可复用的主题清单:选一个项目,文献库就只列它的成员;选「全部文献」回到整库。
- 新建、编辑与归档:项目栏的「+ 新建」填写标题、说明与标签(逗号分隔);选中一个项目后才能「编辑」或「归档」。归档只把项目从列表移出,文献本身完全不受影响,需要时可以恢复。项目存在文献库目录的目录数据库里,因此与文献一起备份、检索,AI 会话也能读写。
- 一篇文献属于多个项目:论文工具栏的「项目 N」按钮打开勾选列表,勾选即加入、取消勾选即移出;列表底部可以直接输入标题并回车「新建项目并加入」。N 是这篇文献当前所属的项目数,列表里的「N 篇」是该项目的成员数。
- 多对多、不复制:关联只是目录里的一条边。移出项目不会删除或归档文献;归档项目也不会动文献,原来的成员关系在恢复后仍然成立。
- 画板可以属于项目:画板工具栏的「项目 ▾」菜单里选择阅读项目并「关联项目」(多对多,只写关联,不复制内容),与画板自身的论文关联互不影响。
- AI 也能整理项目:DSH 会话可用
library_projects工具列出、新建、改名、归档、恢复项目,关联或移出文献,并查询一篇文献所属的项目(for_paper)。它读写的就是同一个目录数据库,不复制文献。
验证记录见 9 项真实 Chromium 回执(PLAYWRIGHT_MODULE=/path/to/playwright/index.mjs node scripts/project-ui-fixture.mjs,合成文献库、零外部请求)。
文献画板
顶部「画板」打开一张自由画布:拖拽平移、滚轮滚动、Ctrl/⌘ + 滚轮缩放,工具条提供文本、便签、矩形、椭圆、菱形节点;拖动节点移动,右下角手柄改尺寸,右侧圆点拖到另一个节点即建立有向连线。多选(框选或 Shift 点击)后可删除、复制、方向键微调,Ctrl/⌘ + Z 撤销、Shift + Ctrl/⌘ + Z 重做。窄侧栏里可以点「全屏 ⤢」用整块屏幕画,Esc 或再点一次退出。
- 在 DSH 里是独立入口:DSH 右侧栏的「开始页面」提供文献库、画板、LaTeX 工作台和 Slides 工作台入口,可以分别打开并排使用。画板标签只显示画布(文献库、阅读与批注都不出现),需要看库时切回文献库标签即可。画布是同一份
web/board.js,页面通过?view=board以画板模式打开,并且先判定入口再加载,不会先闪一下文献库。 - 工具栏只留常用的,其余进菜单:画板顶部只有两行——第一行是工具与「画板 ▾」(文件列表),第二行是撤销/重做、缩放、视图组(适应 · 全屏 · 专注)、放入对话,右侧是「排版 ▾」「关联 ▾」和「☰」。节点/连线样式(形状、描边、关系、标签、线型、箭头、虚线、夹角)只在你选中东西时才出现;排版(含「整理成树」)在自己的可展开面板里;绑定文献(+文献/关联本篇/解除本篇)、源文件、Mermaid、接受 AI 改动、返回文献库与删除画板都在 ☰ 里。菜单是浮层:打开不挤压画布,Esc 或点空白处关闭。窄栏下工具栏仍是两三行(工具行可横滑),画布拿走其余全部高度。
- 与库解耦:画板是独立文件(私有状态记录),不绑定任何论文;一张画板可以同时关联多篇论文、阅读项目或 Slides(多对多、只写关联);「关联」侧栏支持按类型检索、分页及点选后关联/解除,失效条目也可按原 ID 解除。文献库左侧新增「画板」列表:可直接打开、对当前论文一键「关联本篇/解除」,论文工具栏也有「+ 画板」(新建即关联)与「这张论文的画板 N」。
- 画板专注与全屏:「专注」在当前窗口隐藏顶栏、文献库、阅读与批注,不需要浏览器全屏权限;Esc 或再次点击退出。「全屏」同时进入专注布局和浏览器全屏,退出后恢复进入前的专注状态。
- 形状各有其形:矩形是直角、便签是暖色纸片(方角 + 折角 + 轻微投影)、概念与文献是圆角容器、椭圆与菱形各是其形;给形状起名时输入框是半透明虚线框,不会把菱形暂时盖成一个圆角矩形。
- 空形状也会保留:形状工具点一下画布会出现形状并打开输入框;即使没有填写文字,按 Esc 或点别处后,形状与已有连线仍会保存。画布显示「(空)」,大纲按类型显示「(空矩形)」等名称,之后可以继续填写。正在输入时保存会等编辑结束。
- 连线:选「连线」工具后点起点再点终点即可连边(也可拖节点右侧圆点);选中连线后,画布右上会出现连线样式面板:线型(箭头/直线/折线)、箭头(单向/无/双向)、虚线、夹角,并填写关系与标签。拖动线段中段会插入拐点,拖动拐点调整走向,Alt 点击或双击拐点可删除;刚画好的线会自动成为选中项。
- 连线与节点边的夹角:连线不会贴着节点边扎进去。它和所连那条边始终有夹角:默认垂直于边,选中连线后可在「夹角」里调到 75°/60°/45°/30°,最小 30°(更小的值按 30° 处理),所以箭头总会稳稳落在边上而不是沿着边滑过去;新画的线沿用你最近一次选择的夹角。
- 自动排版:「排版 ▾」里可选择分层树(保留你排的上下顺序,支持左右/上下/反向)、放射思维导图、分层图 DAG,并可调水平/垂直间距后点「应用排版」(已选中多个节点时只排这些)。排版是确定性的:重复应用不会漂移。把特殊位置的节点「钉住选中」后,它们永远不参与自动排版。
- Mermaid 进/出:☰ 菜单里的「Mermaid」打开源文件对话框中的同一个输入框:粘贴
flowchart/graph(带 TB/TD/BT/LR/RL 方向)后点「解析为源文件」,它会解析成画板自己的源文件(节点形状、连线箭头/虚线、边标签、&分支、<br/>换行与实体都认),并自动按图示方向排版;随后仍用同一个「校验并应用」写入画板。反向的「画板导为 Mermaid」把当前画布写成可直接粘进 README 的文本。不引入 mermaid 依赖:只实现我们内部结构能表达的子集,看不懂的(classDef/style/linkStyle/click)会被忽略,subgraph会展开,~~~与粗线等近似都会在状态栏里按行号说明,不会猜。 - 可读源文件 + 样式辅助文件:点「源文件」可以生成、编辑、校验并应用一对文件——
board.json(标题、节点、连线;短标识、稳定键序、不含像素坐标)与board.style.json(配色、尺寸、字号、按关系的连线样式、排版方式与间距、固定坐标)。 两个文件都可手改或交给 AI 生成,也可以下载/导入;独立站还能直接用 URL 加载仓库里的源文件(见下)。 - 文献就是节点:把左侧文献库里的论文拖到画布上即成为文献节点(记录当时的题名、年份与引用键,缺失字段留空而不臆造),双击节点直接回到那篇论文的阅读器。也可以点「+ 文献」用键盘可达的选择器勾选一篇或多篇加入。
- 图谱节点也能进画板:在「知识图谱」里选中一个节点后点「加入画板」,它就会出现在当前画板里(文献类型节点保留论文绑定,其余按显示的名称成为概念节点)。画板与图谱占用同一栏、无法同时可见,所以这里用按钮而不是拖拽。
- 整理成树:选中若干节点(不选则整张画板)后点「整理成树」,按连线排成从左到右的层级:根在最左,子节点各占一列,父节点居中于首末子节点之间;同一张画板重复整理结果不变。没有连线的节点作为独立根排在下方,已有摆放不会被破坏。在「+ 文献」里勾选多篇并填一个主题,点「用勾选的文献新建画板」,就会得到一张已经排好的思维导图(主题根节点 + 每篇一个文献节点)。
- 放进对话:「放入对话」先把当前画板冻结成一份不可变快照,再把一个画板引用标签放进 DSH 主输入框;你可以先补问题再发送,只准备草稿不会调用模型。发送时 DSH 收到的是冻结那一刻的大纲(此后编辑或删除画板都不会改变已发出的材料),输入框里显示为「〔引用画板 …〕」标记。格式损坏、快照缺失或身份不一致会让这次提问明确失败,而不是改发别的内容。与批注引用共用预算(一次最多 4 组、默认 24,000 字符)。
- AI 也能读写画板:DSH 会话可用
library_board工具列出、读取、创建与修改画板。模型新增或改动的节点与连线会标为「AI 提议」(虚线边框)等待你确认,未改动的内容保留你的署名,只有你能「接受 AI 改动」;AI 新建的画板在你保存前一直是待核对状态。 - 保存与冲突:画板改动自动保存到运行 DSH 的本机(与批注草稿同一私有状态目录),关闭画板、切换画板或离开页面都会先写入。若同一张画板在另一个窗口被修改,界面会提示冲突,并提供「载入已保存版本」或「另存为新画板」,两边都不会被覆盖。删除画板只置墓碑,记录仍留在本机状态目录,可由人工恢复。
画板只在打开时存在于浏览器内存:没有常驻渲染进程、没有后台任务,打开、列表与绘制都不调用模型。验证记录见 34 项真实 Chromium 回执(含按 DOM 变更量而非耗时衡量的绘制代价守卫)(含画板入口以纯画布打开、420px 窄栏下工具栏收纳与画布占满整栏、按实测路径量出的连线夹角下限、粘贴 Mermaid 后写入画板并再导出、打开 draw.io 文件(含 draw.io 自己保存的压缩页)后写入画板并再导出为 .drawio,以及空形状不阻塞保存)与 7 项原生 DSH 回执,设计与边界见 docs/whiteboard-design.md。
画板与 draw.io 双向互通:.drawio/mxGraph XML(未压缩与他们保存的压缩形式都读)可以从「☰ → 源文件与来源 → draw.io」导入并走同一条「校验并应用」,也能把画板导出成 draw.io 与官方 draw.io MCP 都能打开的文件;无法表达的部分逐条带行号报告。同一份格式之上还有本仓库自己的 MCP 服务器 mcp/server.mjs(stdio、零依赖、默认只读、画板路径限定在 --root 内):读写可读源文件与 .drawio,加 --library <文献库> 后另外提供三个只读文献工具(检索、元数据、批注),node scripts/mcp-probe.mjs mcp/server.mjs --root <目录> 可直接查看它的工具面。许可证核查、实测的格式契约与边界见 draw.io 互通与 MCP。
论文流程工作区
在画板工具栏点击 论文流程,即可打开当前画板的流程工作区。支持单图、双图并排和合并比较,阶段/分组、自定义布局、正交布线、节点与连线编辑,以及 JSON 导入导出和 SVG 导出。可从空白流程或教学示例开始;示例只使用合成内容。
JSON 可直接拖入流程面板;「完整细节」开关及问号说明当前展示范围。DSH 中可将整张流程或选中节点与上下游放入主输入框,准备固定引用后由你编辑、发送。「画板批注」「流程批注」和节点详情中的批注入口共用阅读侧栏,支持整图与节点记录及定位,和 PDF 批注分别保存;独立站也支持批注并随全部 JSON 备份。详见流程使用与边界。
画布填满工具栏下方空间;图例、比较报告和人工对应从顶部按钮打开非阻断浮窗,支持拖动、调整尺寸及键盘关闭。SVG 导出保留图本身,图例在窗口中查看。
比较只使用输入明确声明的已知信息,并列出已比较字段、未比较字段与声明差异。可用 logical.compare_fields 明确选择部分对齐依据;未选择的差异继续保留。组件不按论文、领域或训练角色推断范围与等价关系,布局和跨图联动可通过可选提示声明。见比较契约。
流程文档、端口、比较规则与编辑草稿一起保存在主机,并与当前画板关联;原有自由画板节点、论文/项目/Slides 关联及对话引用保持原格式。保存失败或冲突时保留输入,可备份 JSON、重试或明确重新读取;切换 DSH 标签会保留活跃流程。浏览器或宿主强制关闭仍不能代替持久备份。独立静态画板复用同一组件,数据保存在该浏览器,全部 JSON 备份包括流程工作区。
导入与保存限制为 192 KiB、最多 10 份文档/20 个流程,每图最多 100 节点/200 条边,全区最多 400 节点/800 条边;超限和非法关系给出诊断。首期流程为 DAG,循环应在一个步骤内部说明。通用源码按用户授权从其抽象组件复制,未附带原研究适配器或研究资料;来源与依赖许可见 组件说明,接口见 流程工作区说明。
独立画板(GitHub Pages)
同一份画布代码也作为一个独立静态画板发布在 GitHub Pages 上,不需要 DSH、不需要服务器:
https://mappedinfo.github.io/dsh-paper-library/
(用 URL 渲染仓库里的源文件:?src=boards/example.json)
(2026-09-18 已用真实浏览器在线核对:资源可访问、可绘制、刷新后恢复、自动排版、连线与折线、导出 PNG、并用 URL 渲染仓库源文件,零第三方请求,见 线上回执)。它由 .github/workflows/pages.yml 在 main 上自动构建部署;
页面里的文献库、阅读器、对话引用控件在独立模式下隐藏而不是假装可用。存储用的是浏览器
localStorage(按来源与浏览器各自独立,容量约 5 MB,上限 40 张画板 / 4 MiB,界面会报告用量),
因此**「导出 JSON」才是长期备份**;导入同标识的文件不会覆盖,而是另存为新画板。独立站支持 PNG 导出
(按模型绘制,不依赖页面样式与字体)。构建与边界见 docs/board-pages.md,
本地回执见 docs/validation/board-standalone.json(15 项,含粘贴 Mermaid 成图),线上回执见 docs/validation/board-pages-live.json(node scripts/verify-pages.mjs 可随时复核,其中也验证 Mermaid 入口可用)。所有回执的「回执 ← 复现命令」索引见 docs/validation/README.md。
实时伴学
阅读页的批注卡片提供「问 DSH」。点击后使用本篇论文当前的 DSH 模型回应这一条批注,也可询问只有选文的高亮。回复作为标有模型来源的 AI 批注保存在原批注下,手动提问也可在「实时伴学」关闭时使用。
打开工具栏「实时伴学」开关后,保存或修改带文字评论的批注会自动排队。连续约 1.8 秒内修改同一条待处理批注会合并;不同批注依次回应。单纯高亮、历史批注和 AI 回复不会自动重发。侧栏备注自动保存明确跳过自动回复;点该卡片的「问 DSH」才先确认保存,再提交一次手动请求。
AI 按连续阅读方式回应释义、复述、追问、批判或联想,区分原文依据、读者理解和 AI 推断。需要时留下可稍后验证的问题,不强制当场考试,也不把解释过等同于已经掌握。每次只发送当前批注与所在物理页最多 7,000 字符的文字;不是全文、图表或 OCR 解读。复杂问题可以继续在同一篇论文的对话中补充材料。
任务和状态保存在 DSH 主机,关掉阅读页后继续;完成后回复写进 PDF 的管理副本,显示在来源批注下面。未开始的任务重启可恢复;不确定的生成不会默默重试。批注下显示等待、已保存或失败,PDF 写回失败可只重试保存已有回答。停止生成仍使用 DSH 主对话的停止按钮。关闭实时伴学会暂停未提交的自动任务。
这一版由插件内保存事件触发,不监听 WPS 或其他阅读器中的文件修改。也不自动更新私有伴学档案、数学基础库或领域知识库;这些知识沉淀仍属于明确选择材料后的工作流。实现与恢复规则见 API。
数据集与知识工作流
「库」支持按全部/文献/数据集/演示文稿检索和筛选。点击「添加数据集」登记名称、创建者、发布者、入口、许可与覆盖范围;无需 PDF 或介绍论文。数据集可以有多个版本,每个版本保留独立的 DOI、引用键和引用信息。未知版本保持为空。
在数据集页面「关联论文」,或在论文工具栏「数据集」,记录提及、引用、实际使用、发布或介绍关系。用途、使用范围、实际版本、原文、已知页码及核对状态分别保存;两边都能查询关系。名字相同不会自动合并,AI 提议始终待审阅。
「连接文件」登记运行 DSH 的主机上的文件绝对路径,或只保存远程入口。点击预览才读取本地 CSV/TSV/JSONL:最多 100 行、50 列、512 KiB 响应;另有 4 MiB 输入、64 KiB 单行和 2 秒解析预算。遇到预算或编码问题明确显示部分结果与原因。这里不会下载整个数据包、复制大文件、统计全量或为整个目录建立内容索引。
从论文、数据集或版本打开「知识工作流」:保存摘录或选择已保存批注,勾选本次材料,再生成关系草稿或知识笔记草稿。调用当前条目的 DSH 原生模型,一次最多 40 条来源、合计 24,000 字符;不会扫描全库。原文快照固定在主机目录,已有批注后来改变时可显式检查,新旧版本分开保留。模型建议先待审阅;接受笔记草稿后,还可以编辑并保存为 Markdown。审阅草稿时可点「结构检查」做只读体检:无支撑主张、孤立节点、未被引用的证据、重复关系与悬空端点会逐条列出,不自动修改草稿。
插件内置三个项目技能:paper-library-knowledge 负责 Evidence/Observation/Claim、Edge/Assertion 的有来源编码;paper-library-notes 负责可读笔记;paper-library-review 负责论文证据图谱评审(案例拆分、八维编码、归因三态、联合覆盖反拼接、逐项状态机),并在后台整理时自动生成一份「证据图谱评审」待审草稿。它们使用插件工具和当前 DSH 模型,不安装原技能的私有专家库、Wiki 自动发现或 Zotero 依赖;个人阶段标准与投稿侧重放在使用方自己的私有仓库,通过 reviewProfile 配置注入,不随插件发布。
数据集、版本、关联、固定来源和结构化草稿位于资料库 SQLite;笔记正文在 knowledge/notes/*.md,草稿和生成请求记录使用 DSH-home 文件存储。支持 CAS 冲突提示、显式核对和中断后的笔记恢复。浏览器缓存不承担持久化。
导出范围有明确区别:APA/BibLaTeX/CSL JSON 是引用元数据;CSL JSON 还保留数据集与版本的身份映射。「导出知识记录」包含当前范围的已审核图、笔记及它们引用的来源。「RKOS」是带映射和损失报告的兼容子集;原版不支持的数据集原生来源仍保留在知识 JSON 中。以上均不等同于包含原始文件、全部草稿与会话的整库备份。详见实施与存储约定和验证记录。
文献工作台
LaTeX 工作台现在使用本地打包的 CodeMirror:支持语法高亮、常用命令建议、撤销/重做及当前文件查找/替换。标题和操作合并为单行,导航可收起,并可选择并排、仅源码或仅 PDF。低频的「编译主文件」切换位于「项目与设置」菜单;同处可选择全局编译引擎(默认 XeLaTeX,另支持 pdfLaTeX/LuaLaTeX)。编译结果旁可展开诊断与日志,已确认的项目内错误位置支持点击定位。详见使用与边界及设计审查。
源码栏「英文拼写」开启本地英语检查,字典按需加载,不调用模型;点击疑似错词可定位源码。「翻译选文」只发送明确选择的草稿,译文先供查看复制;目标方向默认跟随共享语言设置,也可在本项目指定自动识别或固定语言;右上「项目与设置」可选择本项目模型、目标语言和补充提示词。模型默认跟随语言工具设置,宿主未提供价格和延迟时,轻量候选不代表已确认最低价或最快。导航使用「侧边导航」开关,「批注与写作」入口前有独立分隔线。
LaTeX 未完成内容用 todo 或 xxxx 标记,草稿和正式稿写作期间都允许。
PDF 预览支持全篇连续滚动,当前位置与相邻页按需渲染;高亮、下划线和删除线可直接保存,选文也可直接写批注。每次成功手动编译保存一个含源码、PDF 与批注副本的版本,工作台「版本」和内容导航中所选写作项目下的「编译版本」共用记录,可就地查看历史稿。旧批注保留原编译位置,不自动迁移到新排版。批注与版本说明
源码栏「插入」可导入图片、编辑表格和提取检查公式。⌘/Ctrl+Shift+I 插入图片模板,⌘/Ctrl+Shift+T 打开表格编辑;图片拖放或截图粘贴会保存到当前项目 figures/,表格支持 Markdown、Excel 复制选区与 .xlsx 文件。公式检查覆盖保存源码中的常见数学环境、括号和标签问题,仍需人工核对数学含义。批注保存只更新标记层,连续阅读提前准备下一页;文件路径字体在写作设置或 DSH 插件设置中自选。写作工具与限制
现可通过 library_latex 的 lint 或 JSON action latex_lint 显式检查:写作期列警告,
投稿检查发现占位或检查范围不完整时返回未通过,保存与编译照常。
调用示例、双入口与忽略规则。
库标题行提供紧凑检索。表格题名和作者各占最多两行,完整题名可悬停或聚焦查看;更多列通过表格内部横向滚动浏览。
查看 LaTeX 工作台:源码与编译后的 PDF 并排阅读

一个装着 .tex 和对应 PDF 的文件夹可以登记为 LaTeX 项目:源码、参考文献与编译产物留在原处,插件只索引主文件与页面。顶栏「LaTeX」把整页切成独立的 LaTeX 工作台(和画板一样,也可用 ?view=latex 作为单独入口,DSH 开始页面的「LaTeX 工作台」卡片则以独立标签页打开,写作可与文献库、画板并排;工具栏「返回文献库」返回),深浅色都跟随主题。插件自己维护论文目录(默认 ~/.dsh/manuscripts,部署配置 latexRoot 可覆盖),☰ 菜单里新建项目、写入最小 main.tex、登记已有文件夹、与其他项目对比与写作设置;该目录默认作为独立源加入数据同步服务(先备份、只新增、不删改其他源)。工作台本身是源码在左、PDF 在右、中间可拖拽分栏(比例落库);「修改提案」(逐字替换的提案先审后写,接受时走同一套 CAS 写入并记为 ai:<model>)与「问 DSH」、人工源码/PDF 批注统一放在**阅读侧栏「批注与写作」**中,共用左右切换、宽度拖拽与标题栏。每条人工记录提供「编辑/解决/问 DSH/生成修改提案」,DSH 回复与提案显示在对应批注下,模型名与「用户」标签区分留言来源。可在批注卡片内审阅待确认提案。右上齿轮「设置」选择 DSH 写作模型,侧栏不再常驻模型选择器。人工记录与模型协作保留各自来源,提案确认后才写入;打开工作台时自动展开,工具栏的「批注与写作」可随时收起。原生工具 library_latex 读、library_latex_edit 写:列出项目内文件、带修订号地读写 .tex、调用你本机的 latexmk 编译(xelatex / pdflatex / lualatex,可设超时,失败时给出错误行与日志尾部)、渲染项目 PDF,并在同一文件的历史版本之间或两个项目之间做 unified diff。写入是原子且带 CAS 的,路径始终被限制在项目目录内,clean 只删构建副产物。设计与边界见 LaTeX 项目。
「问 DSH」默认可只读检索当前 LaTeX 项目中的其他章节、参考文献和 PDF 文字。齿轮「设置 → 本次检索」可为下一次提问或提案填写公开学术检索词;只有这些词会用于 Crossref 和 arXiv 请求。回复的「检索来源」区分项目行/页码、公开题录和摘要。用法见 LaTeX 自审。
数据同步服务(例如 Vault Sync)同步来的 PDF 目录可以按符号链接纳入同一个访问地址:在插件设置里填同步服务配置文件路径,再写上选中哪些目录(或 [{"select":"all"}]),书库下会出现 external/<source>/… 的虚拟文件夹,几千个 PDF 不复制、不移动、不删除,扫描按大小/修改时间增量进行。第一次给其中一篇写批注时才复制进 pdfs/,同步目录始终只读。配置、扫描预算、重命名与文件消失的处理见**外部文献源**。不配置时插件与从前完全一致,两个插件都可以独立安装。
带 PDF 的文献默认阅读全文并自动整理。通过 DSH 导入或关联 PDF 后,文献进入主机队列;选中尚无整理记录的论文也会排队。读取范围留空表示全部,也可填写 1-5,8。使用本篇论文的 DSH 模型构建有出处的图谱并提出基础资料建议,不向主对话发送消息。
从导入到草稿的完整链路、每阶段写下的数据与存放位置见落库后的自动解析流程(含 Mermaid 图与数据产出对照表)。
「新增或选中文献后自动整理」和「完成后补齐空缺资料」默认开启,可在插件或 DSH 设置中关闭。关闭自动整理会暂停待处理队列,当前任务可单独取消。已有、失败、取消或中断的整理记录不会自动重跑,可点击「重新整理」。补缺只采用有原文依据的建议,保留已有值、DOI、引用键和 JCR;AI 填入内容仍待核对,并发修改时停止补写。升级保留已保存的开关选择。
全文按小批次连续读取:一次最多访问 8 页、8 段文字、24,000 字符;长页按文字位置继续读取,整篇不受 8 页限制。不同论文可有界并行整理(部署项 analysisConcurrency,1–4,默认 2),同一篇论文内部仍逐批串行,逐批保存来源和图谱;界面显示已完成页数,可切换批次审阅。扫描页和图像暂不做 OCR,未读取内容不纳入结论。整理完成后会基于已落盘的批次图谱再生成一份精读笔记草稿(一句话概括、研究问题、核心主张附页码、方法与数据、主要结果、局限与疑点、证据等级、待核实与未覆盖),同样待核对;笔记生成失败不影响已保存的图谱与资料。
在所需批次勾选节点并点击「选中材料加入论文对话」,只把选中节点及其关系加入草稿。关闭页面后队列继续运行,重启后恢复尚未开始的排队项;结果不确定的模型调用不会自动重发。取消或后续批次失败时,已完成批次仍可查看。分批图谱分别保留来源,当前不会自动合并跨批次同名节点。所有记录位于主机磁盘,不扫描现有全库寻找待处理项。
侧栏卡片以两行 12 px 题名、一行作者/年份,以及紧凑的期刊/引用键/PDF 行展示文献。完整信息可通过卡片提示或打开文献查看;标签与分区保留在表格和详情中。展开表格后,可新建元数据条目、编辑资料,按标题、第一作者、年份、期刊、引用键、导入/修改时间或 JCR 排序。检索、排序和分页由磁盘目录完成,不会打开全库 PDF。JCR 排序使用已提供记录中最新年份的最差学科分区,详情仍显示各条分区及来源。
库工具栏右侧以红色标出「移入回收站」;归档保留论文身份、管理副本 PDF、批注和图谱记录。在文献范围中选择「回收站」,点击「恢复」即可返回文献库。回收站中的文献不能直接阅读或编辑,先恢复后继续使用。
资料表单支持作者对应机构及发表、在线发表、印刷发表、收稿和接收日期。日期可以只填已知的年或年月。「补全资料」按已保存的 DOI 或论文链接获取公开元数据,身份匹配后仅补缺,打开可核对的编辑草稿;保存前不会改动目录或 PDF。已有手工资料与 JCR 记录保留。JCR 每条记录须有年份、学科、Q1–Q4 分区及来源;插件不依据引用次数或影响因子猜测分区,也不会把 Crossref 注册日期、更新日期或 arXiv 提交日期当作期刊收稿/发表日期。
图谱按论文保存读者添加的节点、方向关系、原文、解释、来源和已知页码。元数据节点只读,需通过资料编辑改变;读者节点和关系可编辑、删除,删除节点会同时删除其读者关系。每次最多显示 200 个节点、400 条关系,超出时提示缩小范围。未知页码留空,相同姓名不会自动合并为同一个人。交互与边界见工作台设计约定,调用方式见 API。
全文分析与图谱浏览
在「本文图谱」点击 全文分析建图,按页分批分析当前整篇 PDF;可在后台整理面板查看进度或取消。保存的分析节点随批次绘制,保留页码、原文出处与 AI 待核对标记,未读页和失败批次仍显示。此入口不改书目资料,也不批量分析全库。图谱最多显示 100 个节点,后台已保存结果不因显示上限删除。
后台整理中的 修订未通过判断 只复查原任务未通过的回答:沿用该任务的不可变原文快照和模型,保留已通过回答;修正引文、来源和端点,无法支持的判断明确撤回。原任务和修订依据均保留,新草稿替代旧草稿的图谱展示,不自动核准;修订失败仍可查看原回答。
点击「查看全库图谱」会保留本文节点及其关联作为高亮,其他节点淡化;「取消聚焦」清除选择和节点类型筛选,无聚焦时禁用。切换到 论文引用 只看论文节点与有方向的引用边:复用已记录的 cites 关系,以及已保存参考文献中精确 DOI 匹配的库内论文;还可点击 提取参考文献:本地读取当前 PDF 末 40 页中 References 标题下连续编号或作者—年份格式的参考文献,保存题录原文和页码。未匹配库内条目的被引论文也显示为明确标记的参考文献节点,可返回来源页;不补造作者、题名或 DOI,不把共同作者或标签推断为引用。支持 [1] 连续编号及“姓, 首字母., 年份. 正文”等明确变体;跨页、断行和重复页眉会处理,疑似截断条目保留待核对而不生成引用边。进入本文「论文引用」模式时,缺失或过期快照会自动提取;已有有效结果直接复用。全过程不调用 LLM;未识别格式保留旧结果并说明原因。全库仍按目录分批显示,可继续翻批。
论文对话
首次建立论文对话时,沿用当时 DSH 会话可读取的模型选择和推理强度;没有来源选择时采用 Harness 默认。之后由这篇论文的主对话管理模型,插件显示其实际选择。模型服务、对话历史、工具执行和权限处理均由 Harness 提供。需要查看完整历史、处理工具权限或停止回复时,点击「打开主对话」。
尚未发送消息时,对话已经保存,但 DSH 侧栏会隐藏非当前的空对话,当前空对话则显示「新会话」并收起主页面标题栏。可以从论文的「打开主对话」进入;首次发送后,侧栏会正常显示论文标题。
「查看/调整」支持检索、按页筛选和多选,每页显示 20 条。目录最多读取 1,000 条用户批注,原文和评论各显示 240 字符摘要;发送前会核对所选版本并读取完整正文。已编辑的选中项需显式采用当前版本,已删除项需移除。「全部」只在目录完整且身份可区分时可用,排除 AI 回复。
默认一次来源预算为批注原文、评论与选文合计 24,000 字符,超过时提示减少选择、分次提问,不会静默截断。部署方可用 maxAnnotationCharacters 调整至 1,000–96,000;这不是模型的上下文长度保证。尚未实现自动分批汇总。选文上限为 8,000 字符,问题上限为 4,000 字符。
准备引用会保存不可变的私有快照。之后编辑 PDF 不会改变已经放入主输入框的材料,失败重试继续使用同一快照。保存、选择和排队都不单独计作「已发送」;只有原生会话实际记录来源正文并确认持久化,才更新「未发送/发送后已更新/已发送」状态。长期对话压缩后可以重新选择旧批注,「已发送」不代表模型始终记得。
对话正文与侧栏 AI 回复支持 Markdown 标题、粗体、列表、引用、代码和表格;不执行生成的 HTML,也不自动加载远程图片。插件发起的每次完整回答自动保存为一条原生 PDF 便笺:有来源批注时放在第一条来源附近并关联它;只有选文时使用选文页,没有定位来源时放在首页。所有引用仍保留在 PDF 元数据中,但侧栏只展示一次。中断/失败回复不自动写入,保存失败可重试,原对话保留。
插件内只显示最近最多 20 条已提交的用户/AI 文本,每条最多 6,000 字符,总计最多 48,000 字符。点击历史中的「查看当次引用」可读取固定材料并返回 PDF 页码。主对话使用 DSH 原生 Paper Library 上下文显示来源正文;输入标签可打开快照检查器。刷新后标签暂时恢复为普通引用 token,仍可发送和查看,尚不自动重建标签。批注带上题名、引用键、真实页码及标识,与问题分别记录;AI 回复仍需由读者判断。
对话历史保存在 Harness,标准批注和已保存的 AI 回复保存在 PDF,引用快照保存在文献库的私有 .paper-library/ 目录。快照用于复现当次发送材料,PDF 仍是可编辑批注的权威来源。引用与问题草稿按论文保存到本机,每条记录上限 256 KiB;内存工作集受限,旧草稿不会因切换论文而被淘汰。发送版本投影最多保留 5,000 个身份,超出时返回不完整标识。回复关联只采用本轮已实际写入 DSH 日志、且与固定快照一致的批注引用,不根据 AI 措辞猜测,也不把上一轮引用自动沿用到无引用的追问。旧的未关联回复若仍能在当前历史窗口找到可靠引用,会补上关联并保留原文;否则保持未关联状态。归档的论文对话会显示状态;当前 Harness 没有供插件调用的恢复归档接口,插件不会自动复制对话。移动文献库目录后,目前不会自动迁移原来的论文会话对应关系。详见持续批注与对话引用。
自动获取与命名
支持公开 PDF 直链、DOI、arXiv 链接,以及带论文下载元数据的页面。文件按流写入磁盘,再用 PDF 解析器检查可读性。默认读取最多前三页和文件内元数据;检测到 DOI 时,在线题名必须与 PDF 解析标题匹配,才补全作者、年份等字段。不会因正文出现了另一篇论文的 DOI 就替换当前资料。
管理副本命名为 作者-年份-标题--稳定标识.pdf;缺失作者或年份使用 unknown-author / undated,显示“资料待核对”。编辑资料后文件名随之更新。来源链接、获取记录和解析依据保留在条目及 PDF 内。仅取得元数据时明确显示“尚未取得 PDF”,可以稍后补入已有文件。
插件内置 paper-fetch-skill 的独立文献库版本:paper-library-fetch,通过 Harness 技能目录提供给当前会话。可以在 DSH 中要求“用 paper-library-fetch 把这个 DOI / 链接的论文保存到文献库”,技能调用插件的 library_import,继续使用会话现有模型。内置公开下载流程,不需要额外安装 Zotero、MCP 服务或浏览器抓取运行时。改编来源见 出处记录。
导入队列最多 50 项,PDF 上限 250 MiB。一次失败不会阻断后续文件,结果面板提供重试或重新拖入提示。扫描件暂不自动 OCR;需要登录、验证码或付费的页面可能只能取得元数据,此时使用已有合法 PDF 继续导入。
从 Zotero 迁移
支持 CSL JSON、Zotero/Better BibTeX 风格 JSON 的 items 数组、RIS 和 BibTeX。带 attachments[].path 的 JSON 可保留相对目录结构并一并复制 PDF;保留 citationKey / citation-key / Citation Key:。BibTeX、RIS、CSL JSON 主要用于文献元数据,不能保证携带附件和原生批注。
只有 Zotero 数据库中存在的批注,需要先导出到 PDF,或提供带位置数据的 JSON。 原样复制 Zotero 存储目录中的 PDF 不一定带有这些批注;Zotero 官方说明对此有明确区分。插件可读取已嵌入的外部批注,也可导入 JSON 中带 annotationPosition 的高亮和文字批注;缺少坐标会显示警告。
导入前保留 Zotero 原库及导出副本。重复 DOI、同来源引用键、相同 PDF 哈希会去重;引用键与不同论文发生冲突时明确跳过并报告,避免误合并。当前不迁移 Zotero 收藏夹层级、独立笔记、快照附件或文字处理器中的动态引用字段。
批注跟随 PDF 的方式
- 标准 PDF
/Highlight、/Text对象保存高亮和评论,/Contents是普通可读评论;包含作者、日期、标识与坐标。 - CSL 元数据作为
paper-library.csl.json内嵌附件保存,复制 PDF 后重新导入可恢复标题和引用键。 - 支持导出 XFDF、JSON 和 Markdown。PDF 中的批注为权威数据,检索目录不会替代它。
- 写入前保留上一版 PDF 到资料库
backups/,验证新文件后原子替换;每篇仅保留一个上一版备份。恢复时关闭该文件,复制对应备份覆盖管理副本后刷新。 - 加密、带签名及需修复的 PDF 拒绝写入。外部阅读器可能改写或删除自定义元数据,原生高亮和评论仍按标准对象读取。
已通过 PDF 复制至新位置、导入全新资料库后的批注恢复测试。WPS 的实际保存往返尚未验证;本机原生应用自动化未成功完成打开副本,因此没有将格式测试宣称为 WPS 兼容性认证。当前没有 WPS 动态引用插件。
需要分辨同一页面的不同批注版本时,可按需运行本地 PDF 批注版本检查:分别比较页面、批注内容、笔迹与附件,输出私有分组报告,不修改或合并文件。
内存设计与验证
按约 2,000 条记录、1,000 个 PDF 设计验证规模。SQLite FTS5 trigram 索引在磁盘,缓存预算 2 MiB;短于 3 字符的查询使用字面检索回退。检索不会打开 PDF。PDF 渲染、修改和 CSL 引用格式化均使用短时进程,完成后退出;界面只保留当前页,隐藏 Harness 阅读面板时卸载 iframe。
PDF 上传和下载均使用流式处理,不做整份 Base64 拷贝。服务器限制同时接收的 PDF / JSON 请求,导入队列还设有独立载荷预算,避免大量排队的元数据文件持续占用内存。下载只在导入时触发;资料补全仅在导入或点击「补全资料」时按需请求。
打开论文时只保存一个轻量的原生对话记录,不启动 Agent 或调用模型;不会在批量导入时为所有文献启动对话。批注目录只在当前论文打开、保存或明确刷新时按需解析,快照检查器只保留当前预览。插件只在当前对话视图可见时刷新有限历史,隐藏后停止刷新。真正打开 DSH 主对话或发送消息后,Agent 的驻留与释放由 Harness 管理;当前未测量大量已激活对话长期阅读后的总内存。
没有常驻向量模型、后台 OCR 或全库 PDF 预解析。目前快速检索覆盖元数据和摘要,不包含全文检索。这是当前版本的功能边界,不能据此判断 Zotero 的高内存原因。
本轮合成 2,000 条记录/1,000 个 PDF 的检查中,读取一篇 45 条批注的论文、打开另外 20 篇冷会话并刷新历史 30 次后,Harness 主进程闲置 RSS 为 569.88 MiB,采样最大值为 602.17 MiB;精确批注读取的短时 PDF worker 峰值为 58.14 MiB。历史刷新没有打开 PDF,闲置时没有 PDF worker 或活跃 Agent。上述数字不包含浏览器,不能相加当作应用总峰值,也不能与较早的独立运行直接比较性能改进。详细方法见验证记录。合成文件是小型文字 PDF,不能代替真实扫描件/大图 PDF 的容量验证。
安装与开发
当前源码版本为 v0.2.5,包含 Windows 启动与 PDF 保存兼容修复。 npm 的 latest 可用 npm view @mappedinfo/dsh-paper-library version 核对;也可按下方步骤安装当前 main 源码。
Node ^22.19 || >=24、Python >=3.11、uv 和已构建的本地 DeepSeek Harness。
原生 Windows、macOS 和 Linux 均为基础文献管理、PDF 批注和本地状态存储的维护目标。Windows 基础路径不要求 WSL;仓库提供 Windows/Linux 原生回归,覆盖实际 CLI、中文路径、跨进程写锁、PDF 保存与恢复。该检查不代表完整桌面 GUI、Pencil 或 Windows TeX 工具链均已验收;LaTeX 编译仍需自行安装 latexmk 与 TeX 引擎。
文件写入在各平台保留文件同步和同目录原子替换。POSIX 另同步目录;Windows 跳过普通文件 API 不支持的目录同步,因此不承诺相同的断电持久性。0700/0600 权限仅适用于 POSIX;Windows 沿用所在目录的文件系统 ACL。符号链接功能可能需要 Windows 开发者模式或相应权限。Windows 用户应使用 0.2.5 或之后版本;0.2.4 及更早 npm 包不包含这次修复。源码安装请运行 uv sync --locked 补齐依赖。
git clone https://github.com/mappedinfo/dsh-paper-library.git
cd dsh-paper-library
npm ci --ignore-scripts --legacy-peer-deps
uv sync --locked
npm run build
node scripts/install-harness.mjs --harness /absolute/deepseek-harness --home /absolute/dsh-home --profile web
将示例中的路径替换为本地已构建的 Harness checkout 和目标 DSH 配置目录。不传 --home 时安装脚本使用项目内隔离 profile;不会默默修改用户全局配置。脚本仅链接声明的 Harness 运行时依赖,并调用官方插件命令注册。重装依赖后可重新运行它恢复本地依赖链接。源码更新与 npm 发版分别进行;升级时请核对所安装版本的 变更记录。
独立本地界面与 JSON CLI:
npm start -- --library /absolute/library --port 43121
node src/cli.mjs --library /absolute/library < request.json
默认服务仅监听 127.0.0.1,拒绝跨来源写入;Harness 内使用其现有认证服务。论文对话不读取其他应用的密钥,不创建第二套服务配置。部署配置支持绝对路径 library、python;localStateHome 可覆盖状态文件所在的 DSH home。provider、model、maxOutputTokens 保留给原有独立反馈 API,论文对话和语言工具使用 Harness 自身的论文会话配置。语言生成独立使用 maxLanguageOutputTokens,默认 8,192,以容纳完整译文和词汇释义。analysisConcurrency 控制同时自动整理论文的上限,默认 2,可调 1–4。translationServer 可指向一个自部署的本机 Zotero translation-server(仅回环 http,如 http://127.0.0.1:1969):「补全资料」在主路径(Crossref/页面元数据)取不到结果时,把同一 DOI/arXiv/页面链接交给侧车的 translators 再试一次;候选条目仍须通过既有的 DOI/题名人身份核对才生成可核对草稿,不会写目录。插件不打包、安装或启动该服务(其许可证为 AGPL-3.0,见 第三方许可),也绝不向它发送 PDF 正文、批注或草稿。详见 API 与 cordis.patch.yml。
验证命令:
node scripts/validate.mjs
npm run test:harness
uv run python scripts/benchmark.py --output artifacts/capacity-new
node --expose-gc scripts/benchmark-node.mjs artifacts/capacity-new/library artifacts/capacity-new/node-report.json
测试使用合成数据,产物与文献目录不进入 Git。CSL 使用官方 APA 样式与 citeproc-js,BibLaTeX 使用 Citation.js;出处、版权声明及依赖的许可义务见 THIRD_PARTY.md。
当前共享侧栏更新通过 297 项 JavaScript、105 项 Python 测试,以及 13 项侧栏浏览器流程;另重跑通过 12 项主题和 18 项阅读流程。浅色/深色下验证了紧凑卡片、文献与批注切换、左右移动、阅读位置保持、批注编辑、表格和窄屏/全屏恢复;合成卡片最大高度约 84.06 px,低于测试上限 90 px。侧栏检查没有调用模型、外部请求或浏览器存储写入。
主题专项的 12 项浏览器检查覆盖浅色/深色、430/741/1400 px 布局、键盘焦点、抽样文字对比度和不刷新页面的主题/字号同步。同步检查使用真实 DSH 样式和插件桥接代码,主题事件来自隔离测试环境;验证范围见对应回执。
此前语言学习与本机保存通过两套独立浏览器上下文的 12 项流程,以及真实 DSH 的 6 项集成检查:覆盖翻译、优化、难词积累、跨浏览器草稿、冲突恢复和重启后的幂等重试。该里程碑也验证了阅读、目录工作台、主对话引用的 17、13、11 项浏览器流程;这些专项流程保留此前证据。模型输出采用确定性本地替身,没有外部模型请求。自动化测试、安装核验和此前容量测量的准确范围见验证记录。