Skip to content

Releases: dingdinglz/zotero-translate

Smart Paper Translator v0.1.46

Choose a tag to compare

@dingdinglz dingdinglz released this 30 Sep 06:32

划线翻译弹窗与摘要面板中的译文现在支持鼠标选中,并用 macOS ⌘C(Windows/Linux Ctrl+C)复制。本版包含上一正式 Release v0.1.45 之后的全部更新。

  • 修复 Zotero 阅读器取消鼠标默认行为、导致译文无法选中的问题;为两处译文启用原生文字选择和焦点。
  • 复制时只保留当前选中的译文纯文本,清除阅读器可能附带的 PDF 批注内容;其他区域的复制、面板拖动和缩放沿用现有行为。

验证:338 项自动测试、JavaScript 语法及静态检查通过;XPI 的 44 个运行时文件与发布提交中的源码逐字节一致,ZIP 完整性与 SHA-256 校验通过。最终包在 macOS Zotero 10.0.4 / Gecko 140.15.0 中通过 AddonManager 非安装式解析:ID、版本正确,error=0、isCompatible=true、appDisabled=false。隔离合成界面中已验证摘要的原生选择和纯文本复制;后续窗口自动化超时,完整安装后的拖选、复制和启停/重启尚未验收。本轮未安装插件、修改真实文库或调用模型。

插件清单兼容 Zotero 9.0–10.0.x;Zotero 9.0.6 本轮未重新执行原生验证。

下载 smart-paper-translator-0.1.46.xpi,在 Zotero「工具 → 插件」中选择「从文件安装插件」手动更新。安装后,可在划线译文与摘要译文中各选一段并复制粘贴,确认内容与选区一致。

XPI SHA-256:ea03c22c03b8afd2350cfda618f1e9c49c047861ec9206271fcb1363507f2415

完整变更

Smart Paper Translator v0.1.45

Choose a tag to compare

@dingdinglz dingdinglz released this 30 Sep 05:52

点击文库列表中的单个智能标签,现在可以查看该文库全部分类下的同标签文章,并点击标题在文库中定位。本版包含上一正式 Release v0.1.41 之后的 v0.1.42–v0.1.45 累积更新。

  • 新增同标签文章列表:按完整标签名匹配,规范化空白并忽略英文大小写;支持分页、刷新和点击定位。只读取已有本地标签,不调用模型;沿用手动标签和手动清空的优先级。标签读取失败会提示结果可能不完整,可刷新重试。
  • 文库智能标签支持直接添加、改名、删除和清空。点击「编辑」或空白单元格的「+ 标签」即可操作;支持多语言及无摘要条目,每篇最多 20 个标签、每个最多 64 字符。手动保存优先于自动生成,不修改 Zotero 原生标签。
  • 修复标签编辑浮层的输入框、按钮和边缘对齐;修复同标签文章浮层的大块空白与序号、标题错位。长标题可换行,窄窗口保持对齐,翻页后焦点落在第一篇标题上。
  • 加强窗口、条目和异步请求校验:关闭或切换视图后丢弃迟到结果,标签或文库变化后要求刷新,定位前再次核对条目和标签。
  • 更新 develop-zotero-plugins Skill 及配套参考,新增 Zotero 9 → 10 迁移指南,补充非安装式原生验证、资源读取、私有截图桥和发布核验流程。

验证:335 项自动测试、JavaScript 语法及静态检查通过;可复现构建的 44 个运行时文件与源码逐字节一致,ZIP 完整性和 SHA-256 校验通过。最终 XPI 在 macOS Zotero 10.0.4 中经 AddonManager 非安装式解析,返回正确 ID/版本、error=0、isCompatible=true、appDisabled=false。原生隔离合成界面验证了分页、标题定位回调、窄窗口和长标题对齐;最终包与验证文件字节一致。

插件清单兼容 Zotero 9.0–10.0.x。Zotero 9.0.6 本轮未重新执行原生验证;本轮未安装插件,也未执行安装后的完整文库交互、启停/重启或真实模型请求测试。

下载 smart-paper-translator-0.1.45.xpi,在 Zotero 的「工具 → 插件」中选择「从文件安装插件」手动更新。

XPI SHA-256:edcb56b2323843cadd0a80c20e801fd071f37c5265b9fcadea00eb9f257c7450

