セッションコンテキストとフィルタリング
GitHub Copilot SDK v0.1.24 以降では、セッションに作業ディレクトリと Git 情報を含むコンテキストが追加され、セッション一覧でフィルタリングできるようになりました。SessionContext
SessionContext は、セッション作成時の作業ディレクトリと Git リポジトリ情報を保持します。
プロパティ
cwd(string): 作業ディレクトリの絶対パスgitRoot(?string): Git リポジトリのルートディレクトリ(Git リポジトリ外ではnull)repository(?string): GitHub リポジトリ(owner/repo形式、例:invokable/laravel-copilot-sdk)branch(?string): 現在の Git ブランチ名
使用例
SessionListFilter
SessionListFilter を使うと、特定の作業ディレクトリやリポジトリのセッションだけを取得できます。
プロパティ
cwd(?string): 作業ディレクトリで完全一致フィルタgitRoot(?string): Git ルートディレクトリでフィルタrepository(?string): リポジトリ(owner/repo形式)でフィルタbranch(?string): ブランチ名でフィルタ
使用例
配列でフィルタ指定
SessionListFilter クラスを使用
session.context_changed イベント
セッション中に作業ディレクトリが変更されると、session.context_changed イベントが発火します。
イベントタイプ
イベントデータ
イベントデータには更新後のコンテキスト情報が含まれます。SessionMetadata
SessionMetadata に context プロパティが追加されました。
新しいプロパティ
context(?SessionContext): セッションの作業ディレクトリと Git 情報
使用例
実用例
特定プロジェクトのセッションを取得
機能ブランチのセッションを管理
作業ディレクトリごとにセッションを整理
注意事項
contextは、Git リポジトリ内で作成したセッションでのみ Git 関連情報(gitRoot,repository,branch)を含みます。contextフィールドは Copilot CLI v0.0.409 以降で利用できます。古いバージョンではnullが返ります。- フィルタリングは完全一致で動作します。部分一致やワイルドカードは未サポートです。
SessionListFilterのすべてのフィールドはオプショナルです。フィルタ未指定時は全セッションが返ります。
最新情報は GitHub リポジトリ を参照してください。