コンテンツにスキップ

2025 年 8 月 (バージョン 1.104)

リリース日: 2025 年 9 月 11 日

更新 1.104.1: この更新では、これらの 問題 に対処しています。


Visual Studio Code の 2025 年 8 月のリリースへようこそ。このバージョンには多くの更新があり、皆様に気に入っていただけることを願っています。主なハイライトは次のとおりです:

モデルの柔軟性 セキュリティ 生産性
VS Code に最適なモデルを選択させる
詳細
機密ファイルの編集を確認する
詳細
チャットファイルの編集から注意散漫になる要素を削除
詳細
VS Code 拡張機能を通じてモデルをコントリビュートする
詳細
エージェントにターミナルコマンドを安全に実行させる
詳細
AGENTS.md を使用してチャットコンテキストを追加する
詳細


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

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

チャット

自動モデル選択 (プレビュー)

このイテレーションでは、チャットに自動モデル選択を導入します。モデルピッカーで Auto モデルを選択すると、VS Code は自動的にモデルを選択し、最適なパフォーマンスを確保し、レート制限を削減します。

自動モデル選択は現在プレビュー段階であり、今後数週間で VS Code のすべての GitHub Copilot ユーザーに展開される予定です。まずは個人の Copilot プランから開始します。

チャットビューのモデルピッカーに Auto オプションが表示されているスクリーンショット。

Auto は、組織がこれらのモデルへのアクセスを無効にしていない限り、Claude Sonnet 4、GPT-5、GPT-5 mini、および GPT-4.1 の中から選択します。自動モデル選択を使用する場合、VS Code は選択されたモデルに基づいて可変のモデル乗数を使用します。有料ユーザーの場合、auto は 10% のリクエスト割引を適用します。

選択されたモデルとモデル乗数は、チャットビューの応答にカーソルを合わせることで確認できます。

チャットの応答のスクリーンショット。ホバー時に選択されたモデルが表示されています。

VS Code での 自動モデル選択 について詳しく学びましょう。

機密ファイルの編集を確認する

設定: setting(chat.tools.edits.autoApprove)

エージェントモードでは、エージェントはワークスペース内のファイルを自律的に編集できます。これには、構成ファイルなどの重要なファイルを誤ってまたは悪意を持って変更または削除することが含まれる可能性があり、マシンに即座に悪影響を及ぼす可能性があります。AI を活用した開発ツールを使用する際の セキュリティに関する考慮事項 について詳しく学びましょう。

このリリースでは、エージェントは特定のファイルを編集する前に、ユーザーに明示的に確認を求めるようになりました。これにより、エージェントモードを使用する際の安全性がさらに向上します。setting(chat.tools.edits.autoApprove) 設定を使用すると、確認が必要なファイルを示すファイルパターンを構成できます。

一般的なシステムフォルダー、ドットファイル、およびワークスペース外のファイルは、デフォルトで確認が必要になります。

チャットビューで機密ファイルの編集に関する確認ダイアログが表示されているスクリーンショット。

AGENTS.md ファイルのサポート (実験的)

設定: setting(chat.useAgentsMdFile)

AGENTS.md ファイルを使用すると、エージェントにコンテキストと指示を提供できます。このリリースから、ワークスペースのルートに AGENTS.md ファイルがあると、チャットリクエストのコンテキストとして自動的に取得されます。これは、複数の AI エージェントを使用するチームに役立ちます。

AGENTS.md ファイルのサポートはデフォルトで有効になっており、setting(chat.useAgentsMdFile) 設定で制御できます。AGENTS.md ファイルの詳細については、https://agents.md/ を参照してください。

あなたのプラクティスやチームのワークフローに合わせて VS Code でチャットをカスタマイズする 方法について詳しく学びましょう。

変更されたファイルの体験向上

このイテレーションでは、変更されたファイルのリストがいくつかの QoL (Quality-of-Life) 機能で再設計されました。これらの変更により、エージェントモードでの作業体験が向上するはずです!

  • 変更されたファイルのリストは、チャットの会話により多くのスペースを確保するために、デフォルトで折りたたまれるようになりました。折りたたまれている間も、変更されたファイルの数と追加または削除された行数を確認できます。
  • 提案された変更を保持または受け入れると、ファイルは変更されたファイルのリストから削除されます。
  • ソース管理ビューを使用してファイルをステージングまたはコミットすると、提案されたファイルの変更が自動的に受け入れられます。
  • リストの各項目に、ファイルごと の変更 (追加または削除された行) が表示されるようになりました。

プロンプトファイルでカスタムチャットモードを使用する

プロンプトファイルは、再利用可能なチャットプロンプトを記述する Markdown ファイルです。プロンプトファイルを実行するには、チャット入力フィールドに / に続けてプロンプトファイル名を入力するか、エディターでプロンプトファイルを開いているときに再生ボタンを使用します。

プロンプトファイルの実行に使用するチャットモードを指定できます。以前は、プロンプトファイルで agenteditask などの組み込みチャットモードしか使用できませんでした。プロンプトファイルでカスタムチャットモードを参照することもできるようになりました。

プロンプトファイル内のカスタムチャットモードに対する IntelliSense を示すスクリーンショット。

プロンプトファイル、チャットモード、カスタム指示を使用して VS Code でチャットをカスタマイズする 方法について詳しく学びましょう。

プロンプトファイルの提案を構成する (実験的)

設定: setting(chat.promptFilesRecommendations)

