VS Codeのエージェントモードを拡張するには、を試してください!

2025年7月 (バージョン 1.103)

リリース日: 2025年8月7日

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel シリコン | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025年7月版へようこそ。このバージョンには、皆さんに気に入っていただけることを願う多くの更新が含まれています。主なハイライトの一部は以下のとおりです。

  • MCP

  • チャット

  • 生産性

    • Gitワークツリーで複数のブランチを同時にチェックアウト (詳細を表示)
    • 専用ビューでコーディングエージェントセッションを管理 (詳細を表示)

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。

Insiders: 新機能をいち早く試したいですか?
毎日のInsidersビルドをダウンロードして、最新の更新が利用可能になり次第すぐに試すことができます。
Insidersをダウンロード

チャット

GPT 5の利用可能性

本日より、GPT-5がすべての有料GitHub Copilotプランに展開されます。GPT-5はOpenAIのこれまでのモデルで最も高性能なモデルであり、推論、コーディング、チャットにおける新たな進歩をもたらします。GPT-5モデルの利用可能性については、GitHub Changelogで詳細をご覧ください。

チャットビューを開き、モデルピッカーからGPT-5を選択すると、VS Codeでチャットの会話にGPT-5を使用できます。

VS Codeでの言語モデルの使用について詳しく学ぶ。

チャットチェックポイント

設定: chat.checkpoints.enabled

チャットの会話の異なる状態を復元できるようにするチェックポイントを導入しました。編集を簡単に元に戻したり、チャットの会話の特定の時点に戻ったりすることができます。これは、チャットセッションで複数のファイルが変更された場合に特に便利です。

チェックポイントを選択すると、VS Codeはワークスペースの変更とチャット履歴をその時点に戻します。チェックポイントを復元した後も、そのアクションをやり直すことができます!

チェックポイントはデフォルトで有効になっており、chat.checkpoints.enabledで制御できます。

ツールピッカーの改善

今回のイテレーションでは、ツールピッカーを完全に刷新し、すべてのツールを表示するためにQuick Treeという新しいコンポーネントを採用しました。

Screenshot showing the new tool picker using a quick tree, enabling collapsing and expanding nodes.

注目すべき機能

  • 展開または折りたたみ
  • 設定オプションをタイトルバーに移動
  • スティッキースクロール
  • アイコンレンダリング

ご意見をお聞かせください!

ツールグループ化 (実験的)

設定: github.copilot.chat.virtualTools.threshold

単一のチャットリクエストで使用できるツールの最大数は現在128です。以前は、多数のツールを含むMCPサーバーをインストールすることでこの制限にすぐに達し、続行するためには一部のツールを選択解除する必要がありました。

このVS Codeリリースでは、ツールの数が最大制限を超えた場合に実験的なツール呼び出しモードを有効にしました。ツールは自動的にグループ化され、モデルはツールのグループをアクティブ化して呼び出すことができるようになります。

この動作(しきい値を含む)は、設定github.copilot.chat.virtualTools.thresholdで設定可能です。

ターミナル自動承認の改善

設定: chat.tools.terminal.autoApprove

先月、初期のターミナル自動承認設定が導入されました。今回のリリースでは、この機能に多くの改善が加えられました。ターミナル自動承認について、ドキュメントで詳しくご覧ください。

  • allowListdenyListの設定を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 }
    }
    
  • 自動承認の理由は、ターミナル出力チャンネルにログされるようになりました。これについては、近いうちにUIに表示する予定です

  • 当面の間、自動承認はユーザー設定またはリモート設定でのみ許可されます。今後のリリースでは、ワークスペース設定での使用を再度許可する予定です。

タスクリストで進捗を追跡 (実験的)

設定: chat.todoListTool.enabled

エージェントモードの素晴らしい点は、高レベルのタスクを与えて、それを実装させることができることです。作業を計画し、より小さなタスクに分解する際、これら個々のタスクすべての進捗を追跡するのは大変な場合があります。

このマイルストーンでは、チャットにタスク/ToDoリスト機能を導入し、どのタスクが完了し、どのタスクがまだ保留中であるかをよりよく確認できるようにしました。チャットビューの上部にタスクリストを表示できるため、進捗状況を常に把握できます。エージェントが作業を進めるにつれて、タスクリストを更新します。