完整变更

Smart Paper Translator v0.1.41

Choose a tag to compare

@dingdinglz dingdinglz released this 29 Sep 03:08

修复 Smart Paper Translator 在 Zotero 10.0.4 中显示“不兼容”的问题,保留 Zotero 9 支持。本版同时包含上一正式版 v0.1.39 之后的 Windows 路径和 Agents 侧栏改进。

  • 插件清单兼容范围更新为 Zotero 9.0–10.0.x,并核对 Zotero 10 的 Reader、Item Pane、设置、资源读取和本地化接口。
  • PDF 原页截图支持经验证的 Zotero 9.0.6 / 10.0.4。其他精确版本继续禁用截图;Zotero 10 的 Reading Mode 重排视图不捕获后台隐藏的 PDF。截图仍从原页生成,保留草稿与资源限制。
  • 公共运行环境发现、PDF 附件及 Codex View Image 补充 Windows 盘符/UNC 路径处理;工作区 HTML 检查保留完整盘符/共享根,继续逐级拒绝软链接。
  • 合并流式更新与镜像写盘,减少长对话重绘;工具卡片展开时才构建内容,并在更新时保留滚动位置。工具原始输出限制为 64 KiB,旧历史按相同规则处理。
  • 固定 D3 bundle 的 LF 换行与完整性校验,避免 Windows 检出时转换换行导致图表资源校验失败。

验证:316 项自动测试、JavaScript/静态检查、可复现构建、44 个运行时文件与源码一致性、ZIP 完整性及 SHA-256 校验通过。最终 XPI 在 macOS Zotero 10.0.4 / Gecko 140.15.0 中经 AddonManager 非安装式解析,得到 error=0、isCompatible=true、appDisabled=false;合成 PDF 的原页 PNG 渲染与红蓝像素校验通过。

尚未执行完整安装后 UI 冒烟或真实模型请求测试;完整 Windows Agent 启动,尤其 Pi/OpenCode,仍未验证。Zotero 9.0.6 沿用历史验证。

下载 smart-paper-translator-0.1.41.xpi,在 Zotero 的“工具 → 插件”中选择“从文件安装插件”完成更新。截图请使用 PDF 原页视图。

XPI SHA-256:250b4a0afebf571ea4e35723db4fdd84881630f626c1e654b95adcf30a940034

完整变更

Smart Paper Translator v0.1.39

Choose a tag to compare

@dingdinglz dingdinglz released this 11 Sep 06:16

Agents 侧栏新增 OpenCode,直接连接本机 opencode acp,复用已有登录、模型与权限配置,无需配置 Node / npx。本版包含上一正式版 v0.1.37 之后的 OpenCode 接入与检测修复。

  • 支持 Build、Plan 及本机自定义运行模式,模型与思考选项随 OpenCode 返回值更新;配置确认成功后保存。
  • Codex、Pi、OpenCode 按论文分别保留历史、会话配置和草稿。OpenCode 支持历史恢复、PDF 选区和截图,并复用公式、Mermaid、visualize 与文件引用渲染。
  • 设置新增 OpenCode 标签页,支持候选路径、手动输入与文件浏览;路径为空时,刷新或检测会自动采用本机候选,包括 ~/.opencode/bin,保留已有手动路径。
  • 修复本机扩展的终端标题控制码混入协议导致的 ACP_INVALID_JSON,以及长模型目录读取不完整的问题。检测不发送提示词,使用独立空会话和临时数据库,结束后清理进程与临时数据。
  • 模型明确支持图片时才发送截图,否则保留完整草稿;不支持原生 PDF 输入时提供论文文本快照引用。禁用自动升级、后台模型目录刷新和 npm 下载。

兼容 Zotero 9.0.x,验证环境为 macOS Zotero 9.0.6 / OpenCode 1.18.30;OpenCode 要求不低于 1.18.30 的稳定版 1.x。289 项自动测试、静态检查、可复现构建、归档和哈希校验通过,最终 XPI 通过 Zotero 原生安装器的非安装式解析。原生检测已覆盖本机配置与 901 个合成模型的长列表;尚未进行完整安装后的聊天 UI 冒烟或真实模型请求测试。

