2025年7月(版本 1.103)
发布日期:2025年8月7日
更新 1.103.1:此次更新增加了 GPT-5 提示词改进,支持 GPT-5 mini,并修复了这些 问题。
更新 1.103.2:此次更新修复了这些 问题。
下载:Windows: x64 Arm64 | Mac: 通用版 Intel Apple Silicon | Linux: deb rpm tarball Arm snap
欢迎使用 2025 年 7 月版的 Visual Studio Code。此版本包含了许多我们希望您会喜欢的更新,以下是部分主要亮点:
-
MCP
-
聊天
-
生产力
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
Insiders:想尽快尝试新功能?
您可以下载每晚的 Insiders 构建版本,并尽快尝试最新更新。
下载 Insiders
聊天
GPT-5 可用性
从今天开始,GPT-5 向所有 GitHub Copilot 付费计划推出。GPT-5 是 OpenAI 迄今为止能力最强的模型,在推理、编程和对话方面带来了新的进步。了解更多关于 GPT-5 模型可用性的信息,请参阅 GitHub 更新日志。
打开聊天视图并从模型选择器中选择 GPT-5,即可在 VS Code 的聊天对话中使用它。了解更多关于 在 VS Code 中使用语言模型 的信息。
更新 1.103.1:此更新增加了重要的提示词改进,进一步增强了模型的质量和性能。
GPT-5 mini 可用性
更新 1.103.1
从本次发布开始,GPT-5 mini 将向所有 GitHub Copilot 计划推出。GPT-5 mini 是 OpenAI 推出的 GPT-5 更快、更具成本效益的变体。了解更多关于 GPT-5 mini 模型可用性的信息,请参阅 GitHub 更新日志。
聊天检查点
设置: chat.checkpoints.enabled
我们引入了检查点功能,使您能够恢复聊天对话的不同状态。您可以轻松撤销编辑并返回到聊天对话中的特定点。如果在一个聊天会话中更改了多个文件,此功能将特别有用。
当您选择一个检查点时,VS Code 会将工作区更改和聊天历史记录还原到该点。恢复检查点后,您也可以重做该操作!
检查点默认启用,并可以通过 chat.checkpoints.enabled 进行控制。
工具选择器改进
我们在此迭代中彻底改进了工具选择器,并采用了名为 Quick Tree 的新组件来显示所有工具。