エージェントに高レベルのタスクを与え、ToDoリストでその作業を追跡するように依頼することから始めましょう!

この機能はまだ実験的であり、chat.todoListTool.enabled設定で有効にできます。

モデル管理エクスペリエンスの改善

今回のイテレーションでは、言語モデルへのアクセスを担うチャットプロバイダーAPIを刷新しました。ユーザーはモデルピッカーに表示されるモデルを選択できるようになり、よりパーソナライズされ、焦点を絞ったエクスペリエンスが実現します。

Screenshot of the model picker showing various models from providers such as Copilot and OpenRouter

この新しいAPIを数ヶ月以内に最終化する予定であり、皆様からのフィードバックを歓迎いたします。このAPIの最終化により、拡張機能エコシステムが独自のモデルプロバイダーを実装し、既存のキー持ち込みサービスをさらに拡大できるようになります。

Azure DevOpsリポジトリのリモートインデックスサポート

#codebaseツールは、Azure DevOpsリポジトリにリンクされたワークスペースのリモートインデックスをサポートするようになりました。これにより、#codebaseは初期化なしでほぼ瞬時に関連するスニペットを検索できます。これは、数万のインデックス可能なファイルを持つ大規模なリポジトリでも機能します。以前は、この機能はGitHubにリンクされたリポジトリでのみ機能していました。

Gitを介してAzure DevOpsにリンクされたワークスペースで作業している場合、リモートインデックスは自動的に使用されます。Azure DevOpsリポジトリにアクセスするために使用するMicrosoftアカウントでVS Codeにもログインしていることを確認してください。

この機能のサポートはサービス側で段階的に展開されているため、最初はすべての組織が使用できるわけではありません。展開の成功に基づいて、可能な限り多くの組織でAzure DevOpsのリモートインデックスを有効にしたいと考えています。

ターミナルおよびタスクツールでの実行の信頼性とパフォーマンスの向上

ターミナル内でタスクとコマンドを実行するためのツールを、Copilot拡張機能からコアのmicrosoft/vscodeリポジトリに移行しました。これにより、ツールはより低レベルで豊富なAPIにアクセスできるようになり、多くのターミナルハング問題を修正できます。この更新には、拡張機能APIの機能、特にチャットビュー内のカスタムUIを必要とする変更に制限されなくなったため、今後機能をより簡単に実装できるという利点もあります。

チャット使用時のシェル統合なしの警告

シェル統合なしでエージェントモードがターミナルでコマンドを実行できるように努めていますが、その時点ではターミナルが基本的にブラックボックスであるため、エクスペリエンスは常に劣ります。シェル統合がない場合に発生する可能性のある問題の例としては、終了コードのレポートがないこと、コマンドのアイドル状態とプロンプトのアイドル状態を区別できないことなどが挙げられ、結果として出力がエージェントにレポートされない可能性があります。

run in terminalツールが使用され、シェル統合が検出されない場合、この点を指摘し、ドキュメントを指し示すメッセージが表示されます。

Screenshot of a message in the Chat view saying "Enable shell integration to improve command detection".

タスクとターミナルの出力ポーリング

エージェントは、出力ポーリングを使用して、タスクとバックグラウンドターミナルが完了するまで待機してから続行するようになりました。プロセスが20秒以上かかる場合は、待機を続けるか、次に進むかを確認するプロンプトが表示されます。エージェントは最大2分間プロセスを監視し、現在の状態を要約したり、プロセスがまだ実行中であるかどうかを報告したりします。これにより、チャットで長いコマンドやエラーが発生しやすいコマンドを実行する際の信頼性が向上します。

タスク認識の改善

以前は、エージェントはアクティブなタスクしか監視できませんでした。現在、アクティブなタスクと完了したタスクの両方の出力を追跡および分析できるようになり、失敗したタスクや実行が終了したタスクも含まれます。この機能強化により、トラブルシューティングが改善され、タスク実行履歴に関するより包括的な洞察が得られます。

ユーザーが作成したターミナルのエージェント認識

エージェントは、ワークスペース内のすべてのユーザーが作成したターミナルを認識し続けるようになりました。これにより、最近のコマンドを追跡し、ターミナル出力にアクセスできるようになり、ターミナルに関する支援やトラブルシューティングのためのより良いコンテキストが提供されます。

ターミナルインラインチャットの改善