チームは AI ワークフローを標準化するためにカスタムプロンプトファイルを作成することがよくありますが、これらのプロンプトはユーザーが最も必要とするときに見つけにくいことがあります。 अब, आप प्रासंगिक शर्तों के आधार पर चैट वेलकम व्यू में सुझाव के रूप में कौन सी प्रॉम्प्ट फाइलें दिखाई देती हैं, इसे कॉन्फ़िगर कर सकते हैं。

新しい setting(chat.promptFilesRecommendations) 設定は、コンテキストに応じた提案のために、単純なブール値と when 句の両方の式をサポートします。

{
  "chat.promptFilesRecommendations": {
    "plan": true,                            // 常に提案する
    "a11y-audit": "resourceExtname == .html", // HTML ファイルの場合のみ
    "document": "resourceLangId == markdown", // Markdown ファイルの場合のみ
    "debug": false                           // 提案しない
  }
}

これにより、チームは適切なタイミングで適切な AI ワークフローを提示でき、カスタムプロンプトがワークスペースやファイルタイプに対してより見つけやすく、関連性の高いものになります。

ツールセットでツールを選択する

ツールセット は、関連するツールをグループ化する便利な方法であり、VS Code には editsearch などのいくつかの組み込みツールセットがあります。

ツールピッカーには、各ツールセットにどのツールが含まれているかが表示され、各ツールを個別に有効または無効にできます。ツールピッカーには、チャットビューの Configure Tools... ボタンからアクセスできます。

ツールピッカーのスクリーンショット。展開された編集ツールセットに、利用可能なすべてのツールがリストされています。

チャットで使用されるフォントを構成する

設定: setting(chat.fontFamily)setting(chat.fontSize)

VS Code では、エディター全体で使用するフォントを選択できますが、チャットビューにはその構成可能性がありませんでした。今回、チャットメッセージのフォントファミリー (setting(chat.fontFamily)) とフォントサイズ (setting(chat.fontSize)) を構成するための 2 つの新しい設定を追加しました。

カスタムフォントとフォントサイズで表示されたチャットビューのスクリーンショット。

注意: 現在、リストのコンテンツはこれらの設定を尊重しませんが、これは今後のリリースで修正に取り組んでいるものです。

コーディングエージェントとの共同作業 (実験的)

コーディングエージェントを使用すると、タスクを AI エージェントに委任してバックグラウンドで作業させることができます。複数のそのようなエージェントを並行して作業させることができます。コーディングエージェントとより効果的に共同作業できるように、チャットセッションの体験を進化させ続けています。

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

設定: setting(chat.agentSessionsViewLocation)

チャットセッションビューは、ローカルおよびコントリビュートされたチャットセッションの両方を管理するための単一の統一されたビューを提供します。チャットセッションビューを大幅に強化し、すべての主要な操作を実行できるようになり、コーディングタスクの反復と最終決定が容易になりました。

  • ステータスバーの追跡: ステータスバーから直接、複数のコーディングエージェントの進捗を監視します。
  • マルチセッションのサポート: 同じビューから複数のチャットセッションを起動および管理します。
  • 拡張されたコンテキストメニュー: コーディングエージェントと効率的に対話するためのより多くのアクションにアクセスします。
  • リッチな説明: リッチな説明を有効にすると、各リストエントリに関連情報をすばやく見つけるのに役立つ詳細なコンテキストが含まれるようになりました。

GitHub コーディングエージェントの統合

よりスムーズで直感的な体験を提供するために、GitHub コーディングエージェント とチャットセッションの統合を改善しました。

  • チャットエディターのアクション: チャットエディターから直接、コードの変更を簡単に表示または適用し、プルリクエストをチェックアウトします。
  • シームレスな移行: 継続性が向上し、ローカルチャットから GitHub エージェントタスクに移行します。
  • より良いセッションレンダリング: 視覚的な明瞭さを向上させるためのカードとツールのレンダリングに関するさまざまな改善。
  • パフォーマンスの向上: より応答性の高い体験のための高速なセッション読み込み。

コーディングエージェントへの委任

VS Code のローカルタスクを Copilot コーディングエージェントに委任する方法を引き続き拡張しました:

  • コーディングエージェントで TODO を修正:

    TODO で始まるコメントに、コーディングエージェントセッションをすばやく開始するためのコードアクションが表示されるようになりました。

    TODO コメントの上にある「Delegate to coding agent」というコードアクションのスクリーンショット。

  • チャットからの委任 (setting(githubPullRequests.codingAgent.uiIntegration)):

    チャットで Delegate to coding agent アクションを実行すると、ファイル参照を含む追加のコンテキストが GitHub コーディングエージェントに転送されるようになりました。これにより、タスクをコーディングエージェントに渡す前に正確に計画できます。新しいチャットエディターが開き、コーディングエージェントの進捗がリアルタイムで表示されます。

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

Google でのソーシャルサインイン

Google アカウントで GitHub Copilot にサインインまたはサインアップするオプションが一般提供され、VS Code のすべてのユーザーに展開されています。

Google アカウントを使用するオプションが表示されているサインインダイアログのスクリーンショット。

詳細については、GitHub ブログの発表記事 を参照してください。

ターミナルの自動承認

設定: setting(chat.tools.terminal.enableAutoApprove)

