Skip to content

Draft: Support providing a custom session store#917

Draft
SteveSandersonMS wants to merge 4 commits intomainfrom
sdk-session-store-abstraction
Draft

Draft: Support providing a custom session store#917
SteveSandersonMS wants to merge 4 commits intomainfrom
sdk-session-store-abstraction

Conversation

@SteveSandersonMS
Copy link
Contributor

Not yet ready.

SteveSandersonMS and others added 4 commits March 17, 2026 12:26
- Add SessionStoreConfig interface with onLoad/onAppend/onTruncate/onListSessions/onDelete callbacks
- Add sessionStore to SessionConfig and ResumeSessionConfig
- Add ListSessionsOptions type for listSessions with session store
- Update CopilotClient.createSession/resumeSession to send sessionStore descriptor and register RPC handlers
- Update listSessions to accept ListSessionsOptions
- Register sessionStore.* RPC request handlers on connection setup
- Add E2E tests verifying persist, resume, listSessions, and descriptor mismatch

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add support for the 'client' section of api.schema.json:
- Generate typed handler interfaces (e.g., SessionStoreHandler)
- Generate ClientApiHandlers composite interface
- Generate registerClientApiHandlers() registration function
- Handle methods with no result type (void return)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace hand-written onRequest registrations with generated
  registerClientApiHandlers() and a routing SessionStoreHandler
- Re-export SessionStoreHandler and ClientApiHandlers from index.ts
- Fix listSessions concurrency: replace singleton listSessionsStore
  with a Map keyed by incrementing ID
- Add cleanup of sessionStoreConfigs and listSessionsStores on
  stop() and forceStop()

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add test verifying onDelete is called when deleting a session
- Remove unused getFinalAssistantMessage import

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant