From 708b9339a59137aece24c4bd5bfc4f5f1eaf5cd5 Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Thu, 26 Mar 2026 21:03:54 -0500 Subject: [PATCH] fix: assign reset transcript paths to new sessions --- ...erver.sessions.gateway-server-sessions-a.test.ts | 9 ++++++++- src/gateway/session-reset-service.ts | 13 ++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/gateway/server.sessions.gateway-server-sessions-a.test.ts b/src/gateway/server.sessions.gateway-server-sessions-a.test.ts index be2eeb2284f..2879602699b 100644 --- a/src/gateway/server.sessions.gateway-server-sessions-a.test.ts +++ b/src/gateway/server.sessions.gateway-server-sessions-a.test.ts @@ -1095,12 +1095,19 @@ describe("gateway server sessions", () => { const reset = await rpcReq<{ ok: true; key: string; - entry: { sessionId: string; modelProvider?: string; model?: string; contextTokens?: number }; + entry: { + sessionId: string; + sessionFile?: string; + modelProvider?: string; + model?: string; + contextTokens?: number; + }; }>(ws, "sessions.reset", { key: "main" }); expect(reset.ok).toBe(true); expect(reset.payload?.key).toBe("agent:main:main"); expect(reset.payload?.entry.sessionId).not.toBe("sess-stale-model"); + expect(reset.payload?.entry.sessionFile).toBeTruthy(); expect(reset.payload?.entry.modelProvider).toBe("openai"); expect(reset.payload?.entry.model).toBe("gpt-test-a"); expect(reset.payload?.entry.contextTokens).toBeUndefined(); diff --git a/src/gateway/session-reset-service.ts b/src/gateway/session-reset-service.ts index b6f4ebf805d..5877f84f0b7 100644 --- a/src/gateway/session-reset-service.ts +++ b/src/gateway/session-reset-service.ts @@ -11,6 +11,7 @@ import { type SessionEntry, updateSessionStore, } from "../config/sessions.js"; +import { resolveSessionFilePath, resolveSessionFilePathOptions } from "../config/sessions/paths.js"; import { logVerbose } from "../globals.js"; import { createInternalHookEvent, triggerInternalHook } from "../hooks/internal-hooks.js"; import { closeTrackedBrowserTabsForSessions } from "../plugin-sdk/browser-runtime.js"; @@ -306,8 +307,18 @@ export async function performGatewaySessionReset(params: { oldSessionId = currentEntry?.sessionId; oldSessionFile = currentEntry?.sessionFile; const now = Date.now(); + const nextSessionId = randomUUID(); + const sessionFile = resolveSessionFilePath( + nextSessionId, + undefined, + resolveSessionFilePathOptions({ + storePath, + agentId: sessionAgentId, + }), + ); const nextEntry: SessionEntry = { - sessionId: randomUUID(), + sessionId: nextSessionId, + sessionFile, updatedAt: now, systemSent: false, abortedLastRun: false,