ターミナルコマンドの自動承認は、エージェントとの対話を大幅に効率化できますが、セキュリティリスク も伴います。このリリースでは、使いやすさとセキュリティの両方を向上させるために、ターミナルの自動承認にいくつかの改善を導入しています。

  • setting(chat.tools.terminal.enableAutoApprove) 設定でターミナルの自動承認を有効または無効にできるようになりました。この設定は、デバイス管理 を介して組織が設定することもできます。
  • ターミナルの自動承認が実際に有効になる前に、チャットビューのドロップダウンから明示的にオプトインする必要があります。

    チャットビューのターミナルコマンドのスクリーンショット。「Enable Auto Approve」ドロップダウンが表示されています。

  • チャットビューから、実行中のコマンドの自動承認ルールを簡単に追加したり、構成設定を開いたりできます:

    「foo --arg && bar」に対して 3 つの標準オプションが表示されているスクリーンショット。

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

    これには、npm ではなく npm test ルールを提案するなど、より適切なサブコマンドを提案するための基本的なサポートが含まれています。

  • 自動承認されたコマンドの透明性を向上させるために、チャットビューにどのルールが適用されたかを表示し、そのルールを構成できるようにしました:

    新しい自動承認ルールを追加するためのチャットビューのツールコールの下に追加された新しいリンクを示すスクリーンショット。

  • 安全性を高め、ノイズを減らすためにデフォルトを改善しました。settings.json ファイルを開き、chat.tools.terminal.autoApprove を入力して kbstyle(Tab) で補完することで、設定のデフォルト値を確認してルールの完全なリストを表示できます。
  • バックスラッシュまたはフォワードスラッシュ文字を含む非正規表現ルールは、パスとして扱われるようになり、その正確なパスだけでなく、どちらのスラッシュタイプや ./ プレフィックスも許可します。PowerShell を使用する場合、すべてのルールは大文字と小文字を区別しないように強制されます。
  • エージェントモードが curlwgetInvoke-RestMethod、または Invoke-WebRequest を使用してインターネットからコンテンツを取得しようとすると、警告が表示されるようになりました。これは、プロンプトインジェクション攻撃の一般的なベクトルであるためです。

ドキュメントで ターミナルの自動承認 について詳しく学びましょう。

グローバル自動承認

グローバル自動承認は v1.99 以降、実験的な設定 でした。私たちが観察したところによると、ユーザーは結果を深く考えずにこの設定を有効にしていました。さらに、一部のユーザーは setting(chat.tools.autoApprove) 設定を有効にすることがターミナルの自動承認を有効にするための前提条件であると考えていましたが、それは決して事実ではありませんでした。

これらの誤解に対処し、ユーザーをさらに保護するために、グローバル自動承認が初めて使用されようとするときに、当然のことながら恐ろしい見た目の警告が表示されるようになりました。これにより、ユーザーは簡単に元に戻して設定を無効にできます:

グローバル自動承認が初めて使用されたときに表示される警告ダイアログのスクリーンショット。

設定も、自動移行なしでより明確な setting(chat.tools.global.autoApprove) に変更されました。そのため、すべてのユーザー (偶発的または意図的) は、再度明示的に設定する必要があります。

数式レンダリングがデフォルトで有効に

設定: setting(chat.math.enabled)

チャット応答での数式のレンダリングが一般提供され、デフォルトで有効になりました。この機能は setting(chat.math.enabled) 設定で無効にできます。

チャットビューのスクリーンショット。チャット応答にインラインおよびブロック数式が表示されています。

この機能は KaTeX を利用しており、インラインおよびブロックの両方の数式をサポートしています。インライン数式は、マークアップを単一のドル記号 ($...$) で囲むことで記述でき、ブロック数式は 2 つのドル記号 ($$...$$) を使用します。

チャットビューのデフォルトの可視性

設定: setting(workbench.secondarySideBar.defaultVisibility)

ワークスペースを初めて開くと、チャットビューのあるセカンダリサイドバーがデフォルトで表示され、すぐに質問したり、エージェントセッションを開始したりできます。この動作は setting(workbench.secondarySideBar.defaultVisibility) 設定を使用するか、チャットビュー自体のドロップダウンを使用して構成できます:

セカンダリサイドバーのデフォルトの可視性を設定するオプションがあるチャットビューメニューのスクリーンショット。

タスクサポートの改善

  • 入力リクエストの検出

    エージェントモードでタスクまたはターミナルコマンドを実行すると、エージェントはプロセスがユーザー入力を要求したことを検出し、チャットで応答するように促されます。プロンプトが表示されている間にターミナルに入力すると、プロンプトは自動的に非表示になります。オプションと説明が提供されている場合 (例: [Y] Yes [N] No)、これらは確認プロンプトに表示されます。

  • 問題マッチャーを使用したタスクのエラー検出

    問題マッチャーを使用するタスクの場合、エージェントは言語モデルに出力を評価させるのではなく、問題マッチャーの結果に基づいてエラーを収集して表示するようになりました。問題はチャットの進捗メッセージ内のドロップダウンに表示され、問題の場所に直接移動できます。これにより、現在のタスク実行に関連する場合にのみエラーが報告されるようになります。

  • 複合タスクのサポート

    エージェントモードは、複合タスクの実行をサポートするようになりました。複合タスクを実行すると、エージェントはユーザー入力のプロンプトを含む、各依存タスクの進捗と出力を示します。これにより、より複雑なワークフローと、複数ステップのタスク実行の可視性が向上します。

    以下の例では、VS Code - Build タスクが実行されます。各依存タスクの出力が評価され、応答と進捗メッセージのドロップダウンでユーザーに問題が提示されます。