ターミナルインラインチャットは、サブシェル内で作業している場合でも (例: PowerShellやzshからPythonやNodeを起動する場合)、アクティブなシェルをより正確に検出するようになりました。この動的なシェル検出により、現在のシェルタイプに合わせたより適切なコマンド候補が提供され、インラインチャットの応答の精度が向上します。

Screenshot of terminal inline chat showing node specific suggestions.

テストランナーツールの改善

テストランナーツールが再設計されました。チャット内でインラインで進捗が表示されるようになり、ツール内の多数のバグが修正されました。

以前のリクエストを編集

設定: chat.editRequests

前回のイテレーションで、ユーザーが以前のリクエストを編集できるようにし、いくつかの異なるアクセスポイントを展開しました。今回のイテレーションでは、インライン編集をデフォルトの動作にしました。リクエストの吹き出しをクリックして、そのリクエストの編集を開始します。添付ファイルを変更したり、モードやモデルを変更したり、修正したテキストでリクエストを再送信したりできます。

各リクエストの上に表示されるツールバーのホバーを介して編集することを好む場合は、chat.editRequests設定でチャット編集の動作を制御できます。

チャットを最大化して開く

設定: workbench.secondarySideBar.defaultVisibility

セカンダリサイドバーのデフォルトの表示を最大化して開くように構成するための2つの追加オプションを追加しました。

  • maximizedInWorkspace: 新しいワークスペースを開くときにチャットビューを最大化して開く
  • maximized: 空のウィンドウを含む常にチャットビューを最大化して開く

Screenshot that shows the Chat view maximized.

チャット確認の保留

エージェントセッションがファイルをアクティブに変更したり、リクエストに応答したりしているワークスペースを誤って閉じるのを防ぐため、チャット応答が進行中にVS Codeを終了したり、ウィンドウを閉じたりしようとすると、ダイアログが表示されるようになりました。

Screenshot of confirmation to exit with running chat.

ユーザーアクション時のOS通知

設定: chat.notifyWindowOnConfirmation

チャットセッション内でユーザー確認が必要な場合に、OSネイティブ通知システムを活用してトーストを表示するようになりました。chat.notifyWindowOnConfirmationを有効にすることで、この動作を有効にできます。

Screenshot of toast for confirmation of a chat agent.

将来的に、このエクスペリエンスを改善し、より多くの情報を表示したり、トーストから直接承認できるようにしたりする予定です。現在のところ、トーストを選択すると、確認が開始されたウィンドウにフォーカスが当たります。

チャットでの数式サポート (プレビュー)

設定: chat.math.enabled

チャットは、応答で数式をレンダリングする初期サポートを開始しました。

Screenshot of the Chat view, showing inline and block equations in a chat response.

この機能はKaTeXによって提供され、インラインとブロックの両方の数式をサポートしています。インライン数式は単一のドル記号 ($...$) でマークアップを囲んで記述でき、ブロック数式は二重のドル記号 ($$...$$) を使用します。

数式レンダリングはchat.math.enabledを使用して有効にできます。現在、デフォルトではオフになっていますが、さらなるテストの後、今後のリリースで有効にする予定です。

Context7によるプロジェクト足場生成との統合 (実験的)

設定: github.copilot.chat.newWorkspace.useContext7

チャットで#newを使って新しいプロジェクトの足場を生成する際、Context7 MCPサーバーをすでにインストールしている場合、Context7の最新のドキュメントとAPIを使用していることを確認できるようになりました。

MCP

サーバーの自動起動と信頼

設定: chat.mcp.autostart

以前は、MCPサーバー構成を追加または更新すると、VS Codeはチャットビューに青い「更新」アイコンを表示し、ツールのリストを手動で更新できました。今回のマイルストーンでは、MCPサーバーの自動起動動作を構成できるようになったため、MCPサーバーを手動で再起動する必要がなくなりました。

chat.mcp.autostart設定を使用してこの動作を制御します。アイコンのツールチップ内でこの設定を変更したり、起動されるサーバーを確認したりすることもできます。

Screenshot showing the hover of the refresh MCP server icon, enabling you to configure the auto-start behavior.

MCPサーバーが更新または変更された後、初めて起動される際に、サーバーを信頼するかどうかを尋ねるダイアログが表示されるようになりました。自動起動がオンになっている場合、意図しないコマンドが実行されるのを防ぐために、これらのサーバーを信頼することが特に重要です。

