会话上下文与过滤
从 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 信息
使用示例
实用示例
获取特定项目的会话
管理功能分支的会话
按工作目录整理会话
注意事项
- 只有在 Git 仓库内创建的会话,
context才会包含 Git 相关信息(gitRoot、repository、branch)。 context字段在 Copilot CLI v0.0.409 及以上可用。在旧版本上会返回null。- 过滤是完全匹配的方式工作。不支持部分匹配或通配符。
SessionListFilter的所有字段都是可选的。不指定过滤器时会返回所有会话。
最新信息请参考 GitHub 仓库。