ターミナルサポートの改善

  • より多くのターミナルツールをコアに移動

    前回のリリースでの runInTerminal ツール と同様に、terminalSelectionterminalLastCommand ツールが拡張機能からコアに移動され、全体的な信頼性が向上するはずです。

  • 構成可能なターミナルツールのシェル統合タイムアウト

    runInTerminal ツールがターミナルを作成しようとすると、シェル統合がアクティブになるまで一定期間待機します。非常に重い PowerShell プロファイルがあるなど、シェルの起動が特に遅い場合、以前は固定されていた 5 秒のタイムアウトを待っても、最終的に失敗する可能性がありました。このタイムアウトは、setting(chat.tools.terminal.shellIntegrationTimeout) 設定で構成できるようになりました。

  • コマンドプロンプトの使用を防止

    コマンドプロンプトでは、少なくとも Copilot が必要とする機能ではシェル統合が実際には不可能であるため、Copilot は代わりに Windows PowerShell を使用することを選択するようになりました。これにより、デフォルトでシェル統合が有効になるはずです。これにより、デフォルトのシェルがコマンドプロンプトの場合に runInTerminal ツールの信頼性が向上するはずです。

    何らかの理由で Copilot にコマンドプロンプトを使用させたい場合、現在は不可能です。近いうちに、Copilot が使用するターミナルプロファイルをカスタマイズする機能を追加する予定です。これは #253945 で追跡されています。

Todo リストツール

Todo リストツールは、エージェントが複雑な複数ステップのタスクをより小さなタスクに分解し、進捗を報告して個々の項目を追跡するのに役立ちます。このツールに改善を加え、デフォルトで有効になりました。

ツールの進捗は、チャットビューの上部にある Todo コントロールに表示されます。これは、Todo リストが処理されるにつれて自動的に折りたたまれ、進行中の現在のタスクのみが表示されます。

ツール呼び出しをスキップする

エージェントがツール呼び出しの確認を要求したときに、ツール呼び出しをスキップしてエージェントを続行させることを選択できるようになりました。チャット入力ボックスを介してリクエストをキャンセルしたり、新しいリクエストを入力したりすることもできます。

#codebase ツールをアップグレードし、ワークスペース内のコードをセマンティック検索するための新しい 埋め込み モデルを使用するようにしました。この新しいモデルは、コード検索でより良い結果を提供します。新しい埋め込みはストレージスペースも少なく、各埋め込みで以前のモデルのディスク上のストレージサイズの 6% しか必要としません。

今後数週間で、この新しい埋め込みモデルを段階的に展開していきます。ワークスペースは自動的にこの新しい埋め込みモデルを使用するように更新されるため、アクションは必要ありません。VS Code Insiders はすでに新しいモデルを使用しているため、展開される前に試すことができます。

GitHub Copilot AI 機能を非表示および無効にする

設定: setting(chat.disableAIFeatures)

チャット、コード補完、次の編集候補など、GitHub Copilot が提供する組み込みの AI 機能を無効にして非表示にするための新しい設定 setting(chat.disableAIFeatures) を導入します。

この設定には、以前のソリューションに比べて次の利点があります:

  • 明示的に無効にしない限り、デバイス間で同期されます
  • インストールされている場合、Copilot 拡張機能を無効にします
  • プロファイルごとまたはワークスペースごとに設定を構成できるため、AI 機能を簡単に選択的に無効にできます

「Hide AI Features」コマンドは、この変更を反映するように名前が変更され、設定エディターでこの新しい設定が表示されるようになります。

注意: 以前に AI 機能を非表示にしていたユーザーは、引き続き AI 機能が非表示になります。選択をデバイス間で同期したい場合は、追加で設定を更新できます。

MCP

サーバー指示のサポート

VS Code は MCP サーバーの指示を読み取り、ベースプロンプトに含めるようになりました。

MCP 自動検出がデフォルトで無効に

設定: setting(chat.mcp.discovery.enabled)

VS Code は、Claude Code などの他のアプリにインストールされている MCP サーバーの自動検出 をサポートしています。VS Code での MCP サポートが成熟したため、自動検出はデフォルトで無効になりましたが、setting(chat.mcp.discovery.enabled) 設定を使用して再度有効にできます。

MCP を有効にする

設定: setting(chat.mcp.access)

以前に VS Code で MCP サーバーを実行できるかどうかを制御していた chat.mcp.enabled 設定は、より説明的なオプションを持つ新しい setting(chat.mcp.access) 設定に移行されました:

  • all: すべての MCP サーバーの実行を許可します (以前の true 値に相当)
  • none: MCP サポートを完全に無効にします (以前の false 値に相当)

アクセシビリティ

チャット確認アクションにフォーカスする

コマンド Focus Chat Confirmation (kb(workbench.action.chat.focusConfirmation)) を追加しました。これは、確認ダイアログが存在する場合はそれにフォーカスし、存在しない場合はスクリーンリーダーユーザーに確認が不要であることをアナウンスします。

コード編集

構成可能なインライン提案の遅延

設定: setting(editor.inlineSuggest.minShowDelay)

新しい設定 setting(editor.inlineSuggest.minShowDelay) を使用すると、入力後にインライン提案がどれだけ早く表示されるかを構成できます。これは、提案が早すぎて入力の邪魔になると感じる場合に便利です。

