@@ -122,6 +122,7 @@ export interface SessionConfig {
122122 repoPath : string ;
123123 credentials : PostHogCredentials ;
124124 logUrl ?: string ; // For reconnection from S3
125+ sdkSessionId ?: string ; // SDK session ID for resuming Claude Code context
125126}
126127
127128export interface ManagedSession {
@@ -171,7 +172,8 @@ export class SessionManager {
171172 config : SessionConfig ,
172173 isReconnect : boolean ,
173174 ) : Promise < ManagedSession | null > {
174- const { taskId, taskRunId, repoPath, credentials, logUrl } = config ;
175+ const { taskId, taskRunId, repoPath, credentials, logUrl, sdkSessionId } =
176+ config ;
175177
176178 const existing = this . sessions . get ( taskRunId ) ;
177179 if ( existing ) {
@@ -214,9 +216,12 @@ export class SessionManager {
214216 sessionId : taskRunId ,
215217 cwd : repoPath ,
216218 mcpServers : [ ] ,
217- _meta : logUrl
218- ? { persistence : { taskId, runId : taskRunId , logUrl } }
219- : undefined ,
219+ _meta : {
220+ ...( logUrl && {
221+ persistence : { taskId, runId : taskRunId , logUrl } ,
222+ } ) ,
223+ ...( sdkSessionId && { sdkSessionId } ) ,
224+ } ,
220225 } ) ;
221226 } else {
222227 await connection . newSession ( {
@@ -439,6 +444,7 @@ interface AgentSessionParams {
439444 apiHost : string ;
440445 projectId : number ;
441446 logUrl ?: string ;
447+ sdkSessionId ?: string ;
442448}
443449
444450type SessionResponse = { sessionId : string ; channel : string } ;
@@ -467,6 +473,7 @@ function toSessionConfig(params: AgentSessionParams): SessionConfig {
467473 projectId : params . projectId ,
468474 } ,
469475 logUrl : params . logUrl ,
476+ sdkSessionId : params . sdkSessionId ,
470477 } ;
471478}
472479
0 commit comments