File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -189,8 +189,7 @@ export class ClaudeAcpAgent implements Agent {
189189 sse : true ,
190190 } ,
191191 sessionCapabilities : {
192- // TODO: announce fork capability when sessionId handling is fixed
193- // fork: {},
192+ fork : { } ,
194193 resume : { } ,
195194 } ,
196195 } ,
@@ -595,7 +594,17 @@ export class ClaudeAcpAgent implements Agent {
595594 params : NewSessionRequest ,
596595 creationOpts : { resume ?: string ; forkSession ?: boolean } = { } ,
597596 ) : Promise < NewSessionResponse > {
598- const sessionId = creationOpts . resume ?? randomUUID ( ) ;
597+ // We want to create a new session id unless it is resume,
598+ // but not resume + forkSession.
599+ let sessionId ;
600+ if ( creationOpts . forkSession ) {
601+ sessionId = randomUUID ( ) ;
602+ } else if ( creationOpts . resume ) {
603+ sessionId = creationOpts . resume ;
604+ } else {
605+ sessionId = randomUUID ( ) ;
606+ }
607+
599608 const input = new Pushable < SDKUserMessage > ( ) ;
600609
601610 const settingsManager = new SettingsManager ( params . cwd , {
You can’t perform that action at this time.
0 commit comments