エディター体験

Windows でのウィンドウ境界線の色のサポート

設定: setting(window.border)

Windows で VS Code ウィンドウの周りに色付きの境界線を表示できる新しい設定 setting(window.border) を追加できることを嬉しく思います。この設定には次のオプションがあります:

  • default: カラーテーマの設定を尊重し、Windows の設定にフォールバックします
  • system: Windows の設定のみを尊重します (ウィンドウタイトルのアクセントカラー)
  • off: 境界線の色を無効にします
  • <color>: Hex、RGB、RGBA、HSL、HSLA 形式の特定の色

ワークスペースごとに色を構成できるため、どのウィンドウでどのワークスペースが開かれているかを簡単に区別できます。

異なる境界線色の複数の VS Code ウィンドウのスクリーンショット。

setting(window.border)default として構成すると、テーマは window.activeBorderwindow.inactiveBorder のカラーキーを使用して、アクティブおよび非アクティブなウィンドウの境界線の色を設定できます。これらの色は、setting(workbench.colorCustomizations) 設定からさらに上書きできます。

拡張機能のアカウント設定を管理する

コマンドパレットに Accounts: Manage Extension Account Preferences コマンドを追加しました。呼び出されると、認証アカウントにアクセスできる拡張機能のリストが表示され、それらの拡張機能が使用するアカウントを変更できます。リストから直接新しいアカウントにサインインすることもできます。

これは、1 年前に追加したアカウント管理機能 に基づいています。

エディタータブのインデックス

設定: setting(workbench.editor.showTabIndex)

エディタータブのラベルにタブのインデックスをレンダリングできるようになりました。これは、多くのタブを開いていて、キーボードショートカットを使用してそれらの間をすばやく移動したい場合に便利です。この機能は setting(workbench.editor.showTabIndex) 設定で有効にします。

インデックスを示す数字が前に付いたエディタータブのスクリーンショット。

エディタータブバーのスクロールバーの可視性

設定: setting(workbench.editor.titleScrollbarVisibility)

setting(workbench.editor.titleScrollbarVisibility) を使用すると、エディタータブバーのスクロールバーがいつ表示されるかを制御できます。デフォルト値の auto は、タブがオーバーフローし、タブがホバーされたときにのみスクロールバーを表示します。また、タブがオーバーフローしたときに常にスクロールバーを表示するには visible に、表示しないようにするには hidden に設定することもできます。

問題報告者の改善

組み込みの問題報告者を介して VS Code または拡張機能の問題を報告する際に、レポートボタンのドロップダウンから Create on GitHub または Preview on GitHub のいずれかを選択できるようになりました。ボタンがドロップダウンを表示せず、Create または Preview のみを表示する場合、これは拡張機能データをまだ読み込んでいるか、正しいスコープを提供する GitHub アカウントでサインインしていることを確認する必要があることを意味している可能性があります。

問題報告者で Create on Github と Preview on Github を表示するドロップダウンのスクリーンショット。

Notebooks

NES 提案の改善 (実験的)

設定: setting(github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled)

ノートブックの次の編集提案の品質を向上させる実験を行っています。現在、言語モデルは提案を生成する際にアクティブなセルの内容にアクセスできます。setting(github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled) 設定を有効にすると、言語モデルはノートブック全体にアクセスできるようになり、より正確で高品質な次の編集提案を生成できます。

ソース管理

Git worktree の変更をプレビューして移行する

ソース管理の変更ビューで worktree ファイルを右クリックしてコンテキストメニューを開き、Compare with Workspace を選択することで、worktree ファイルと現在のワークスペースとの違いをプレビューできるようになりました。

SCM ビューで worktree 内の変更されたファイルに表示されたコンテキストメニューのスクリーンショット。「Compare with Workspace」オプションが選択されています。

変更を確認した後、コマンドパレットから Migrate Worktree Changes... コマンド (kb(git.migrateWorktreeChanges)) を使用して、worktree からのすべての変更を現在のワークスペースにマージできます。これにより、複数の worktree 間で作業し、選択的に変更をメインリポジトリに戻すことが容易になります。

VS Code での Git worktrees について詳しく学びましょう。

ターミナル

ターミナルウィンドウの発見可能性と洗練

ターミナルを別のウィンドウで開けるようにしてほしいという要望がよくあります。この機能は約 1 年半前から存在していましたが、特に発見しやすくはありませんでした。このイテレーションでは、この機能のための複数のエントリポイントを追加しました:

  • 新しいコマンド kb(workbench.action.terminal.newInNewWindow)
  • 空のエディターとタブウェルのメニューに New Terminal エントリが追加されました。
  • 新しいターミナルのドロップダウンが再編成され、New Terminal Window エントリが追加されました。
  • トップレベルのターミナルメニューに New Terminal Window エントリが追加されました。

また、これらの新しいターミナルウィンドウがコンパクトモードで開くエクスペリエンスも洗練しました。ウィンドウに新しいタブを追加すると、自動的にコンパクトモードが終了します。

コンパクトモードで開かれたターミナルウィンドウのスクリーンショット。ターミナルのコンテンツにより多くのスペースを確保するためにタブが非表示になっています。

ターミナルエディターでのターミナルアクション

ターミナルビューで利用可能なアクション (新しいターミナルのドロップダウン、ターミナルのクリアなど) は、エディターエリアとターミナルウィンドウのターミナルでも利用できるようになりました。