下载 smart-paper-translator-0.1.39.xpi,在 Zotero 插件管理器中选择“从文件安装插件”。安装后打开插件设置的 OpenCode 标签页,点击“检测 OpenCode”。

XPI SHA-256:2481826d15cfcdf090ea300314440a95643afc579df6aca96c344815629333f3

Smart Paper Translator v0.1.37

Choose a tag to compare

@dingdinglz dingdinglz released this 10 Sep 15:18

Agents 侧栏现在可以直接显示回复中的 visualize HTML 图表;已有历史中的标记也能加载,支持图例交互、展开查看和重试。

  • 修复 Zotero 9.0.6 下图表“加载超时,请重试”:正确读取安装包内的 D3 和主题文本,并修复隔离图表向原生侧栏报告加载状态的兼容问题。启动错误会及时显示。
  • 内置 D3 7.9.0 和明暗主题,图表预览无需联网下载资源。只读取当前论文、当前 Agent 和当前会话工作区内的 HTML;图表在禁止联网的隔离 iframe 中运行。
  • 切换论文、Agent 或会话时清理预览,避免显示旧图表。
  • 包含上一公开版本 v0.1.33 之后的改进:Agents 消息支持原生文字选择与复制;术语面板可删除当前论文的术语及对应翻译缓存。

兼容 Zotero 9.0.x,验证环境为 macOS Zotero 9.0.6。261 项自动测试、静态检查、XPI 结构与校验全部通过;原生临时图表验证和最终 XPI 的 AddonManager 非安装式解析通过。尚未进行 0.1.37 完整安装后的 UI 冒烟测试。

下载 smart-paper-translator-0.1.37.xpi,在 Zotero 的插件管理器中选择“从文件安装插件”。安装后重新打开原论文即可验证历史图表。

XPI SHA-256:01f643c960a9e4c21d184cb3461238650f14081856cb221bbac57ca7d7cc564e

Smart Paper Translator v0.1.33

Choose a tag to compare

@dingdinglz dingdinglz released this 07 Sep 07:24

本版本汇总自上一版正式 Release v0.1.28 以来的改进,主要增加可切换 Codex / Pi 的 Agents 侧栏,并完善权限、运行环境配置与选项显示。

  • Agents 侧栏:原 Codex 入口更名为 Agents,可切换 Codex / Pi。每篇论文分别保留当前 Agent,以及各自的历史、模型、思考强度和草稿;Reader 选区与截图加入当前 Agent。
  • Codex Full Access:新会话默认审批模式,可为当前论文的 Codex 会话选择 Full Access,允许工作区外文件操作与联网。选择在服务端确认成功后保存,并随会话恢复。
  • Pi 接入与 max 思考强度:使用固定 pi-acp 0.0.33,沿用本机 Pi 登录、模型和扩展配置。按当前模型实际支持的档位展示思考选项,包括支持的 max;设置后回读确认。兼容补丁仅在插件启动的进程中生效,不改写本机 Pi 或 npm 缓存。
  • ACP 设置重组:Node / npx 共用运行环境,Codex / Pi 采用独立 Tab。路径支持候选下拉、手动输入与文件选择,自动识别 PATH、NVM 和常见安装位置;修复 Zotero 文件选择报错及运行时版本诊断。
  • 侧栏选项完整显示:模型与思考强度各占一行,长名称自动换行,收起时即可查看完整选中值;保留原生下拉菜单与键盘操作。
  • 会话与内容兼容:旧 Codex 数据原路径升级,Pi 使用独立缓存与每篇论文的连接。保留 PDF 首轮上下文、截图、Markdown、公式、Mermaid 和文件/外链边界;补齐中英文文案。

Pi 需要本机 Pi 0.85.1 或更新版本及 Node 22.19.0 或更新版本。升级后在设置页的 Pi Tab 点击“重新检测”刷新模型与思考选项;首次准备适配器使用“准备并检测”。聊天启动保持离线 npm 模式,不会自动下载或升级适配器。

验证:228 项自动测试、JavaScript/静态检查、构建、SHA-256、XPI 根目录及 unzip -t 均通过;归档内 38 个运行时文件与源码一致。实际侧栏模块的独立预览覆盖 240 / 320 / 500 像素宽度与长名称。最终 XPI 已在 macOS Zotero 9.0.6 中通过非安装式解析,结果为 error: 0、isCompatible: true、appDisabled: false。未执行插件安装或真实 Codex/Pi 模型联调。

