세션 컨텍스트와 필터링
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, clientName, lastClientName 프로퍼티가 추가되었습니다.
새로운 프로퍼티
context(?SessionContext): 세션의 작업 디렉터리와 Git 정보clientName(?string): 세션을 생성한 클라이언트 이름(예:github/cli). 알 수 없는 경우nulllastClientName(?string): 세션을 마지막으로 실행한 클라이언트 이름. 생성한 클라이언트 또는 재개하여 실행한 클라이언트를 가리킵니다. 재개하여 열람만 한 경우에는 바뀌지 않습니다. 이전 세션에서는 알 수 없으므로null이 됩니다
사용 예시
실용 예시
특정 프로젝트의 세션 가져오기
기능 브랜치의 세션 관리
작업 디렉터리별로 세션 정리
주의사항
context는 Git 저장소 안에서 작성한 세션에서만 Git 관련 정보(gitRoot,repository,branch)를 포함합니다.context필드는 Copilot CLI v0.0.409 이후에서 사용할 수 있습니다. 오래된 버전에서는null이 반환됩니다.- 필터링은 완전 일치로 동작합니다. 부분 일치나 와일드카드는 미지원입니다.
SessionListFilter의 모든 필드는 옵셔널입니다. 필터를 지정하지 않으면 전체 세션이 반환됩니다.
최신 정보는 GitHub 저장소를 참고하세요.