エディターアクションメニューのさまざまなターミナルアクションのスクリーンショット。

ターミナルビューと同様に、アクションエリアを右クリックしてオーバーフローメニューから移動させることができます。

ターミナル IntelliSense の改善 (プレビュー)

このリリースでは、ターミナル IntelliSense にいくつかの改善が加えられています:

  • 複数のパフォーマンス改善。これらは Windows でのエクスペリエンスに特に大きな影響を与えます。
  • Windows で利用できない sed 依存関係が削除されたため、git 補完が Windows でより信頼性が高くなりました。
  • git 補完には、コミット、ブランチ、リモート、スタッシュ、タグを表すおなじみのアイコンが表示されるようになりました。 「git checkout」の補完でタグとブランチに新しいアイコンが表示されているスクリーンショット
  • 多数の補完仕様が追加されました: adb, basename, bundle, clear, cut, date, dd, diff, dig, dirname, docker-compose, docker, dotnet, env, export, fdisk, fmt, fold, gh, go, htop, id, jq, ln, lsblk, lsof, mount, nl, od, paste, ping, pkill, readlink, rsync, ruby, ruff, sed, seq, shred, sort, source, split, stat, su, sudo, tac, tar, tee, time, tr, traceroute, tree, truncate, uniq, unzip, wc, where, whereis, which, who, xargs, xxd, yo, zip

ターミナルのスティッキースクロールの改善

ターミナルのスティッキースクロールをデフォルトで有効にしました。ページャーを使用する際の動作の改善など、より良いエクスペリエンスのためにいくつかの改善を行いました。ターミナルのスティッキースクロールは、setting(editor.tabFocusMode) 設定と互換性があります。

言語

JavaScript と TypeScript

使用状況の数値をレビューした結果、組み込みの bower.json IntelliSense を削除することにしました。Bower は 2017 年から非推奨 であり、私たちの組み込みサポートはほとんど使用されておらず、積極的にメンテナンスされていませんでした。

Bower は、ユーザーが npm または yarn に移行することを推奨しています。VS Code での Bower の継続的なサポートは、拡張機能によって提供できます。

Python

Python Environments 拡張機能の Pipenv サポート

Pipenv 環境が Python 拡張機能と同様に検出および選択できるようになりました。さらに、Python サイドバーの Environment Manager ビューに表示され、他の環境タイプと一緒にグループ化されて表示されます。

Pipenv 環境が展開された Python サイドバーのスクリーンショット。

環境変数のインジェクションを構成する

新しい設定 setting(python.useEnvFile) は、Python Environments 拡張機能が有効になっている場合に、.env ファイルと setting(python.envFile) 設定からの環境変数がターミナルにインジェクトされるかどうかを制御します。

Python Environments 拡張機能の改善

Python Environments Extension は、安定版ユーザーへの制御されたロールアウトの一環として、バグ修正と改善を受け続けました。ロールアウト中に Python Environments 拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Code の settings.json ファイルに以下を追加してください: "python.useEnvironmentsExtension": true

Pylance による AI を活用したホバー要約 (実験的)

Pylance の最新のプレリリースバージョンを使用している場合、Python で新しい実験的な AI ホバー要約機能が利用可能になりました。setting(python.analysis.aiHoverSummaries) 設定を有効にすると、ドキュメントがまだないシンボルに対して、その場で役立つ要約を取得できます。これにより、なじみのないコードを理解しやすくなり、Python プロジェクトを探索する際の生産性が向上します。AI ホバー要約は現在、GitHub Copilot Pro、Pro+、および Enterprise ユーザーが利用できます。

この実験的な体験を、近いうちに安定版の拡張機能バージョンに導入できることを楽しみにしています。

コードスニペット実行ツール

python -c "code" のようなターミナルコマンドに頼ったり、実行するための一時ファイルを作成したりする代わりに、Pylance のコードスニペット実行ツールを使用すると、GitHub Copilot は Python スニペットを完全にメモリ内で実行できます。ワークスペースに構成された正しい Python インタープリターを自動的に使用し、ターミナル実行中に時々発生するシェルエスケープやクォーティングに関する一般的な問題を排除します。

際立った利点の 1 つは、stdout と stderr の両方が明確さのためにインターリーブされた、クリーンで適切にフォーマットされた出力を提供することです。これにより、GitHub Copilot でエージェントモードを使用して、ワークスペースのコンテキスト内で小さなコードブロックをテストしたり、クイックスクリプトを実行したり、Python 式を検証したり、インポートをチェックしたりするのに最適です。

試すには、Pylance 拡張機能の最新のプレリリースバージョンを使用してください。その後、チャットビューの Add context... > Tools メニューから pylancerunCodeSnippet ツールを選択できます。

注意: すべての AI 生成コードと同様に、このツールを実行させる前に、生成されたコードを検査してください。コードのロジックと意図を確認することで、プロジェクトの目標に沿っており、安全性と正確性が維持されていることを確認できます。

すべての Python ドキュメントで Pylance IntelliSense が有効に

python.analysis.supportAllPythonDocuments 設定は最新の Pylance プレリリースバージョンから削除され、Pylance IntelliSense はターミナルや diff ビューを含むすべての Python ドキュメントでデフォルトで有効になりました。これは、VS Code で Python を扱う場所ならどこでも、リッチなコード補完、ホバー、コードナビゲーションを利用できることを意味します。