下载 smart-paper-translator-0.1.33.xpi,在 Zotero 的“工具 → 插件 → 齿轮菜单 → 从文件安装插件”中选择该文件。清单兼容范围为 Zotero 9.0–9.0.*。

附件提供 XPI 和 SHA256SUMS。XPI 的 SHA-256:

8aeaf9c18253a1610af3ce798a614540e1b6e4a9c25dcc112408b2adc2a6f69b

完整变更:v0.1.28...v0.1.33

Smart Paper Translator v0.1.28

Choose a tag to compare

@dingdinglz dingdinglz released this 02 Sep 16:36

从 v0.1.25 到 v0.1.28

本次正式版以线上上一版 Release v0.1.25 为基线,包含其后的全部 Mermaid 功能与兼容修复;0.1.26、0.1.27 的改动一并纳入。

新增与修复

  • Codex 侧边栏支持渲染 Markdown 中完整闭合的 mermaid 代码块;流式输出尚未闭合时继续显示源码。
  • XPI 内置 Mermaid 11.16.1,按窗口延迟加载,完全离线渲染,不使用 CDN 或运行时下载。
  • 保留可展开、可复制的原始源码;解析失败、超限或安全校验失败时自动显示源码,避免丢失内容。
  • 修复 Zotero XUL 窗口没有 HTML body 导致的渲染失败:通过本地空白 HTML 渲染容器与独立 Gecko 沙箱运行 Mermaid,并兼容窗口的只读 window / document 属性。
  • 修复 SVG 图片缺少明确固有尺寸的问题;为图像设置有界尺寸,横向长流程图支持水平滚动。
  • 同一窗口内串行渲染并缓存结果,避免重复计算;新增中英文状态提示与回归测试。

安全与隐私

  • 固定 securityLevel: strict、htmlLabels: false,锁定安全配置,并限制源码长度、边数、渲染时间、SVG 大小和节点数。
  • 对生成的 SVG 做白名单校验,拒绝活动元素、HTML、链接及非本地资源引用;仅支持受限的本地阴影滤镜。
  • 校验后的 SVG 序列化为隔离的数据图片,不作为活动 SVG 注入侧边栏;图片最长边不超过 4096 像素。
  • Mermaid 渲染不发送网络请求,不调用 Codex 或其他模型服务。

兼容与验证

  • 插件兼容范围:Zotero 9.0–9.0.*;实际原生验证环境:macOS、Zotero 9.0.6。
  • npm run check:180 项测试通过,JavaScript 语法与静态安全检查通过。
  • XPI 归档检查、unzip -t、运行时文件逐项比对及 SHA-256 校验通过;归档仅包含 plugin/ 下的运行时文件。
  • 对最终相同 SHA-256 的 XPI,已在 Zotero 9.0.6 中通过 AddonManager.getInstallForFile() 非安装式解析:错误码为 0,ID / 版本正确,兼容且未被应用禁用。
  • 用户反馈的中文、<br/> 标签流程图已在 Zotero 9.0.6 原生渲染环境中成功生成并解码为图片。
  • 未安装插件、未修改 Zotero profile,也未发起真实 Codex / API 请求;上述原生验证不等同于安装后的完整 UI 冒烟测试。

安装与升级

  1. 下载下方 smart-paper-translator-0.1.28.xpi。
  2. 在 Zotero 的“工具 → 插件”中,点击齿轮菜单,选择“从文件安装插件”。
  3. 选择 XPI 并按提示完成安装,重启 Zotero;重新打开已有 PDF 对话即可渲染历史消息中的 Mermaid 代码块,无需重新发送问题。

本版本通过 Release 附件手动安装/升级,不提供自动更新。

累计提交

完整变更:v0.1.25...v0.1.28

SHA-256

smart-paper-translator-0.1.28.xpi

c9e13abc38fcccd4a2ca62bcc0d86412dd02d166ca34db82c77174675c92b7d8

同时提供 SHA256SUMS 校验文件。

Smart Paper Translator v0.1.25

Choose a tag to compare

@dingdinglz dingdinglz released this 24 Aug 08:41

