diff --git a/src/auto-reply/reply/session-usage.ts b/src/auto-reply/reply/session-usage.ts index 3d4a1c40531..3c80444297a 100644 --- a/src/auto-reply/reply/session-usage.ts +++ b/src/auto-reply/reply/session-usage.ts @@ -11,6 +11,27 @@ import { } from "../../config/sessions.js"; import { logVerbose } from "../../globals.js"; +function applyCliSessionIdToSessionPatch( + params: { + providerUsed?: string; + cliSessionId?: string; + }, + entry: SessionEntry, + patch: Partial, +): Partial { + const cliProvider = params.providerUsed ?? entry.modelProvider; + if (params.cliSessionId && cliProvider) { + const nextEntry = { ...entry, ...patch }; + setCliSessionId(nextEntry, cliProvider, params.cliSessionId); + return { + ...patch, + cliSessionIds: nextEntry.cliSessionIds, + claudeCliSessionId: nextEntry.claudeCliSessionId, + }; + } + return patch; +} + export async function persistSessionUsageUpdate(params: { storePath?: string; sessionKey?: string; @@ -74,17 +95,7 @@ export async function persistSessionUsageUpdate(params: { systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport, updatedAt: Date.now(), }; - const cliProvider = params.providerUsed ?? entry.modelProvider; - if (params.cliSessionId && cliProvider) { - const nextEntry = { ...entry, ...patch }; - setCliSessionId(nextEntry, cliProvider, params.cliSessionId); - return { - ...patch, - cliSessionIds: nextEntry.cliSessionIds, - claudeCliSessionId: nextEntry.claudeCliSessionId, - }; - } - return patch; + return applyCliSessionIdToSessionPatch(params, entry, patch); }, }); } catch (err) { @@ -106,17 +117,7 @@ export async function persistSessionUsageUpdate(params: { systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport, updatedAt: Date.now(), }; - const cliProvider = params.providerUsed ?? entry.modelProvider; - if (params.cliSessionId && cliProvider) { - const nextEntry = { ...entry, ...patch }; - setCliSessionId(nextEntry, cliProvider, params.cliSessionId); - return { - ...patch, - cliSessionIds: nextEntry.cliSessionIds, - claudeCliSessionId: nextEntry.claudeCliSessionId, - }; - } - return patch; + return applyCliSessionIdToSessionPatch(params, entry, patch); }, }); } catch (err) {