Skip to content

Commit 5280246

Browse files
authored
announce fork and ensure fork uses a new session id (#222)
Followup for #221 and #183.
1 parent 9f3dd40 commit 5280246

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/acp-agent.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff 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, {

0 commit comments

Comments
 (0)