从 v0.1.20 到 v0.1.25

这是自上一正式 Release v0.1.20 以来的累计更新,覆盖其后的 4 个提交与 0.1.21–0.1.25 阶段成果,不只包含最后一次截图拖拽修复。

PDF 选区直接加入 Codex

  • PDF 划线弹窗新增“添加到 Codex”。点击后只把选中文字加入当前 PDF 的对话草稿,不会立即启动 ACP 或请求模型。
  • 支持在一轮中累积、去重和移除多个选区;按附件隔离草稿,并通过当前 Reader tab 精确复核 PDF,避免关联到错误论文。
  • 真正发送时才附带页索引、页标签和单页/跨页 PDF 矩形坐标;论文文字被明确标记为不可信数据,而不是给模型的指令。
  • 发送失败会完整恢复草稿;已发送选区可在本地历史和 session/load 回放中恢复为可读卡片。

PDF 原页截图加入 Codex

  • Reader 工具栏和 Codex 输入区都新增“截图”入口。可直接在左侧 PDF 阅读区拖拽框选,并在靠近边缘时自动滚动。
  • 跨页框选会按实际覆盖页面拆成多张图,页间空隙不会进入截图。
  • 截图由 Zotero 9.0.6 的 PDF.js 原页按坐标重新渲染,生成不含工具栏、选择层、深色模式或 Zotero 批注的干净 PNG;版本或内部能力不匹配时失败关闭,不降级成屏幕抓图。
  • 修复 Gecko 特权域与 PDF.js 内容域之间的对象传递问题,解决进入框选后按住拖动没有反应的问题;渲染桥不再把特权回调传入 PDF.js 数组,并在目标 iframe 域内创建渲染参数。
  • 截图先进入当前 PDF 草稿,支持缩略图、放大、移除和重新框选;允许不填写文字问题、直接发送纯图片。
  • 张数不设固定上限,草稿按页折叠并惰性解码;同时保留单图上限和单轮紧急总资源保护,超限时保留完整草稿并阻止发送。
  • 每张图片通过 ACP 图片块发送,并附带可复现的位置 JSON:页索引、页标签、PDF 点坐标、旋转、输出像素和渲染比例。模型不支持图片时不会自动换模型,也不会丢失草稿。
  • 未发送截图可在 Zotero 重启后恢复;发送后的截图在历史中默认折叠,展开后才解码,并支持放大查看。

更完整、更安全的公式渲染

  • XPI 内置 KaTeX 0.18.4,离线转换为 Firefox MathML,补齐分式、求和上下标、集合运算、重音、根式、矩阵、对齐环境和上下花括号等学术公式。
  • 解析失败时显示原始 TeX,避免命令粘连成错误的伪公式。
  • 保持 trust: false、宏展开与尺寸上限,只导入无外部资源的 MathML;不使用 innerHTML、远程公式服务、运行时 CDN、KaTeX HTML 输出或远程字体。

Codex View Image 图片预览

  • 完成态 View Image 工具输出现在可在侧栏安全预览,不再只显示工具文字。
  • 只有工具状态、读取语义、输入路径、位置和资源链接一致时才接受图片;限制为 25 MiB 以内、扩展名与签名一致的 PNG/JPEG/GIF/WebP/AVIF,拒绝 SVG、伪装文件和不一致路径。
  • 通过验证的图片会复制到 ACP 工作区之外的会话隔离目录,界面不会回退读取模型提供的源路径,也不会把副本交回 Codex。
  • 图片卡片默认折叠并惰性解码;点击后可在 Zotero 窗口内放大,并在“适应窗口”和“1:1 原始像素”之间切换。
  • session/load 会按工具调用 ID 重新关联本地副本;重建会话时统一清理旧的工具图片和截图目录。

完整提交范围

  • d38d63b — PDF 选区加入 Codex 草稿
  • 12fd3d1 — 使用内置 KaTeX 渲染 Codex 公式
  • e1d2670 — 预览 Codex View Image 工具输出
  • 186bf73 — PDF 原页截图、位置上下文及拖拽跨域修复

查看 v0.1.20...v0.1.25 完整代码差异

安装

  1. 下载 smart-paper-translator-0.1.25.xpi。
  2. 在 Zotero 中打开“工具 → 插件”。
  3. 点击齿轮菜单,选择“从文件安装插件”,然后选择下载的 XPI。