VS CodeでMCPサーバーを使用する方法の詳細については、ドキュメントを参照してください。

リモートMCPサーバーのクライアントクレデンシャルフロー

認証をサポートするリモートMCPサーバーの理想的なフローは、動的クライアント登録 (DCR) をサポートする認証プロバイダーを使用することです。これにより、クライアント (VS Code) がその認証プロバイダーに自身を登録できるため、認証フローがシームレスになります。

しかし、すべての認証プロバイダーがDCRをサポートしているわけではないため、独自のクライアントIDと(オプションで)クライアントシークレットを提供できるクライアントクレデンシャルフローを導入しました。これらは、認証プロバイダーの認証フローを実行する際に使用されます。以下にその様子を示します。

  • ステップ1: VS CodeはDCRが使用できないことを検出し、クライアントクレデンシャルフローを実行するかどうかを尋ねます。

    Screenshot of a modal dialog saying that DCR is not supported but you can provide client credentials manually.

    重要: この時点で、認証プロバイダーのWebサイトにアクセスし、手動でアプリケーション登録を作成します。そこに、モーダルダイアログに記載されているリダイレクトURIを入力します。

  • ステップ2: 認証プロバイダーのポータルから、クライアントIDと場合によってはクライアントシークレットを取得します。表示される入力ボックスにクライアントIDを入力し、Enterキーを押します。

    Screenshot of an input box to provide the client ID for the MCP server.

  • ステップ3: 次に、クライアントシークレットがある場合は入力し、Enterキーを押します(ない場合は空白のままにします)。

    Screenshot of an input box to provide the optional client secret for the MCP server.

    この時点で、作業中のMCPサーバーを認証するための典型的な認証フローが実行されます。

アカウントメニューからの動的認証プロバイダーの削除

リモートMCP認証の追加以来、コマンドパレットには認証: 動的認証プロバイダーを削除というコマンドがあり、これによりクライアントクレデンシャル(クライアントIDと、利用可能な場合はクライアントシークレット)およびそのプロバイダーに関連付けられたすべてのアカウント情報を削除できます。

このコマンドをアカウントメニューに公開しました。MCPサーバーアカウント内で見つけることができます。

Screenshot of the Account menu showing the manage dynamic auth option in an account's submenu.

または、まだMCPサーバーアカウントがない場合は、メニューのルートに表示されます。

Screenshot of the Account menu showing the manage dynamic auth option in the root of account menu.

VS Codeは、ツール結果でのresource_linkと構造化出力のサポートを含む、最新のMCP仕様バージョン2025-06-18を完全にサポートするようになりました。

アクセシビリティ

アクセス可能なチャットエージェントの呼び出し

エージェントがユーザー入力(プロセスを待機し続けるかどうかなど)を促す場合、チャットエージェントの呼び出しがスクリーンリーダーで利用可能になりました。プロンプトが表示されると通知され、キーボードでそれに移動し、アクセス可能なビューでメッセージを確認できます。

チャット編集のためのファイル開示の制御

新しい設定、accessibility.openChatEditedFilesを使用すると、エージェントがチャットでファイルを編集する際に、ファイルを自動的に開くかどうかを選択できます。この設定を有効にすることで、エディターに表示されるファイルをより細かく制御できます。

すべての編集と以前の編集コマンドの表示

すべての編集を表示以前の編集を表示コマンドがエディター全体で利用可能になり、エージェントによる変更を簡単に確認できるようになりました。これらのコマンドは、accessibility.openChatEditedFilesが無効になっている場合に特に役立ち、各ファイルを開かずに編集を追跡できます。

サイドバー表示の通知

プライマリまたはセカンダリサイドバーが表示または非表示になったとき、ARIAアナウンスがこの変更を通知するようになりました。これにより、スクリーンリーダーユーザーがサイドバーの表示更新を認識できるようになり、アクセシビリティが向上します。

Playwrightによるアクセシビリティテスト

Playwrightを使用して、エディターのアクセシビリティ自動テストを追加しました。これらのテストにより、Visual Studio Codeがアクセシビリティ標準とベストプラクティスを満たしていることを継続的に検証し、すべてのユーザーにとってより良いエクスペリエンスを保証します。

エディター体験

設定検索の候補

