diff --git a/packages/coding-agent/src/core/agent-session-runtime.ts b/packages/coding-agent/src/core/agent-session-runtime.ts index a89fef835..b4756d4cf 100644 --- a/packages/coding-agent/src/core/agent-session-runtime.ts +++ b/packages/coding-agent/src/core/agent-session-runtime.ts @@ -292,12 +292,11 @@ export class AgentSessionRuntime { return { cancelled: false, selectedText }; } - const sourceManager = SessionManager.open(currentSessionFile, sessionDir); - const forkedSessionPath = sourceManager.createBranchedSession(targetLeafId); + const sessionManager = SessionManager.open(currentSessionFile, sessionDir); + const forkedSessionPath = sessionManager.createBranchedSession(targetLeafId); if (!forkedSessionPath) { throw new Error("Failed to create forked session"); } - const sessionManager = SessionManager.open(forkedSessionPath, sessionDir); await this.teardownCurrent("fork", sessionManager.getSessionFile()); this.apply( await this.createRuntime({ diff --git a/packages/coding-agent/test/suite/agent-session-runtime.test.ts b/packages/coding-agent/test/suite/agent-session-runtime.test.ts index 4d839ecfb..69c817ac3 100644 --- a/packages/coding-agent/test/suite/agent-session-runtime.test.ts +++ b/packages/coding-agent/test/suite/agent-session-runtime.test.ts @@ -1,6 +1,6 @@ import { existsSync, mkdirSync, realpathSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; -import { join } from "node:path"; +import { join, parse } from "node:path"; import { fauxAssistantMessage, registerFauxProvider } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it } from "vitest"; import { @@ -274,6 +274,8 @@ describe("AgentSessionRuntime characterization", () => { { type: "session_shutdown", reason: "fork", targetSessionFile: runtime.session.sessionFile }, { type: "session_start", reason: "fork", previousSessionFile }, ]); + const sessionFileName = parse(runtime.session.sessionFile!).name; + expect(sessionFileName.endsWith(`_${runtime.session.sessionId}`)).toBe(true); events.length = 0; cancelNextFork = true;