Skip to content

TeXLeaf 0.8.11

Latest

Choose a tag to compare

@zhangxh-math zhangxh-math released this 17 Aug 10:37
· 1 commit to main since this release

TeXLeaf 0.8.11 在 0.7.2 的片段、Zotero 引用与 Math Preview 基础上,加入了默认关闭、由用户自行配置 API 的 AI 写作助手,并完成增量检查、问题列表、Quick Fix、LaTeX 正文保护和持久恢复的安全收口。本版同时改善了 Suggest/Tabout 竞争、自动放大括号后的光标位置,以及持续输入时 Math Preview 每键闪烁的问题。

0.8.10–0.8.11 编辑体验修复

  • 原生 Suggest 只返回与当前输入具有非空 trigger 前缀匹配的 TeXLeaf 片段;存在真实 Tabout 目标时 Tab 优先跳出,否则仍接受 VS Code 当前所选建议。活动 Snippet Session、Inline Suggest、Rename 与 Matrix 的既有优先级保持不变。
  • 无显式 tabstop 的普通片段触发整对括号自动放大时,光标会恢复到生成的 \right 前。例如 (sum) 得到 \left(\sum|\right),可以继续输入;刚停在 \sum 后按 Tab 时,既有 sum-limits 手动片段仍有意优先。
  • Math Preview 的 cursor / both 模式使用 last-known-good(stale-while-revalidate):防抖和 Worker 渲染期间保留旧帧,再用单一稳定 decoration 原位替换;临时失败有 750 ms 宽限,Hover SVG 仅在真正请求时写盘。真实 Monaco CDP 回归在连续输入、失败恢复和换帧期间未观察到空白帧或双帧。

AI 写作助手

  • 支持 DeepSeek Chat Completions 与 OpenAI Responses 两个 Provider:DeepSeek 默认 Base URL 为 https://api.deepseek.com,请求 {Base URL}/chat/completions;OpenAI 默认 Base URL 为 https://api.openai.com/v1,请求 {Base URL}/responses 与 Structured Outputs。两者都可配置兼容的自定义 Base URL,但不会跨协议回退。
  • 提供停止键入后的近实时句子检查、手动段落/选区检查、整篇分段检查、安全改写,以及可单独关闭的词语/句子行内补全。模型建议使用简体中文说明,replacement 保持论文原语言。
  • 编辑器使用无音频装饰线和 TeXLeaf 专用 Hover;活动栏“AI 写作问题”列表按行号集中展示类别、真实严重性、原文、替换与解释。Hover、灯泡 Quick Fix、问题树和确认后的“应用全部”都在写入前重新校验当前版本、问题身份、范围与 exact original
  • 点击列表条目会给对应正文叠加主题自适应背景和轮廓,不移动主光标,也不发布原生 Diagnostic。AI 问题不会重复进入 Problems,不会由 TeXLeaf 触发 Error/Warning accessibility signal 或播放音效。
  • Windows 微软拼音中文模式可能优先占用 Ctrl+. 切换标点;现在可直接点击 Hover 中的“应用这条建议”,也可使用 F1 / Command Palette、右键或灯泡。TeXLeaf 不接管系统输入法或新增全局快捷键。

增量检查与问题恢复

  • 编辑一句时只让实际编辑及累计待复检范围内的问题失效;同一句和全文其他仍逐字成立的问题继续保留并安全平移。句号/空行 split/merge、多处编辑、零宽边界与中文无空格分句均纳入调度。
  • 自动检查有防抖、取消和去重,每批最多处理 8 个改动句子,每个文档版本最多请求 64 个不同句子;手动整篇检查每次最多 32 个正文段。每句/段成功后立即合并,后续请求失败不会回滚已得到的结果。
  • 安全平移的问题保留稳定 lineage ID,刷新前已经显示的树节点或 Quick Fix 仍可重新验证并应用。真正失效的旧节点只刷新列表并显示短状态栏提示,不弹通知、不播放音效。
  • 应用建议后,对应装饰线、Hover、树项和本机缓存立即消费;词尾追加造成的截短旧建议会被在线校验和缓存恢复共同拒绝。
  • 已通过校验的问题可在通常的单扩展宿主使用中,从当前 Profile/扩展宿主的私有 globalStorage 跨文档关闭和 VS Code 重启恢复。缓存不写工作区、不进入 Settings Sync、不保存论文全文;只有完整源码长度与 SHA-256 完全一致时才按原 offset 逐条恢复,外部改动或单条校验失败会 fail closed。写入使用防抖、同目录临时文件和 rename,是 Profile-local 的 best-effort 快照,不承诺跨窗口事务或强 CAS。

