세션 컨텍스트와 필터링
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 저장소를 참고하세요.