設定エディターの検索ボックスにある、きらめきで示されるAI検索結果の切り替えが、すべてのユーザーに利用可能になりました。この切り替えは、AI検索結果が読み込まれ、利用可能になったときに有効になります。切り替えを押すと、AIと非AIの検索結果が切り替わります。

AI設定の検索結果は、文字列一致ではなく意味的類似性に基づいています。例えば、「テキストサイズを大きくする」と検索すると、editor.fontSizeがAI設定の検索結果として表示されます。

Screenshot of AI results in the Settings editor for "increase text size" showing editor.fontSize setting.

エディタータブのコンテキストメニュー

エディタータブのコンテキストメニューを整理し、分割と移動に関連するオプションをサブメニューにグループ化しました。

Screenshot that shows the 'Split and Move' editor tab context menu.

AI統計 (プレビュー)

設定: editor.aiStats.enabled

基本的なAI統計を表示するための実験的な機能を追加しました。editor.aiStats.enabledを使用してこの機能を有効にしてください。デフォルトでは無効になっています。

この機能は、プロジェクトごとに、AIによって挿入された文字の割合と入力によって挿入された文字の割合を表示します。また、現在の日に受け入れたインラインおよび次の編集候補の数を追跡します。

Screenshot showing the AI statistic hover information in the Status Bar.

ノートブック

エージェントツールを使用したノートブックインラインチャット

設定: inlineChat.notebookAgent

ノートブックインラインチャットコントロールは、セルを実行したり、パッケージをカーネルにインストールしたりするなどの追加機能を実現するために、ノートブックエージェントツールの全スイートを使用できるようになりました。

ノートブックでエージェントツールを有効にするには、新しい実験的設定inlineChat.notebookAgentを有効にします。これは現在、インラインチャットv2の設定inlineChat.enableV2を有効にすることも必要とします。

uvで作成された仮想環境への依存関係のインストール

uvを使用して作成された仮想環境に対してJupyter Notebookを実行する際に、必要な依存関係のインストールをサポートするようになりました。

ソース管理

Gitワークツリーのサポート

設定: git.detectWorktrees

長らく求められていた機能リクエストに応えるため、今回のマイルストーンでGitワークツリーのサポートを追加しました。ワークツリーを使用すると、複数のブランチを一度にチェックアウトできるため、コンテキストを切り替えることなく変更をテストしたり、並行して作業したりするのが容易になります。

Gitリポジトリを含むフォルダまたはワークスペースを開くと、ワークツリーが自動的に検出され、ソース管理リポジトリビューに表示されるようになりました。コマンドパレットまたはソース管理リポジトリビューから利用できるコマンドを使用して、ワークツリーを新しいウィンドウまたは現在のウィンドウで表示、作成、削除、開くことができます。git.detectWorktrees設定を切り替えることで、この機能を無効にできます。

Screenshot of create worktree command in Source Control view.

Screenshot of open and delete worktree commands in the Source Control view.

リポジトリビュー

ソース管理リポジトリビューには、現在のフォルダー/ワークスペースで検出されたすべてのソース管理プロバイダーが表示されます。今回のマイルストーンでは、リポジトリ、サブモジュール、ワークツリーを視覚的に区別するために、ビューのレンダリングを更新しました。また、リポジトリ、サブモジュール、ワークツリー間の親子関係も表示します。

Screenshot of the Source Control Repositories view showing two repositories and a worktree associated with one of the repos.

ターミナル

ターミナル提案におけるドキュメントサポート

言語サーバー (LSP) を利用したターミナル提案に、エディターで表示されるのと同様のインラインドキュメントが含まれるようになりました。Python REPLから始めると、入力中にコマンドの役立つ説明と使用詳細が表示されます。

ターミナルでLSP提案を有効にするには、現在以下の設定が必要です

音声ディクテーション

GeminiおよびClaude拡張機能によって有効にされたターミナルを含むターミナルでの自然言語入力がサポートされるようになったため、ターミナルでの音声ディクテーションを再導入しました。ターミナル: ターミナルでディクテーションを開始およびターミナル: ターミナルでディクテーションを停止コマンドを使用して、ディクテーションを開始または停止できます。

シェル統合診断の改善

シェル統合は、統合ターミナルの多くの機能(スティッキースクロールクイックフィックスエージェントモードがターミナル内で何が起こっているかを理解する機能など)の基盤となっています。