显著特性
- 展开或折叠
- 配置选项移至标题栏
- 粘性滚动(Sticky scrolling)
- 图标渲染
让我们知道你的想法!
工具分组(实验性)
设置: github.copilot.chat.virtualTools.threshold
单个聊天请求目前最多可以使用 128 个工具。之前,安装带有许多工具的 MCP 服务器很容易达到此限制,迫使您必须取消选择某些工具才能继续。
在此版本的 VS Code 中,当工具数量超过最大限制时,我们启用了一种实验性的工具调用模式。工具会自动分组,并且模型可以激活和调用工具组。
此行为(包括阈值)可通过设置 github.copilot.chat.virtualTools.threshold 进行配置。
终端自动批准功能改进
设置: chat.tools.terminal.autoApprove
上个月引入了早期的终端自动批准设置。在此次发布中,该功能得到了许多改进。请在我们的文档中了解有关 终端自动批准 的更多信息。
-
我们将
allowList和denyList设置合并到了 chat.tools.terminal.autoApprove 设置中。如果您之前使用了旧设置,您应该会看到一条警告,要求您迁移到新设置。 -
正则表达式匹配器现在支持标志。这允许不区分大小写,例如在 PowerShell 中,大小写通常不重要。
"chat.tools.terminal.autoApprove": { // Deny any `Remove-Item` command, regardless of case "/^Remove-Item\\b/i": false } -
之前关于子命令匹配的工作原理存在一些混淆,现在设置描述中对此进行了详细解释,同时我们也支持针对完整的命令行进行匹配。
"chat.tools.terminal.autoApprove": { // Deny any _command line_ containing a reference to what is likely a PowerShell script "/\\.ps1\\b/i": { "approve": false, "matchCommandLine": true } } -
自动批准的推理现在会记录到“终端输出”(Terminal Output)通道。我们计划 尽快在 UI 中呈现此信息。
终端和任务的输入请求检测
当您在 Agent 模式下运行任务或终端命令时,Agent 现在可以检测到进程何时请求用户输入。系统会提示您在聊天中响应,默认或第一个选项显示为主要操作,其他选项在下拉菜单中提供。这适用于需要多次确认的脚本和命令,跨越所有受支持的 shell 以及前台和后台终端。如果您在出现提示时在终端中键入内容,提示将自动隐藏。当提供选项和描述(例如 [Y] 是 [N] 否)时,这些信息会显示在确认提示中。
在下面的示例中,包含多个用户输入提示的脚本通过 Agent 运行。确认提示出现,我接受了这些操作,从而允许终端脚本运行完毕,并让 Agent 提供已发生操作的摘要。
改进了带有问题匹配器的任务的错误检测
对于使用问题匹配器的任务,Agent 现在会收集并根据问题匹配器的结果显示错误,而不是依赖语言模型来评估输出。问题会显示在聊天进度消息中的下拉列表中,允许您直接导航到问题位置。这确保了只有在与当前任务执行相关时才会报告错误。
Agent 模式下的复合任务支持
Agent 模式现在支持运行复合任务。当您运行复合任务时,Agent 会显示每个相关任务的进度和输出,包括任何用户输入提示。这启用了更复杂的工作流程,并提高了对多步任务执行的可见性。
在下面的示例中,运行了 VS Code - Build 任务。评估每个依赖任务的输出,并在响应和进度消息下拉列表中向用户显示问题。
无障碍性:聚焦聊天确认操作
我们增加了一个命令,聚焦聊天确认 (kb(workbench.action.chat.focusConfirmation)),如果存在确认对话框,它将聚焦该对话框,否则会向屏幕阅读器用户通报无需确认。
使用任务列表追踪进度(实验性)
设置: chat.todoListTool.enabled
Agent 模式的强大之处在于您可以给它一个高层级的任务并让它去执行。当它规划工作并将其分解为更小的任务时,跟踪所有这些单独任务的进度可能会让人不知所措。
在这个里程碑中,我们在聊天中引入了任务/待办事项列表功能,以更好地帮助您查看哪些任务已完成,哪些任务仍处于待定状态。您可以在聊天视图的顶部查看任务列表,这样您始终能够了解所取得的进展。随着 Agent 完成其工作,它会更新任务列表。
首先给 Agent 一个高层级的任务,并要求它在一个待办事项列表中跟踪其工作!
此功能仍处于实验阶段,您可以使用 chat.todoListTool.enabled 设置来启用它。
改进的模型管理体验
在此迭代中,我们改进了负责语言模型访问的聊天提供程序 API。用户现在可以选择哪些模型出现在他们的模型选择器中,从而创造更加个性化和专注的体验。

我们计划在未来几个月内最终确定此新 API,并感谢任何反馈。该 API 的最终确定将使扩展生态系统能够实现他们自己的模型提供程序,并进一步扩展“自带密钥”(bring your own key)的功能。
Azure DevOps 存储库远程索引支持
#codebase 工具 现在支持链接到 Azure DevOps 存储库的工作区的远程索引。这使得 #codebase 几乎可以瞬间搜索相关代码片段,而无需任何初始化。这甚至适用于拥有数万个可索引文件的大型存储库。之前,此功能仅适用于 GitHub 链接的存储库。
当在通过 git 链接到 Azure DevOps 的工作区中工作时,系统会自动使用远程索引。请确保您也使用访问 Azure DevOps 存储库时所用的 Microsoft 账户登录了 VS Code。
我们正在服务侧逐步推出此功能的支持,因此并非每个组织最初都能使用它。基于推广的成功,我们希望为尽可能多的组织开启 Azure DevOps 的远程索引。
提高了终端和任务工具运行的可靠性和性能
我们将从 Copilot 扩展中运行任务和命令的工具迁移到了核心 microsoft/vscode 存储库。这赋予了这些工具访问更底层、更丰富 API 的能力,使我们能够修复许多终端挂起的问题。此次更新还带来了未来更容易实现功能的便利,因为我们不再受限于扩展 API 的能力,特别是任何需要在聊天视图内自定义 UI 的更改。
任务和终端的输出轮询
Agent 现在通过使用输出轮询在继续之前等待任务和后台终端完成。如果进程耗时超过 20 秒,系统会提示您继续等待或放弃。Agent 最多监控进程两分钟,总结当前状态或报告进程是否仍在运行。这提高了在聊天中运行耗时或易出错命令时的可靠性。
任务感知改进
之前,Agent 只能监控活动任务。现在,它可以跟踪和分析活动和已完成任务的输出,包括那些失败或完成运行的任务。这一增强功能实现了更好的故障排除,并对任务执行历史提供了更全面的洞察。
Agent 对用户创建终端的感知
Agent 现在保持对工作区中所有用户创建的终端的感知。这使其能够跟踪最近的命令并访问终端输出,从而提供更好的上下文来协助处理终端和进行故障排除。
终端内联聊天改进
终端内联聊天现在可以更好地检测您的活动 shell,即使是在子 shell 中工作时(例如,从 PowerShell 或 zsh 启动 Python 或 Node)。这种动态 shell 检测通过为您的当前 shell 类型提供更相关的命令建议,提高了内联聊天响应的准确性。

改进的测试运行器工具
测试运行器工具已重新设计。它现在可以在聊天内以内联方式显示进度,并且工具中的许多错误已得到修复。
编辑以前的请求
设置: chat.editRequests
上一次迭代中,我们启用了用户编辑以前请求的功能,并推出了几个不同的访问点。本次迭代中,我们将内联编辑设置为默认行为。点击请求气泡即可开始编辑该请求。您可以修改附件、更改模式和模型,并重新发送带有修改后文本的请求。
如果您更喜欢通过每个请求上方的工具栏悬停进行编辑,则可以使用 chat.editRequests 设置来控制聊天编辑行为。
以最大化状态打开聊天
设置: workbench.secondarySideBar.defaultVisibility
我们为配置辅助侧边栏的默认可见性增加了两个额外选项,以将其以最大化状态打开。
maximizedInWorkspace:打开新工作区时,将聊天视图以最大化状态打开。maximized:始终将聊天视图以最大化状态打开,包括在空窗口中。

待处理的聊天确认
为了防止意外关闭正在主动更改文件或响应请求的 Agent 会话的工作区,现在当您在聊天响应进行中尝试退出 VS Code 或关闭其窗口时,我们会显示一个对话框。

用户操作时的 OS 通知
设置: chat.notifyWindowOnConfirmation
当聊天会话中需要用户确认时,我们现在利用操作系统原生的通知系统来显示一个 toast 通知。通过 chat.notifyWindowOnConfirmation 设置启用此行为。

我们计划在未来改进这种体验,以允许显示更多信息,并允许您直接从 toast 通知中进行批准。目前,选择 toast 通知会聚焦于确认来源的窗口。
聊天中的数学支持(预览)
设置: chat.math.enabled
聊天现在初步支持在响应中渲染数学方程式。

此功能由 KaTeX 提供支持,支持行内和块级数学方程式。行内数学方程式可以通过将标记包装在单个美元符号 ($...$) 中来编写,而块级数学方程式使用两个美元符号 ($$...$$)。
数学渲染可以使用 chat.math.enabled 启用。目前,它默认关闭,但我们计划在进一步测试后在未来的版本中启用它。
项目构建(Scaffolding)的 Context7 集成(实验性)
设置: github.copilot.chat.newWorkspace.useContext7
当您在聊天中使用 #new 构建新项目时,如果您已经安装了 Context7 MCP 服务器,现在可以确保它使用来自 Context7 的最新文档和 API。
MCP
服务器自动启动和信任
设置: chat.mcp.autostart
之前,当您添加或更新 MCP 服务器配置时,VS Code 会在聊天视图中显示一个蓝色的“刷新”图标,使您能够手动刷新工具列表。在此里程碑中,您现在可以配置 MCP 服务器的自动启动行为,因此无需再手动重启 MCP 服务器。
使用 chat.mcp.autostart 设置来控制此行为。您还可以在图标的工具提示中更改此设置,并查看哪些服务器将被启动。

MCP 服务器在更新或更改后第一次启动时,我们现在会显示一个对话框,要求您信任该服务器。在开启自动启动功能的情况下,给予这些服务器信任尤其重要,以防止不知情地运行不良命令。
在我们的文档中了解更多关于 在 VS Code 中使用 MCP 服务器 的信息。
远程 MCP 服务器的客户端凭据流
想要支持身份验证的远程 MCP 服务器的理想流程是使用支持动态客户端注册 (DCR) 的身份验证提供程序。这使客户端 (VS Code) 能够向该身份验证提供程序注册自己,从而实现无缝的身份验证流程。
然而,并非每个身份验证提供程序都支持 DCR,因此我们引入了一种客户端凭据流,允许您提供自己的客户端 ID 和(可选的)客户端密钥,这些信息将在引导您通过身份验证提供程序的身份验证流程时使用。具体如下:
-
第 1 步:VS Code 检测到无法使用 DCR,并询问您是否要进行客户端凭据流。

重要:此时,您将前往身份验证提供程序的网站并手动创建一个应用程序注册。在那里,您将输入模态对话框中提到的重定向 URI。
-
第 2 步:从身份验证提供程序的门户,您将获得一个客户端 ID 和可能的客户端密钥。您将客户端 ID 输入到出现的输入框中,并按 Enter 键。

-
第 3 步:然后,如果有的话,输入客户端密钥,并按 Enter 键(如果没有,请留空)。

届时,您将通过常规的身份验证流程来验证您正在使用的 MCP 服务器。
从账户菜单中移除动态身份验证提供程序
自从添加了远程 MCP 身份验证后,命令面板中提供了一个名为 Authentication: Remove Dynamic Authentication Providers(身份验证:移除动态身份验证提供程序) 的命令,使您能够移除客户端凭据(客户端 ID 和(如果有)客户端密钥)以及与该提供程序关联的所有账户信息。
我们现在已经在账户菜单中公开了这个命令。您可以在 MCP 服务器账户内部找到它,

或者如果您还没有任何 MCP 服务器账户,它将位于菜单的根目录下。

支持 resource_link 和结构化输出
VS Code 现在全面支持最新的 MCP 规范(版本 2025-06-18),支持工具结果中的 resource_link 和结构化输出。
辅助功能
无障碍聊天引导(Chat elicitations)
当 Agent 提示用户输入(例如是否继续等待进程)时,聊天引导现在可供屏幕阅读器访问。当提示出现时,您会收到提醒,可以使用键盘导航到它,并可以在无障碍视图中查看消息。
控制聊天编辑的文件打开
一个新设置 accessibility.openChatEditedFiles 允许您选择是否在 Agent 于聊天中编辑文件时自动打开这些文件。启用此设置可更好地控制哪些文件出现在您的编辑器中。
查看所有编辑和查看以前的编辑命令
查看所有编辑 和 查看以前的编辑 命令现在在整个编辑器中可用,使您可以轻松查看 Agent 所做的更改。当 accessibility.openChatEditedFiles 被禁用时,这些命令特别有用,允许您跟踪编辑而不必打开每个文件。
侧边栏可见性通报
当显示或隐藏主侧边栏或辅助侧边栏时,ARIA 通报会通知您此更改。这通过确保屏幕阅读器用户了解侧边栏可见性更新来提高无障碍性。
使用 Playwright 进行无障碍性测试
我们使用 Playwright 为编辑器添加了自动无障碍性测试。这些测试帮助我们持续验证 Visual Studio Code 是否符合无障碍标准和最佳实践,从而为所有用户确保更好的体验。
编辑器体验
设置搜索建议
设置编辑器搜索框中的 AI 搜索结果切换开关(以闪烁星号表示)现在对所有用户可用。当 AI 搜索结果加载并可用时,该切换开关会被启用。按下该切换开关可在 AI 和非 AI 搜索结果之间进行切换。
AI 设置搜索结果基于语义相似性,而非字符串匹配。例如,当您搜索“增大文字大小”时,editor.fontSize 会作为 AI 设置搜索结果出现。

编辑器选项卡上下文菜单
我们清理了编辑器选项卡上下文菜单,将相关的拆分和移动选项归组到一个子菜单中。

AI 统计(预览)
设置: editor.aiStats.enabled
我们添加了一个显示基本 AI 统计信息的实验性功能。使用 editor.aiStats.enabled 来启用此功能,该功能默认处于禁用状态。
此功能为您显示每个项目的 AI 插入字符与键入插入字符的百分比。它还会跟踪您在当天接受了多少内联建议和下一次编辑建议。

Notebook
带有 Agent 工具的 Notebook 内联聊天
设置: inlineChat.notebookAgent
Notebook 内联聊天控件现在可以使用全套 Notebook Agent 工具,以启用额外的功能,如运行单元格和向内核安装包。
要启用 Notebook 中的 Agent 工具,请启用新的实验性设置 inlineChat.notebookAgent 。这也目前需要启用内联聊天 v2 的设置 inlineChat.enableV2 。
在 uv 创建的虚拟环境中安装依赖
我们现在支持在针对使用 uv 创建的虚拟环境运行 Jupyter Notebook 时安装所需的依赖。
源代码管理
Git 工作树支持
设置: git.detectWorktrees
为了解决一个长期存在的 功能需求,在此里程碑中,我们增加了 Git 工作树(Worktrees)支持。工作树允许您一次检出多个分支,从而无需切换上下文即可轻松测试更改或并行工作。
当打开包含 git 存储库的文件夹或工作区时,我们现在会自动检测工作树并将其显示在源代码管理(Source Control Repositories)视图中。您现在可以使用命令面板或源代码管理存储库视图中提供的命令来查看、创建、删除和在新的或当前窗口中打开工作树。您可以通过切换 git.detectWorktrees 设置来禁用此功能。


存储库视图
源代码管理存储库视图显示在当前文件夹/工作区中发现的所有源代码管理提供程序。在此里程碑中,我们更新了该视图的渲染方式,以便在视觉上区分存储库、子模块和工作树。我们还显示了存储库、子模块和工作树之间的父子关系。

终端
终端建议中的文档支持
由语言服务器 (LSP) 提供支持的终端建议现在包含内联文档,类似于您在编辑器中看到的内容。从 Python REPL 开始,当您键入时,您将获得命令的有用描述和使用详细信息。
您目前需要这些设置来在终端中启用 LSP 建议:
- python.terminal.shellIntegration.enabled
- python.analysis.supportAllPythonDocuments
语音听写
既然终端支持自然语言输入(包括由 Gemini 和 Claude 扩展启用的终端),我们重新引入了终端中的语音听写。您可以使用 Terminal: Start Dictation in Terminal(终端:在终端中开始听写) 和 Terminal: Stop Dictation in Terminal(终端:在终端中停止听写) 命令开始或停止听写。
改进了 Shell 集成诊断
Shell 集成 是集成终端中许多功能的基础,例如 粘性滚动、快速修复 和 Agent 模式 对终端内部发生情况的理解能力。
此次发布版本中,当您将鼠标悬停在终端上并选择 Show Details(显示详细信息) 时,会有一些改进的诊断信息。您现在应该能看到检测到的 shell 类型和当前工作目录。

如果这些丰富的功能之一无法按预期工作,这是首先要检查的地方之一。
语言
Python
针对 Python 3.13 及以上版本的 Shell 集成支持
我们现在为使用 3.13 或更高版本的 Python 提供 Shell 集成支持。启用后,PyREPL 会自动禁用以确保兼容性。如果您更喜欢继续使用 PyREPL,可以禁用 Shell 集成。

Python 环境扩展改进
Python 环境扩展 作为向稳定版用户受控推广的一部分,继续收到错误修复和改进。要在推广期间使用 Python 环境扩展,请确保已安装该扩展,并将以下内容添加到您的 VS Code settings.json 文件中:"python.useEnvironmentsExtension": true。
TypeScript 5.9
VS Code 现在包含 TypeScript 5.9.2。此重大更新带来了几项新的语言改进,包括 支持 import defer,以及工具改进,如 改进了许多 DOM API 的文档。
查看 TypeScript 5.9 发布博客 以了解有关此更新的更多详细信息。
JavaScript 和 TypeScript 的可扩展悬停提示
当您将鼠标悬停在 JavaScript 或 TypeScript 中的符号上时,VS Code 会尝试显示有关该符号最有用的 IntelliSense 类型信息。类型可能非常复杂,因此我们的一个挑战是试图在显示足够的有用细节与不显示过多信息导致不知所措之间找到正确的平衡。提出一种适合所有人的方法很难,而且您想要的类型详细程度可能会根据您正在处理的内容而改变。
这就是为什么在此迭代中,我们添加了新的 UI,使您能够更自由地控制类型在悬停提示中显示的方式。当您悬停在一个符号上时,现在可以选择悬停控件左侧的小 + 图标,将悬停提示中的接口和复杂类型展开为它们的组件。例如,您可以使用此功能直接在悬停提示中查看接口的属性。
悬停提示可以多次展开,这将递归地从上一次展开中展开类型。如果您展开得太多,只需选择 - 图标即可返回上一级。还要记住,并非每种类型都是可展开的,而且我们仍然需要对我们能支持的展开数量进行一些限制。如果可扩展悬停提示在任何情况下没有按您希望的方式工作,请告知我们。
对扩展的贡献
GitHub 拉取请求
在 GitHub Pull Requests 扩展方面取得了更多进展,该扩展使你能够处理、创建和管理拉取请求和问题。
查看 0.116.0 版本扩展的更新日志 以了解该版本中的所有内容。
拉取请求标题清理
我们简化了拉取请求描述标题中的按钮栏。复制操作现在位于 PR 链接的右键上下文菜单中。

在聊天中显示编程 Agent 的 PR
设置: githubPullRequests.codingAgent.uiIntegration
当您开始编程 Agent 会话(通过 #copilotCodingAgent 或使用 Delegate to coding agent(委派给编程 Agent) 操作)时,拉取请求会作为卡片在聊天视图中呈现。

启用 githubPullRequests.codingAgent.uiIntegration 设置,即可为已启用 Agent 的存储库在聊天视图中启用新的 Delegate to coding agent(委派给编程 Agent) 按钮。
聊天会话(实验性)
编程 Agent 聊天
基于 上一次迭代的 Copilot 编程 Agent 集成,您现在可以从专用的聊天编辑器中管理编程 Agent 会话。这使您能够跟踪编程 Agent 的进度,提供后续指令,并在专用的聊天编辑器中查看 Agent 的响应。
-
使用
#copilotCodingAgent工具或通过 UI 控件 从 VS Code 开始编程 Agent 会话。 -
在附属的聊天编辑器中跟踪编程 Agent 的进度。

-
直接从聊天中提供后续指令。

聊天会话视图
设置: chat.agentSessionsViewLocation
启用 chat.agentSessionsViewLocation 设置来尝试此实验性功能。
-
当设置为
view时,您会在 VS Code 侧边栏中看到一个新的 Chat Sessions(聊天会话) 视图。此视图使您能够管理和交互您的本地聊天会话,以及编程 Agent 会话。
-
当设置为
showChatsMenu时,编程 Agent 聊天会话将与本地聊天历史记录一起显示。
此集成需要最新的 GitHub Pull Request 扩展,并打开支持 Copilot 编程 Agent 的存储库。有关更多信息,请参阅关于 如何在 VS Code 中使用编程 Agent 的新文档。
主题:Sharp Solarized (在 vscode.dev 上预览)
扩展开发
终端激活事件
有两个新的激活事件可供扩展使用:
onTerminal:当打开任何终端时触发。onTerminalShellIntegration:当为终端激活丰富的 shell 集成时触发。
您可以指定 shellType 以针对特定 shell。例如,onTerminalShellIntegration:bash 会在为 Bash 终端启用 shell 集成时激活。
提议的 API
在聊天响应中渲染自定义 Webview
聊天输出渲染器 API(Chat Output Renderer API)让扩展程序能够将聊天响应超越文本和图像。借助它,您的扩展程序可以使用 webview 在聊天输出中渲染任意 HTML 内容。示例用例包括自定义可视化、内联预览,甚至交互式控件。
聊天输出渲染器扩展示例 展示了如何使用此 API 在聊天响应中渲染 Mermaid 图表。这是此扩展示例运行的示例:

巧妙之处不在于 VS Code 可以渲染 Mermaid 图表,而在于此渲染完全可以由扩展程序贡献。借助它,您可以在聊天中迭代自定义输出。

以下是该 API 如何工作的简要介绍:
- 注册一个可以返回自定义数据作为其响应一部分的语言模型工具。我们使用 MIME 类型来标识此数据。
- 为该 MIME 类型注册一个聊天输出渲染器。
- 当语言模型调用该工具时,调用聊天输出渲染器将其渲染为响应中的 webview。
查看 扩展示例 以获取此 API 实际操作的完整端到端示例。
此 API 有潜力变得非常强大并实现一些令人惊叹的新聊天体验,所以请尝试一下并告诉我们您的想法!
聊天会话提供程序 API
新的聊天会话提供程序 API (Chat Session Provider API) 提案使扩展程序能够将其自己的聊天后端集成到 VS Code 的原生聊天 UI 中。使用它,您的扩展程序可以打开一个新的聊天会话,为该会话填充历史记录,并响应新的用户提示。
此 API 仍处于早期阶段,很可能会发生变化。但我们已经在使用它来驱动新的 GitHub 编程 Agent 会话流,它从 GitHub 加载聊天,并允许您与完全由 GitHub 控制的 Agent 进行对话。
任务执行终端
扩展作者现在可以通过新的 taskExecution.terminal 属性访问与正在运行的任务关联的终端。这使得识别哪个终端链接到特定任务并以编程方式与之交互变得更加容易。
SecretStorage keys() API
如果您曾经想获取扩展程序在 SecretStorage 中存储的键列表,现在可以通过新的提案 keys() API 来实现。
export async function activate(context: ExtensionContext) {
await context.secrets.store('mySecret', 'superSecretValue');
await context.secrets.store('mySecret2', 'superSecretValue2');
const keys = await context.secrets.keys();
console.log('All secret keys:', keys); // returns ['mySecret', 'mySecret2']
}
注意:此更改取决于提供 Secret Storage 替代实现的任何内容的更改,特别是 https://vscode.dev(已采用新 API)和 https://github.dev(即将采用新 API)。在不支持它的环境中,此 API 将抛出异常。
工程
packages.microsoft.com 密钥更新
packages.microsoft.com 更新了它们的签名密钥,因此,使用较新发行版的 Linux 用户在安装 VS Code 时应不再看到与密钥相关的警告或错误。基于 Debian 的发行版会自动收到新密钥,而其他发行版的用户可能需要在 导入新密钥 之前手动移除旧密钥。
Electron 37 更新
在此里程碑中,我们将 Electron 37 更新推广给稳定版用户。此更新附带 Chromium 138.0.7204.100 和 Node.js 22.17.0。我们要感谢所有在 Insiders 版本上进行自托管并提供早期反馈的人。
值得注意的修复
- vscode#252384 - Agent 模式在 VS Code 失去焦点时暂停
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
拉取请求
对 vscode 的贡献
- @adityavc (Aditya Chittari): #134898 - 删除换行符时修剪空白 PR #210870
- @adrianstephens: 将 debug/watch/context 添加到有效菜单扩展点列表中 PR #237751
- @andy0130tw (Andy Pan): 支持 Web 版本上 TypeScript 语言服务器的 locale 参数 (#_256252) PR #256256
- @Benimautner: 为可滚动元素添加惯性滚动 PR #244034
- @BlackHole1 (Kevin Cui): 修复:无法显示小地图中的 MAKR 下划线 PR #226116
- @bytemain (Jiacheng): 重构(终端): 引入 ITerminalLaunchResult 接口 PR #256284
- @c-claeys (Cristopher Claeys): 使编辑器命令中的 ServicesAccessor 类型更一致 PR #218369
- @CookieeQuinn (Quinn): 修复问题 #212484:在使用了 user-select: none 的文本上调用时,caretRangeFromPoint 不起作用。 PR #219819
- @CrazySteve0605 (Wang Chong): 修复(gettingStarted): 移除悬停描述中重复的 "can be" PR #254412
- @dbreen (Dan Breen): 为资源管理器使用更合理的默认滚动条宽度 PR #199784
- @devlinjunker: 在模型 API 上公开 undo/redo 和 canUndo/canRedo 方法 PR #213954
- @dibarbet (David Barbet): 启用 C# 的尖括号着色 PR #247665
- @duncpro (Duncan): 竖线字符应终止 URL PR #232460
- @dylanchu: TerminalTaskSystem: 修复字符串命令的附加参数 PR #251201
- @estrizhok (Eugene Strizhok): 更正设置 UI 中 'JetBrains' 和 'ReSharper' 的大小写 PR #254472
- @firelizzard18 (Ethan Reesor): 用于差异编辑器的上下文键
availableEditorIdsPR #250198 - @futurist (James Yang): 修复(终端): 达到回滚限制后 getBufferReverseIterator 的错误 PR #257311
- @g0t4 (Wes Higbee): 添加编辑器选项以允许选择突出显示多行选择,并添加另一个选项来控制最大长度 PR #228982
- @gabrielcsapo (Gabriel Csapo): 特性: 添加 (requestTime) logLevel 以匹配 tsserver 选项 PR #250778
- @gjsjohnmurray (John Murray)
- 添加
SecretStorage.keys()作为建议 API PR #252804 - 修复一个
@param拼写错误 PR #257219
- 添加
- @hickford (M Hickford): 添加编辑器操作 '反转行' PR #242926
- @HolgerJeromin (Holger Jeromin): vscode api: 提高对 webview 内容的兼容性 PR #253635
- @iann0036 (Ian Mckay): 修复: lm invokeTool 描述中的拼写错误 PR #257975
- @jiahaoxiang2000 (isomo): 修复 git.diff.stageHunk 命令以使用键盘快捷键 PR #254145
- @Jiogo18 (Jérôme Lécuyer): Git - 丢弃更改对话框的 l10n 本地化 PR #254366
- @joelverhagen (Joel Verhagen)
- [WIP] 添加对 NuGet 作为 MCP 包源的支持 (VS Code) PR #254678
- 围绕 NuGet MCP 辅助配置添加实验标志 PR #257463
- @Jose-AE: 修复设置 window.zoomLevel = 1 时编辑器鼠标滚轮缩放抖动 PR #227916
- @joyceerhl (Joyce Er): 修复: 使聊天输入占位符不那么晦涩 PR #255601
- @justin39 (Justin Wang)
- 为特定客户端版本向 ServeWebArgs 添加 commit_id 选项 PR #255494
- 修复 code serve-web 的 --commit-id 标志 PR #258904
- @jwangxx (James Wang): 添加清除 ChatResponseStream 的能力,传入一个原因,从而导致显示警告 PR #257271
- @Kaidesuyoo (Kaidesuyo): 修复: vscode 桌面版上不正确的 webWorkerExtensionHost 启动进程 PR #234505
- @madskristensen (Mads Kristensen): 更新了对 schemastore.org 的引用 PR #254690
- @martijnwalraven (Martijn Walraven): 使用语言提供程序时修复 Notebook 内联值 PR #254264
- @mortalYoung (野迂迂): 特性: editor.minimap.autohide 支持滚动 PR #253868
- @neorth (Joakim Berglund): 如果不是首字母缩写,则将第一个单词骆驼命名法 PR #229797
- @Ninglo (Ninglo): 修复
editor.wordSegmenterLocales配置在简单小部件编辑器(如聊天或 SCM 输入编辑器)中不起作用的问题 PR #223921 - @OfekShilon (Ofek): 修复 #4775: 在纳入正则表达式之前转义用户代码 PR #236809
- @omar-cs (Omar Carrizales): 问题 #168531: 光标高度 PR #211473
- @Q1CHENL (Qichen Liu 刘启辰): 修复: 防止在右键单击滚动条启用小地图时视图偏移 PR #210510
- @qirong77: 修复在 monaco-editor 中更新 shadow dom 选择时发生的意外控制台错误 PR #215780
- @raffaeu (Raffaele Garofalo): 特性/移动编辑器菜单 PR #247818
- @RedCMD (RedCMD): 修复空结束括号错误 PR #240609
- @remcohaszing (Remco Haszing)
- 添加 *.tsbuildinfo 到 .gitignore PR #254225
- 基于装饰添加 RTL 支持 PR #255455
- @rfon6ngy (Griffon Langyer): 允许 \n 触发软换行 PR #231120
- @Rishi-infy47 (Saptarshi Chakraborty): 修复:更改 devcontainer 的 node js 版本 PR #257400
- @sahin52 (Sahin Kasap): 修复:快速搜索不保留搜索词 PR #234368
- @Schpoone (Jason Kuo)
- 在聚焦堆栈帧时使用 preserveFocus PR #251964
- 修复悬停在指令断点上时的弹出消息 PR #254925
- @SimonSiefke (Simon Siefke)
- 修复:扩展功能选项卡中的内存泄漏 PR #256887
- 修复:编辑器编辑上下文中的内存泄漏 PR #256957
- 修复:在 dispose 中将编辑上下文设置为 undefined PR #256965
- 修复:ChatInputPart 中的内存泄漏 PR #257082
- 修复:上下文键中的内存泄漏 PR #258206
- @Skn0tt (Simon Knott): 修复 testFailure 的字符串化 PR #258463
- @timheuer (Tim Heuer): 添加对 RFC 6761 下正确 localhost 环回的支持 PR #256617
- @tmm1 (Aman Karmani)
- [工程] 为单元测试运行程序添加 testSplit 选项 PR #253049
- [开发] 打开附加到 exthost 的 devtools 的快捷方式 PR #253139
- [工程] 确保 typescript 集成测试生成 junit 报告 PR #253528
- [工程] 为 packageTask 添加标签 PR #253779
- [工程] 在 product-build-darwin-universal.yml 中并行化解压操作 PR #257775
- @ttttotem (ttttotem): 水平拖动自动滚动 PR #235174
- @turansky (Victor Turansky): 修复:
EvaluatableExpression属性的 jsdoc PR #257930 - @yamachu (Yusuke Yamada)
- 修复无效的设置键 PR #254609
- 撤销“重构:移除 ChatEditorOverlayWidget 中多余的 actionRunner 重写” PR #255456
- @yutotnh (yutotnh): 修复设置中 editor.wordSegmenterLocales 的描述 PR #210305
对 vscode-codicons 的贡献
- @desean1625 (Sean Sullivan): 在自述文件中添加链接,以便于预览和搜索图标。 PR #295
对 vscode-copilot-chat 的贡献
- @24anisha
- @danilofalcao (Danilo Falcão): 列出所有没有分类但支持工具的 openrouter 模型 PR #208
- @devm33 (Devraj Mehta): 从 Completion 响应接口中移除未使用的字段 PR #123
- @johnmog (John Mogensen): 将 Git LFS 说明添加到 CONTRIBUTING.md PR #156
- @jwangxx (James Wang): 渲染提示词时,从历史记录中排除因提示词过滤而出错的轮次 PR #399
- @shsuman (Shantnu Suman): 在所有错误消息开头打印 Error 字面量,以便于从日志中进行解析 PR #260
- @srilovesflutter (Sri): 修正拼写错误 PR #129
- @trycatchkamal (Kamal Raj Sekar): 移除测试中未使用的代码 PR #207
- @vritant24 (Vritant Bhardwaj)
对 vscode-eslint 的贡献
- @noritaka1166 (Noritaka Kobayashi): chore: 修复注释中的拼写错误 PR #2031
对 vscode-js-debug 的贡献
对 vscode-json-languageservice 的贡献
- @fengzilong (MO): feat: 允许格式化范围为 undefined PR #272
对 vscode-vsce 的贡献
- @Adjective-Object (Max): 将
commonjs注释添加到 package.json PR #1179
对 debug-adapter-protocol 的贡献
- @osiewicz (Piotr Osiewicz): chore: 将 Zed 添加到支持 DAP 的工具列表中 PR #548
对 language-server-protocol 的贡献
- @Leonidas-from-XIV (Marek Kubica): ocaml-language-server 不再存在 PR #2165
- @osiewicz (Piotr Osiewicz): chore: 将 Zed 添加到实现者列表中 PR #2164
对 python-environment-tools 的贡献
- @renan-r-santos (Renan Santos): 从 Conda 定位器中排除 Pixi 环境 PR #234