アクティベーションフック

Python アクティベーションフックは、シェルプロファイルを変更するために Python 環境拡張機能を必要とせず、シェル統合スクリプトから実行できるようになりました。これにより、setting(python-envs.terminal.autoActivationType)shellStartup に設定されている場合に、より信頼性の高いターミナルアクティベーションが提供され、重要なことに、Copilot ターミナルが期待どおりにアクティベートされることが保証されます。

拡張機能への貢献

GitHub Pull Requests

プルリクエストやイシューの作業、作成、管理を可能にする GitHub Pull Requests 拡張機能でさらなる進展がありました。新機能は次のとおりです:

  • 狭いウィンドウでサイドバーのコンテンツが折りたたまれる
  • リロード後にプルリクエストとイシューの webview が復元される
  • 新しい "TODO" コードアクションにより、Copilot コーディングエージェントに直接委任できる
  • setting(githubPullRequests.ignoreSubmodules) でサブモジュールを無視できる

拡張機能の 0.118.0 リリースの変更履歴 を確認して、リリースのすべてについて学びましょう。

拡張機能のオーサリング

拡張機能が起動したターミナルの shellIntegrationNonce

shellIntegrationNonceTerminalOptionsExtensionTerminalOptionscreateTerminal に渡せるようになりました。これにより、拡張機能は シェル統合エスケープシーケンス でコマンドを検証するために使用される nonce を制御できます。

Language Model Chat Provider API

このイテレーションで、LanguageModelChatProviders API を最終決定しました。これにより、拡張機能はクラウドホストまたはローカルの 1 つ以上の言語モデルをコントリビュートできます。拡張機能をインストールすることで、ユーザーはチャットのモデルピッカーを通じてこれらのモデルを選択できます。

すでに、AI Toolkit for VS CodeCerebras InferenceHugging Face など、この API を利用して VS Code のチャットを追加モデルで拡張する複数の拡張機能があります。

この API の利用方法については、Language Model Chat Provider 拡張機能ガイド または 拡張機能サンプル で詳しく学ぶことができます。

注意: この API を通じて提供されるモデルは、現在 個人の GitHub Copilot プラン のユーザーのみが利用できます。

Proposed API

認証: getSession での WWW-Authenticate チャレンジのサポート

HTTP の確立されたパターンとして、API へのリクエストが 401 Unauthorized ステータスコードと WWW-Authenticate ヘッダーを返すことがあります。これは auth challenges を定義します。これらは本質的に、API が 401 を解決するために必要なものです。

これらのチャレンジを認証プロバイダーに渡して処理できるようにする Proposed API を導入しました。まず、呼び出し側から次のようにチャレンジを渡すことができます:

export interface AuthenticationWWWAuthenticateRequest {
    /**
     * このチャレンジをトリガーした生の WWW-Authenticate ヘッダー値。
     */
    readonly wwwAuthenticate: string;

    /**
     * セッションのオプションのスコープ。
     */
    readonly scopes?: readonly string[];
}

export namespace authentication {
        // 注: 唯一の変更は 2 番目のパラメーターです。`getSession` の他のバリエーションも同じ変更があります
        export function getSession(providerId: string, scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest, options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>;
}

認証プロバイダー側では、AuthenticationProvider に次の 2 つの新しい関数を追加しました:

getSessionsFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<readonly AuthenticationSession[]>;
createSessionFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>;

そして、認証プロバイダーは AuthenticationProviderOptionssupportsChallenges: true を介して登録されるときに、チャレンジのサポートを宣言できます。

例: Azure MFA

この作業は、当初 Azure API で MFA を要求する今後の変更 のために行われたため、この API の例としてもそれを使用しましょう。

Azure でリソースを作成する拡張機能があるとします。それは Azure RM API を呼び出すだけで、特別なことは何もありません... あなたの拡張機能は、この API を呼び出すために使用できる認証セッション (主にアクセストークン) を取得するために vscode.authentication.getSession を呼び出すことにはすでにおなじみでしょう。さて、その認証セッションを最初に作成したとき、組織によっては、多要素認証 (MFA) を経由したかどうかが異なります。経由した場合、Azure API は満足します。MFA を経由しなかった場合、Azure の API は 401 と WWW-Authenticate ヘッダーを返します。

ここで VS Code の新しい API が登場します... あなたがしなければならないのは、そのヘッダー値を取得し、それを vscode.authentication.getSession に直接渡すことだけです:

const newRequest = {
  wwwAuthenticate: theRawHeaderValue,
  scopes: scopesFromPreviousRequest
}
const sessionWithMFA = await vscode.authentication.getSession('microsoft', newRequest, options)

これにより、そのヘッダー値が microsoft 認証プロバイダーに渡され、認証プロバイダーはチャレンジが満たされたセッションを作成する責任を負います。

次のステップ

次のイテレーションでは、この提案の getSession (別名、認証を要求する拡張機能) の部分を最終決定する予定ですので、それに関するフィードバックや AuthenticationProvider の変更の形状について何かあれば、お知らせください!完全な提案は GitHub でこちら で見つけることができます。

WWW-Authenticate に関して近いうちに実現されるもう 1 つのユースケースは、MCP サーバーがより多くのスコープを持つトークンを要求する WWW-Authenticate ヘッダーを発行することです。これについては MCP 仕様に提案があります

セカンダリサイドバーのビューコンテナー

拡張機能は、activitybarpanel にビューコンテナーをコントリビュートできます。今回、secondarySidebar へのコントリビュートのサポートも追加しました。これは現在、contribSecondarySideBar Proposed API の背後にあります。この API を近いうちに最終決定したいと考えています。

エンジニアリング

VS Code の内部開発ループにおける Playwright と Playwright MCP の探求

エージェントモードやその他の VS Code の AI 機能は、VS Code チームが VS Code 自体を構築するためのコアツール (しゃれではありません) になりました。私たちは、これらの機能をさらに適用して、VS Code の内部開発ループをさらに改善する方法を探求したいと考えました。そのために、Playwright を使用する既存の smoke test 自動化プロジェクト を拡張して、ローカルの VS Code インスタンスを駆動できる MCP サーバーを作成する実験を行っています。これにより、ビルド/テスト時のアーティファクト (コンパイル、リンター、テストなど) からコンテキストを受け取ることに焦点を当てていた既存のエージェントフローが、ライブの VS Code インスタンスと対話できるようになり... 変更が実行時に望ましい効果をもたらすことを検証できます。

この作業の最初の部分は、vscode リポジトリの test/mcp フォルダー にあります。試してみたい場合は、非常に簡単に始めることができます:

  1. ローカルバージョンの Code OSS を実行するための コントリビューションガイドライン に従います
  2. 次に、私たちの (今のところ) ささいなプロンプトファイル を使用して、エージェントモードで /playwright your question here と質問できます。

これはまだ初期の探求ですが、内部開発ループで AI をさらに使用する可能性に興奮しています。基礎は築かれ、これをより堅牢でチームにとって有用なものにするために反復していきます。

この作業は最近 VS Code Insiders ポッドキャストで取り上げられ、この探求の動機といくつかの技術的な詳細について議論しました。VS Code Insiders ポッドキャスト のエピソードを聴くことができます。

注目すべき修正

  • vscode#151902 - ターミナル: 選択時にコピー + 1.68 の新しいハイライトで CMD+F 時に前の用語がコピーされる
  • vscode#222075 - ページャーでページダウンを使用すると、ターミナルのスティッキースクロールが 1 フレーム表示されることがある
  • xtermjs/xterm.js#5390 - 代替バッファを終了した後のスクロールバーのテレポートを修正

謝辞

最後になりましたが、VS Code のコントリビューターの皆様に心から感謝申し上げます。

イシュートラッキング

私たちのイシュートラッキングへの貢献:

プルリクエスト

vscode への貢献:

vscode-copilot-chat への貢献:

  • @24anisha: github テレメトリに sku データを追加 PR #819
  • @devm33 (Devraj Mehta): logprobs フィールドをオプションにする PR #325
  • @iann0036 (Ian Mckay): fix: "GitHub" の大文字小文字の調整 PR #631
  • @joelverhagen (Joel Verhagen)
    • .NET SDK を使用して NuGet パッケージを検索し、イベントを発行し、すべてのパッケージタイプのテストを追加 PR #546
    • コマンドエグゼキュータの抽象化を追加し、CI でのみ dotnet CLI テストを実行 PR #607
    • MCP サーバーのインストール中にパッケージ名をハッシュ化 PR #618
  • @jwangxx (James Wang)
    • enableRetryAfterFilteredResponse 設定に "onExP" タグを追加 PR #479
    • フィルタリングされた応答後に再試行するための実験的な設定を削除 PR #830
  • @lipido (Daniel Glez-Peña): エージェントのテストカバレッジを改善 PR #614
  • @m4dc4p: getErrors (GetErrors / problems) ツールを更新 PR #394
  • @rwoll (Ross Wollman)
    • 自動化された VSC 拡張ホストで実行されている Copilot Chat の認証を修正 PR #609
    • シナリオモードでより多くのサービスを許可 PR #653
    • ChatErrorDetailscode を plumb PR #680
  • @shaunm-msft (Shaun Miller)
    • 理解できないコンテキストからメッセージ copilot_cache_control フィールドを削除 PR #554
    • PR 665 をシミュレーターに移植 PR #694
  • @sridharavinash (Avinash Sridhar): 会話モデルメッセージにモードを追加 PR #517
  • @yemohyleyemohyle: MSFT 内部テレメトリにメッセージ長イベントを追加 PR #473
  • @zhichli (Zhichao Li)
    • 機能: チャットデバッグビューにチャットプロンプトログの JSON エクスポートを追加 PR #672
    • チャットデバッグ JSON エクスポートにツールやその他のメタデータを追加 PR #789
    • チャットデバッグからエクスポートされた request タイプの JSON ログからツール呼び出しを削除 PR #794

vscode-eslint への貢献:

vscode-extension-samples への貢献:

vscode-js-debug への貢献:

vscode-jupyter への貢献:

vscode-languageserver-node への貢献:

vscode-markdown-languageservice への貢献:

vscode-markdown-tm-grammar への貢献:

vscode-pull-request-github への貢献:

vscode-python-environments への貢献:

vscode-vsce への貢献:

debug-adapter-protocol への貢献:

language-server-protocol への貢献:

node-jsonc-parser への貢献:

python-environment-tools への貢献:

新機能が準備でき次第、試してくださる皆様に心から感謝しています。頻繁にチェックして、最新情報を入手してください。

以前の VS Code バージョンのリリースノートを読みたい場合は、code.visualstudio.comUpdates にアクセスしてください。