今回のリリースでは、ターミナルをホバーして詳細を表示を選択すると、診断が改善されました。検出されたシェルタイプと現在の作業ディレクトリが表示されるはずです。

Screenshot of the detailed terminal tab hover showing the shell type like pwsh and the current working directory.

これらの豊富な機能のいずれかが期待どおりに機能しない場合は、まずここに注目してください。

言語

Python

Python 3.13以降のシェル統合サポート

Pythonバージョン3.13以降を使用する場合、Pythonのシェル統合をサポートするようになりました。有効にすると、互換性を確保するためにPyREPLは自動的に無効になります。PyREPLを引き続き使用したい場合は、シェル統合を無効にすることができます。

Screenshot showing the Python shell integration setting in the Settings editor.

Python Environments拡張機能の改善

Python Environments拡張機能は、安定版ユーザーへの制御された展開の一環として、バグ修正と改善を引き続き受け取りました。展開中にPython Environments拡張機能を使用するには、拡張機能がインストールされていることを確認し、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型情報を表示しようとします。型は非常に複雑であるため、私たちにとっての課題の1つは、有用な詳細を十分に表示しながら、圧倒されるほどの情報を表示しないという適切なバランスを見つけることでした。すべてに合う良いアプローチを考案するのは難しく、また、作業内容によっては、必要な型の詳細レベルが変わる可能性があります。

そのため、今回のイテレーションでは、ホバーで型がどのように表示されるかをより細かく制御できる新しいUIを追加しました。シンボルにホバーすると、ホバーコントロールの左側にある小さな+アイコンを選択して、ホバー内のインターフェースと複雑な型をコンポーネントに展開できるようになりました。例えば、これを使用して、インターフェースのプロパティをホバーで直接確認できます。

ホバーは複数回展開でき、以前の展開から型を再帰的に展開します。展開しすぎた場合は、-アイコンを選択して前のレベルに戻ってください。また、すべての型が展開できるわけではなく、サポートできる展開の量にはまだ制限があることに留意してください。展開可能なホバーが意図したとおりに機能しない場合は、お知らせください

拡張機能への貢献

GitHubプルリクエスト

プルリクエストや課題の作業、作成、管理を可能にするGitHub Pull Requests拡張機能に、さらなる進展がありました。

リリースされたすべての内容については、拡張機能の0.116.0版の変更履歴をご確認ください。

プルリクエストヘッダーの整理

プルリクエストのDescriptionヘッダーにあるボタンバーを簡素化しました。コピーアクションは、PRリンクの右クリックコンテキストメニューに移動されました。

Screenshot of the simplified PR header when opening the PR details.

チャットにコーディングエージェントのプルリクエストを表示

設定: githubPullRequests.codingAgent.uiIntegration