兼容性与验证

  • 清单兼容范围:Zotero 9.0–9.0.*;目标和实际验证环境为 macOS Zotero 9.0.6。
  • PDF 原页截图使用精确版本保护的内部渲染桥;其他 Zotero 版本若能力不匹配,截图功能会明确关闭。
  • npm run check:166 项测试全部通过(上一 Release 为 123 项),JavaScript 语法与静态安全校验通过。
  • XPI 归档完整性、根目录结构、运行时文件范围和 SHA256SUMS 均通过;Zotero 9.0.6 AddonManager.getInstallForFile() 非安装式解析通过,插件 ID、版本、兼容性和启用状态正确。
  • SHA-256:01d538240a3f9c3eeba8985438066cdbe82f9a3459c092b7fa0e437f4bcb51f4。

本次验证未安装插件、未修改 Zotero profile、未使用真实 API Key,也未向 Codex 发起真实模型请求。

Smart Paper Translator v0.1.20

Choose a tag to compare

@dingdinglz dingdinglz released this 21 Aug 09:36

从 v0.1.6 到 v0.1.20

这是自上一正式 Release v0.1.6 以来的累计更新,覆盖其后的 6 个提交与 0.1.7–0.1.20 阶段成果,而不只包含最后一个 Web Search 界面提交。

划线翻译与按 PDF 控制

  • 已缓存的划线译文新增“重新翻译”操作;只有用户明确点击后才强制刷新,不会因显示缓存而自动请求。
  • 强制刷新会绕过匹配缓存并原子替换同一记录;请求失败时保留旧译文和重试入口,不破坏其他配置版本。
  • Reader 工具栏新增当前 PDF 的划线翻译禁用开关,默认不禁用,并按附件持久化。
  • 禁用后不追加插件划线翻译 UI、不查询划线缓存、不调用翻译 API,同时不影响其他 PDF、摘要翻译或智能标签。

本机 Codex ACP 论文对话

  • 在 Zotero 主窗口 Reader 的原生右侧 Item Pane 新增“Codex 对话”,通过本机 Agent Client Protocol stdio 连接 Codex,不复用插件内置翻译服务或翻译 API Key。
  • 只使用当前 item-details 的 tabID → Zotero.Reader.getByTabID() 精确解析 PDF;无法确认附件时直接禁用,不猜测父条目附件。独立 Reader 窗口不注册聊天。
  • 每个 PDF 附件绑定可恢复的固定 Codex session;同一 PDF 的多个 Reader 视图共享状态和单 turn 锁,不同论文可并行对话。
  • 第一条真实消息把当前 PDF 原子复制到专用工作区,并通过 ACP resource_link 附加真实 PDF;后续 turn 不重复附加 PDF。
  • Zotero 重启后通过 session/load 恢复同一 thread,并用远端回放对账本地镜像;交付状态不确定时先对账,避免重复发送。
  • PDF 发生变化时暂停发送,允许用户确认继续使用旧快照,或归档旧映射和工作区后重建会话。
  • 若找不到 pdftotext,使用 Zotero 9.0.6 的 Zotero.PDFWorker.getFullText() 生成本地文本兜底,但仍保留并引用真实 PDF。

固定、离线优先的 ACP 准备流程

  • ACP 适配器固定为 @agentclientprotocol/codex-acp@1.6.2;只有用户明确点击“准备并检测 ACP”时才允许 npx 联网准备。
  • 日常聊天以 npm 离线模式启动已准备的适配器;缓存缺失、路径变化或版本不匹配时直接报错,不静默下载或升级。
  • 设置页可探测并展示经过脱敏的 Node、npx、Codex 路径、版本、登录和 ACP 健康状态。
  • 动态模型与推理强度检测使用不发送提示词的临时空 session,并用 session/close 释放;不会为清理探测 session 调用会归档 thread 的 session/delete。
  • Codex 模式固定为受审批的 agent,拒绝 agent-full-access;权限请求和表单 elicitation 会展示命令、cwd、主机、读写位置及适配器提供的选项,插件不自动批准。