LaTeX 与响应安全

  • 发送前在本地遮罩注释、citation、label、URL、文件路径、代码/未知环境和未知宏参数;数学源码替换成受保护、不可编辑、与源码 UTF-16 等长的 inline/display 语义占位符。模型可以理解公式在句中的语法位置,但看不到公式内容,也不能修改占位符。
  • 支持安全解释模型按 UTF-16、Unicode code point、UTF-8 byte 或 CRLF 换行计数返回的常见 offset 差异;只有能逐字、无歧义定位到同一源码范围的非空 original 才会进入界面。单条坏建议被丢弃,重复项去重,重叠冲突组整组拒绝,其他独立有效建议继续保留。
  • DeepSeek 空 content 或非法 JSON 最多自动重试一次,并只接受纯 JSON 或恰好一层完整 json fence;OpenAI 使用 Responses Structured Outputs。错误和日志只暴露脱敏分类/安全子码,不记录 API Key、论文正文、原始响应或服务端任意错误正文。

配置、同步与凭据隔离

  • 用户可见设置现为 52 项,其中“TeXLeaf · AI 写作”精确包含 14 项。全部 texleaf.aiWriting.* 设置都是 application 级用户/Profile 配置,可随普通 VS Code Settings Sync 同步;工作区、工作区文件夹和 .vscode/settings.json 不能开启 AI、重定向 Base URL、切换 Provider/模型,或改变防抖和发送长度等费用相关参数。
  • API Key 只保存在当前扩展环境的 SecretStorage,不随 Settings Sync 跨设备复制。每个规范化 DeepSeek/OpenAI Base URL 都使用独立 Key 和正文传输 consent;默认 DeepSeek 官方地址继续兼容旧版 v1 Key/consent,自定义 DeepSeek 地址绝不会复用官方凭据,OpenAI 各地址与两个 Provider 之间也互不复用。
  • 远程 Base URL 必须使用 HTTPS;HTTP 只允许 localhost127.0.0.1[::1]。拒绝 URL credentials、query、fragment、主机名尾随点和路径已经以对应 endpoint 结尾的地址;请求不跟随 HTTP 重定向。
  • AI 总开关默认关闭。联网还要求受信任工作区、已有路径的本地/Remote .tex、当前目标 consent 和对应 SecretStorage Key;.bib、Untitled、Git/其他虚拟 URI 与未信任窗口不会发送正文。ChatGPT Plus/Pro/Codex 订阅与 OpenAI API、DeepSeek API 或第三方代理分别授权和计费。

升级提示

  • 如果此前把 AI 配置写在工作区或 .vscode/settings.json,请移到 VS Code 用户设置或目标 Profile;0.8.9 有意忽略工作区级 AI 值。
  • 使用默认 DeepSeek 官方地址的既有 v1 Key/consent 可继续使用;首次切换到自定义 DeepSeek/OpenAI 地址时,需要针对该规范化目标重新确认并设置 Key。
  • 支持 Windows、macOS 和 Linux 上的 VS Code 1.98+。可以从 Visual Studio Marketplace 安装,也可以下载本 Release 的 texleaf-0.8.11.vsix 后运行 Extensions: Install from VSIX...

完整说明见 READMEWikiAI 写作助手CHANGELOG

校验

  • texleaf-0.8.11.vsix
  • SHA-256: ABC8CAA3F39E3B80D78BFB9B4B92409EE652034EF07548CF062200D41AF93D09
  • 大小: 4055452 bytes