コーディングエージェントセッション(#copilotCodingAgentまたはコーディングエージェントに委任アクション経由)を開始すると、プルリクエストがチャットビューにカードとしてレンダリングされます。

Screenshot of a coding agent PR card in the Chat view.

エージェントが有効になっているリポジトリの場合、チャットビューに新しいコーディングエージェントに委任ボタンを有効にするには、githubPullRequests.codingAgent.uiIntegration設定を有効にします。

チャットセッション (実験的)

コーディングエージェントチャット

前回のイテレーションのCopilotコーディングエージェント統合を基盤として、専用のチャットエディターからコーディングエージェントセッションを管理できるようになりました。これにより、コーディングエージェントの進捗状況を追跡し、追加の指示を提供し、専用のチャットエディターでエージェントの応答を確認できます。

  • VS Codeから#copilotCodingAgentツールまたはUIコントロールを介してコーディングエージェントセッションを開始します。

  • アタッチされたチャットエディターでコーディングエージェントの進捗状況を追跡します。

    Screenshot showing Coding Agent progress.

  • チャットから直接、追加の指示を提供します。

    Screenshot showing providing a followup in chat to coding agent.

チャットセッションビュー

設定: chat.agentSessionsViewLocation

この実験的機能を試すには、chat.agentSessionsViewLocation設定を有効にしてください。

  • viewに設定すると、VS Codeのサイドバーに新しいチャットセッションビューが表示されます。このビューでは、ローカルのチャットセッションとコーディングエージェントセッションを管理および操作できます。

    Screenshot showing the Coding Agent Sessions view.

  • showChatsMenuに設定すると、コーディングエージェントチャットセッションがローカルチャット履歴とともに表示されます。

    Screenshot showing the Coding Agent Sessions Quick Pick.

この統合には、最新のGitHub Pull Request拡張機能と、Copilotコーディングエージェントをサポートするリポジトリが開いている必要があります。詳細については、VS Codeでコーディングエージェントを使用する方法に関する新しいドキュメントを参照してください。

テーマ: Sharp Solarized (vscode.devでプレビュー)

拡張機能の作成

ターミナルアクティベーションイベント

拡張機能で2つの新しいアクティベーションイベントが利用可能です

  • onTerminal: いずれかのターミナルが開かれたときにトリガーされます。
  • onTerminalShellIntegration: ターミナルでリッチシェル統合がアクティブ化されたときにトリガーされます。

特定のシェルを対象とするには、shellTypeを指定できます。たとえば、onTerminalShellIntegration:bashは、Bashターミナルでシェル統合が有効になっているときにアクティブになります。

提案されたAPI

チャット応答でのカスタムWebビューのレンダリング

チャット出力レンダラーAPIを使用すると、拡張機能はチャット応答をテキストや画像を超えたものにすることができます。これにより、拡張機能はWebビューを使用して、チャット出力に任意のHTMLコンテンツをレンダリングできます。使用例としては、カスタムの視覚化、インラインプレビュー、さらにはインタラクティブなコントロールなどが挙げられます。

チャット出力レンダラー拡張機能のサンプルは、このAPIを使用してMermaidダイアグラムをチャット応答でレンダリングする方法を示しています。以下は、この拡張機能サンプルの動作例です。

Screenshot showing a mermaid diagram in a chat response.

素晴らしいのは、VS CodeがMermaidダイアグラムをレンダリングできるだけでなく、このレンダリングを拡張機能が完全に提供できることです。これにより、チャットでのカスタム出力の繰り返しが可能になります。

Screenshot asking chat to generate a modified version of the first diagram.

APIの仕組みを簡単に説明します。

  1. 応答の一部としてカスタムデータを返すことができる言語モデルツールを登録します。このデータを識別するためにMIMEタイプを使用します。
  2. このMIMEタイプのチャット出力レンダラーを登録します。
  3. 言語モデルがツールを呼び出すと、チャット出力レンダラーを呼び出して、応答のWebビューにレンダリングします。

このAPIの動作を示す完全なエンドツーエンドの例については、拡張機能のサンプルを参照してください。

このAPIは非常に強力であり、いくつかの素晴らしい新しいチャットエクスペリエンスを可能にする可能性があるため、ぜひ試してご意見をお聞かせください!

チャットセッションプロバイダーAPI

新しいチャットセッションプロバイダーAPIの提案により、拡張機能は独自のチャットバックエンドをVS CodeのネイティブチャットUIに統合できるようになります。これを使用することで、拡張機能は新しいチャットセッションを開き、そのセッションの履歴を格納し、新しいユーザープロンプトに応答できます。

このAPIはまだ初期段階であり、変更される可能性があります。しかし、すでにこれを使用して新しいGitHubコーディングエージェントセッションフローを強化しており、これはGitHubからチャットをロードし、GitHubによって完全に制御されるエージェントとチャットすることを可能にします。

タスク実行ターミナル

拡張機能の作成者は、新しい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の代替実装を提供するもの(特に、新しいAPIを採用しているhttps://vscode.dev、およびまもなく新しいAPIを採用するhttps://github.dev)の変更に依存します。サポートされていない環境では、この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 - VS Codeがフォーカスを失うとエージェントモードが一時停止する

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-codiconsへの貢献

vscode-copilot-chatへの貢献

vscode-eslintへの貢献者

vscode-js-debugへの貢献者

  • @pilaoda (pilaoda)
    • ウォッチパネルのカスタム文字列表現を修正。 #2252 PR #2253
    • すべての変数がスコープで定義されるまで、ローカル変数パネルでtoStringが機能しない問題を修正 #2254 PR #2255

vscode-json-languageserviceへの貢献

vscode-vsceへのコントリビューション

debug-adapter-protocolへの貢献者

language-server-protocolへの貢献者

python-environment-toolsへの貢献