更完整的 Codex 对话界面

  • 支持流式文本、安全 Markdown、表格、代码和基于 Firefox MathML 的常用 LaTeX 公式;不使用 innerHTML,也不自动加载远程图片。
  • execute、文件读取、图片查看、搜索和计划等常见工具显示为语义卡片,只呈现可读字段,不暴露原始事件 JSON、内部 ID 或时间戳。
  • 修复超宽路径、表格和工具输出挤出 Item Pane 的问题;流式更新保留已展开卡片和阅读位置,只有用户原本位于底部时才继续自动跟随。
  • 最新思考状态显示在输入框上方的加载栏中,任务完成后自动隐藏;历史思考不会堆成大量展开卡片。
  • Web Search 区分多查询搜索、打开页面和页内查找,展示 ACP 实际提供的查询、页面、关键词、标题、摘要或文本;事件未带回正文时会明确说明。
  • Codex 回答和 Web Search 卡片只接受 HTTP/HTTPS 链接,且只有用户点击后才通过 Zotero.launchURL() 交给系统默认浏览器。
  • 支持 :codex-file-citation{...} 与 ::codex-file-citation{...} 两种文件引用格式;路径只能定位到当前 PDF 的专用工作区内。

开发者诊断与本地数据边界

  • 设置页新增默认关闭的 Codex 开发者模式。关闭时不采集额外诊断,也不显示“复制日志”入口。
  • 开启后只在内存中有界记录当前实时 turn 的工具和思考事件;日志脱敏常见密钥与用户主目录,不包含用户问题或最终回答,不会自动落盘或上传。
  • 关闭开发者模式、重建会话或退出插件时清空诊断数据。
  • Codex 的 session 映射、离线对话镜像、PDF 快照和生成文件按论文隔离保存在本机;不会修改 Zotero PDF、条目或附件,也不参与 Zotero 同步。

完整提交范围

  • 68b2a0d — 为缓存划线译文新增显式重新翻译与失败保留
  • 60ae466 — 新增持久化的每 PDF Codex ACP 对话
  • 61e6004 — 完善 Codex 流式消息、工具卡片、布局与回放界面
  • ba734d2 — 将有界脱敏诊断限制在默认关闭的开发者模式
  • 36fe6e9 — 新增按 PDF 持久化的划线翻译禁用开关
  • f56e310 — 强化 Web Search、安全外链和两种 Codex 文件引用

查看 v0.1.6...v0.1.20 完整代码差异

安装

  1. 下载 smart-paper-translator-0.1.20.xpi。
  2. 在 Zotero 中打开“工具 → 插件”。
  3. 点击齿轮菜单,选择“从文件安装插件”,然后选择下载的 XPI。

兼容性与验证

  • 清单兼容范围:Zotero 9.0–9.0.*;目标和实际验证环境为 macOS Zotero 9.0.6。
  • npm run check:123 项测试全部通过,JavaScript 语法和静态安全校验通过。
  • XPI 归档完整性、根目录结构和 SHA256SUMS 均通过;Zotero 9.0.6 AddonManager.getInstallForFile() 非安装式解析得到正确 ID、版本、兼容性和启用状态。
  • SHA-256:d8a54896f8079e48236f793328cb76e2daaef785421289596b056f9f936da81f。

该版本验证未安装插件、未修改 Zotero profile、未使用真实 API Key,也未向 Codex 发起真实模型请求。

Smart Paper Translator v0.1.6

Choose a tag to compare

@dingdinglz dingdinglz released this 18 Aug 09:29

首个正式 Release:0.1.0 → 0.1.6

v0.1.6 是 Smart Paper Translator 的首个正式 GitHub Release,因此本说明覆盖从项目初始 0.1.0 到 0.1.6 的全部 4 个提交,而不只介绍最后加入的“划线后自动翻译”。

学术翻译基础能力

  • 支持 DeepSeek,以及使用标准 Bearer 鉴权的 OpenAI Chat Completions 兼容服务;自定义 localhost/回环服务可不填写 API Key。
  • 提供独立的摘要翻译和划线翻译模板。划线模板可使用论文标题、Zotero 父条目摘要、页码、目标语言和选中文字;模板只做受控变量替换,不执行代码。
  • 打开 PDF 时自动翻译尚未缓存的摘要;缺少摘要时不会伪造内容或发起无意义请求。
  • PDF 划线弹窗保持缓存优先:命中当前配置对应的缓存时立即显示且不联网;未命中时默认只有用户点击“翻译”后才发送请求。
  • 支持 DeepSeek 请求约束、60 秒超时、匿名 Cookie 容器和安全错误映射;关闭 Zotero 默认的长时间 5xx 重试,并避免把论文正文写入 HTTP 调试日志。

