Zed v1.26.1-pre发布:Pyrefly与调试器升级

Zed v1.26.1-pre 内置可选 Pyrefly、调试器变量树与 WASM 源码调试,并修复多项数据安全问题。
Zed 发布 v1.26.1-pre 预发布版,合并 19 个提交。核心变化有三:Pyrefly 作为可选内置 Python 语言服务器,用户可在 language_servers 设置中启用;JavaScript 调试器加入 DWARF 支持,使 WebAssembly 源码可直接调试;调试器悬停提示改为可展开、支持键盘访问的变量树。AI Agent 方面优化了模型选择器的模糊搜索并将其移出 UI 线程,修复 OpenCode 的 DeepSeek reasoning 重放与 Google 模型 thinking 控制,并为思考控制补充说明文案。此外 SSH 重连逻辑、macOS Display P3 色彩空间、项目面板按扩展名排序等均有改进。修复项中,Git 面板丢弃未暂存改动时连带丢弃已暂存内容的问题值得重点关注。破坏性变更为 ACP 配置默认值仅作用于新会话。
Zed v1.26.1-pre 发布:内置 Pyrefly、调试器变量树与 WASM 调试
Zed 团队发布了 v1.26.1-pre 预发布版本,本次更新共合并 19 个提交,核心亮点集中在三个方面:将 Pyrefly 作为可选的 Python 语言服务器内置、调试器悬停支持可展开的变量树、以及为 JavaScript 调试器加入 DWARF 调试以支持 WebAssembly 源码调试。AI Agent 相关体验也有多处打磨。
AI Agent:搜索与思考控制的细节优化
Zed Agent 与第三方 ACP Agent 的模型和配置选择器获得了更准确的模糊搜索,搜索准备逻辑被移出 UI 线程,避免在大量候选项时阻塞界面(#64147)。这一改动看似细小,但对日常频繁切换模型的用户来说,交互流畅度的提升是可直接感知的。
兼容性方面,本次修复了 OpenCode 在重放 DeepSeek广告 reasoning 以及为 Google 模型禁用 thinking 时的表现(#65922)。同时,思考控制新增了说明文案:当所选 effort 级别下无法禁用思考时,界面会明确告知用户原因(#62480),减少“为什么按钮点了没反应”的困惑。
调试器:变量树与 WebAssembly 调试
调试体验是本次更新的重头戏。JavaScript 调试器加入 DWARF 调试支持,使 WebAssembly 源码可以被直接调试(#65371)。对于在浏览器外或嵌入式环境使用 WASM 的开发者而言,这补齐了此前调试链路的短板。
悬停提示则引入了可展开、支持键盘访问的变量树(#53198)。嵌套对象和数组不再折叠成一行难以辨认的字符串,而是可以逐层展开检查,这对排查深层数据结构问题尤其有用。
DWARF(Debugging With Attributed Record Formats)是编译型语言广泛使用的调试信息格式,它把源码行号、变量名、类型布局与机器码地址之间的映射编码进二进制文件。WebAssembly 本身只描述栈式指令,不含源码级信息;但通过 Clang/LLVM 的 -g 选项编译到 wasm 时,工具链会额外生成 DWARF 段(通常嵌入在 .debug_* 自定义段中)。
Zed 的 JavaScript 调试器基于 Chrome DevTools Protocol,V8 能解析这些 DWARF 数据并把 wasm 指令地址还原为原始 C/C++/Rust 源码位置。因此断点可以打在 .rs 或 .c 源文件上,单步执行也会沿着源码而非反汇编进行。这对使用 wasm-pack、Emscripten 或 WASI 运行时、并且希望直接在编辑器内调试而非依赖浏览器 DevTools 的场景尤为实用。注意该能力依赖调试构建产物保留调试段,release 构建通常会剥离 DWARF。
可展开变量树背后依赖调试适配器协议(DAP)中的 variablesReference 机制:调试器在返回变量列表时,对结构化值只给出引用 ID 而非完整内容,客户端按需再次请求其子变量。Zed 此次实现即是在悬停弹窗中调用 variables 请求并按层级渲染,同时为每个节点绑定键盘焦点,使用户不必离开键盘即可展开嵌套结构。对深层嵌套对象、长数组和 Map/Set 等容器而言,这避免了此前被 toString 压缩成一行后难以定位字段的问题,但也意味着每次展开都会触发一次 DAP 往返,在远程调试高延迟链路上需留意响应速度。
语言支持:Pyrefly 成为可选内置 Python LSP
Pyrefly 作为可选的 Python 语言服务器加入内置列表,用户可在 Python 的 language_servers 设置中启用(#44262)。这意味着 Zed 的 Python 支持不再局限于单一方案,用户可以根据项目规模和类型检查需求进行选择。
此外,通过 LSP 按钮停止语言服务器后重新启动的流程得到改进(#65387);Rust 中 sql! 字符串字面量的 SQL 语法高亮也获得增强(#58778)。
Pyrefly 是 Meta 于 2025 年开源的 Python 类型检查器与语言服务器,用 Rust 实现,目标是提供比 mypy 和 Pyright 快一个数量级的检查速度,同时支持完整的类型推断、泛型与 PEP 695 新语法。它通过 LSP 协议向编辑器提供诊断、补全、跳转定义等能力,因此可以直接作为 Zed 中 Python 的 language_server 使用。
Zed 此前内置的 Python 方案主要依赖 pyright 或用户自行配置的 basedpyright、ruff 等。把 Pyrefly 加入内置列表,意味着用户无需手动编写安装命令与二进制路径,只需在 language_servers 中指定名称即可切换。对于大型 monorepo,Pyrefly 的增量式检查架构能显著缩短首次索引时间;但其类型检查规则与 Pyright 并不完全一致,迁移项目时可能需要处理一批新出现的诊断。
远程开发与其他改进
SSH 重连逻辑调整为先完成握手再启动重同步超时,降低了弱网环境下误判超时的概率(#65457)。macOS 端新增 Display P3 色彩空间支持,可通过 use_display_p3 设置开启(#64394)。
项目面板的 project_panel.sort_order 新增 extension 选项,可按扩展名对文件分组(#65776);文件查找器的模糊搜索排序也做了优化(#59224)。
值得关注的 Bug 修复
本次修复中几项与数据安全直接相关:Git 面板中丢弃未暂存改动时,不再连带丢弃已暂存内容(#65559);从侧边栏移除项目时取消保存提示,不再错误地将其从最近项目列表中删除(#65683)。
Agent 相关修复包括:恢复含子代理的线程时的卡死问题(#65177)、提及含换行符文件名导致的崩溃(#65693)、认证流程覆盖草稿(#65844),以及 OpenAI 兼容提供方同时返回 reasoning 与 reasoning_content 时的思考文本重复(#65926)。
其他修复覆盖 Google AI 无效 API Key 的错误分类(#65885)、单行输入框中 IME 组合文本的下划线显示(#65610)、settings.json 中枚举值补全排序(#65589)、同名 Markdown 预览标签不显示目录(#65736)、Mistral Large 4 经 OpenAI 兼容提供方调用失败(#65915)等。
破坏性变更
ACP 配置默认值现在仅应用于新会话,重新打开已有会话时会保留其原有设置(#65850)。依赖默认配置覆盖已有会话行为的用户需要留意这一变化。
作为预发布版本,v1.26.1-pre 适合希望提前体验新功能的开发者试用,生产环境建议等待正式版。
ACP(Agent Client Protocol)是 Zed 提出的编辑器与 AI 编码代理之间的通信协议,定义了会话创建、上下文注入、工具调用与配置协商等消息。Zed 作为客户端,OpenCode、Gemini CLI 等外部代理通过 ACP 接入。
此前 ACP 代理的配置默认值(如模型、思考 effort 级别)会在每次打开会话时重新应用,等于覆盖了用户在上次会话中的手动调整。本次改为默认值只在新建会话时生效,已有会话恢复时沿用其持久化的设置。这与多数编辑器“会话状态独立于全局默认值”的惯例一致,但如果用户此前依赖默认值来统一重置代理行为,就需要改为显式修改配置或在新建会话时切换。
相关推荐

一句提示词引发的全球PHP安全风暴:AI是救星还是隐患?
一句AI提示词竟引发全球PHP安全危机,维基百科、互联网档案馆受波及。本文梳理事件脉络,解析OpenAI与亚马逊的争议,探讨AI时代漏洞发现门槛降低带来的安全悖论与开发者应对策略。

当AI被拿走:依赖捷径如何削弱你的解题韧性
一项涉及1,222人的研究发现:使用AI答题后,一旦AI被移除,人们放弃解题的比例高于从未使用AI的对照组。文章分析AI依赖对学习韧性和元认知的影响,并探讨AI学习工具的设计启示。

Carta联手NewView:让创业公司员工提前套现股权
Carta 与 NewView Capital 合作推出新计划,简化创业公司 tender offer 流程,帮助员工提前出售股权套现。本文分析该合作的核心机制、员工股权流动性痛点及对创业公司股权激励的影响。