按论文持久化缓存

  • 摘要、划线句段、术语和智能标签按论文分别保存为本机 JSON 记录,不写入 Zotero 条目正文。
  • 缓存签名包含服务、模型、目标语言、模板与论文上下文;配置或摘要变化后生成独立版本,不会误用旧译文。
  • 写入采用临时文件原子替换;损坏记录会先备份再恢复,重复并发请求会合并,插件退出时阻止迟到结果继续落盘。
  • API Key 保存在 Zotero/Mozilla Login Manager 中,不写入偏好、缓存 JSON 或 XPI。

Reader 悬浮翻译面板

  • Reader 工具栏新增独立入口,可显示或隐藏论文智译悬浮窗。
  • 悬浮窗以两个 Tab 分别展示摘要译文和当前论文术语;缓存状态使用独立标签,不混入译文正文。
  • 标题栏支持自由拖动,右下角手柄可同时调整宽高;位置与尺寸会持久化,内容独立滚动,不挤压 PDF 阅读区。
  • 异步读取带请求序号与附件检查,切换标签、关闭面板或切换论文后,旧结果不会写入当前界面。

本机智能标签列

  • 根据论文标题和 Zotero 摘要,通过独立短请求生成 3–5 个英文智能标签。
  • 在主页文献列表注册独立列,以低饱和主题色胶囊展示;配色稳定,并适配深色、高对比和强制颜色模式。
  • 列表渲染只读取内存或本机缓存,不会因为选择、排序或浏览条目而发起网络请求。
  • 智能标签不会写入 Zotero 原生 Tags,也不会随 Zotero 文库同步;附件子行保持为空。

可选的划线后自动翻译

  • 设置页新增“划线后自动翻译”,默认关闭,并保留原来的手动点击模式。
  • 开启后,只有未命中本地缓存的选中文字会立即发送到当前翻译服务;缓存命中仍然本地直显。
  • 使用当前弹窗与附件状态检查避免异步结果串页,并用 translating 状态防止重复请求。
  • 自动翻译失败时恢复“重试”按钮,不会让一次失败导致弹窗失去后续操作入口。

完整提交范围

  • edb2433 — 实现 Smart Paper Translator 0.1.0 基础翻译、缓存、设置和安全请求链路
  • 3bb2157 — 完善 Reader 悬浮窗、缓存展示、拖动缩放与异步状态保护
  • 91f8199 — 新增仅使用本机缓存的主页智能标签列
  • d92cbee — 整合默认关闭的划线后自动翻译模式并发布 0.1.6

查看 v0.1.6 所包含的提交历史

安装

  1. 下载 smart-paper-translator-0.1.6.xpi。
  2. 在 Zotero 中打开“工具 → 插件”。
  3. 点击齿轮菜单,选择“从文件安装插件”,然后选择下载的 XPI。

数据与隐私

  • 摘要翻译会把 Zotero abstractNote、标题和模板发送给所选服务;生成智能标签时会额外发送标题与摘要并产生一次短请求。
  • 自动翻译默认关闭;开启后,只有未命中当前配置缓存的选中文字会自动发送并可能产生 API 用量。
  • 原文、译文、术语和智能标签存放在 Zotero 数据目录的 smart-paper-translator/records/,不随 Zotero 同步,也不加密。

兼容性与验证

  • 清单兼容范围:Zotero 9.0–9.0.*;目标和实际验证环境为 macOS Zotero 9.0.6。
  • JavaScript 语法、静态检查及 56 项自动化测试全部通过。
  • XPI ZIP 完整性、归档根目录和 SHA-256 校验通过;Zotero 9.0.6 AddonManager.getInstallForFile() 非安装式解析得到正确 ID、版本和兼容状态。
  • SHA-256:6213e8941fc8f29da26067cd099d95402881c6af9968844f267343cd2db82f1f。

该版本验证未安装插件,也未使用真实 API Key 发起翻译请求。