refactor(auto-reply): dedupe session usage patch updates

This commit is contained in:
Peter Steinberger
2026-02-15 06:47:56 +00:00
parent 600260ebf8
commit 57d0130336

View File

@@ -11,6 +11,27 @@ import {
} from "../../config/sessions.js"; } from "../../config/sessions.js";
import { logVerbose } from "../../globals.js"; import { logVerbose } from "../../globals.js";
function applyCliSessionIdToSessionPatch(
params: {
providerUsed?: string;
cliSessionId?: string;
},
entry: SessionEntry,
patch: Partial<SessionEntry>,
): Partial<SessionEntry> {
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: { export async function persistSessionUsageUpdate(params: {
storePath?: string; storePath?: string;
sessionKey?: string; sessionKey?: string;
@@ -74,17 +95,7 @@ export async function persistSessionUsageUpdate(params: {
systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport, systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport,
updatedAt: Date.now(), updatedAt: Date.now(),
}; };
const cliProvider = params.providerUsed ?? entry.modelProvider; return applyCliSessionIdToSessionPatch(params, entry, patch);
if (params.cliSessionId && cliProvider) {
const nextEntry = { ...entry, ...patch };
setCliSessionId(nextEntry, cliProvider, params.cliSessionId);
return {
...patch,
cliSessionIds: nextEntry.cliSessionIds,
claudeCliSessionId: nextEntry.claudeCliSessionId,
};
}
return patch;
}, },
}); });
} catch (err) { } catch (err) {
@@ -106,17 +117,7 @@ export async function persistSessionUsageUpdate(params: {
systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport, systemPromptReport: params.systemPromptReport ?? entry.systemPromptReport,
updatedAt: Date.now(), updatedAt: Date.now(),
}; };
const cliProvider = params.providerUsed ?? entry.modelProvider; return applyCliSessionIdToSessionPatch(params, entry, patch);
if (params.cliSessionId && cliProvider) {
const nextEntry = { ...entry, ...patch };
setCliSessionId(nextEntry, cliProvider, params.cliSessionId);
return {
...patch,
cliSessionIds: nextEntry.cliSessionIds,
claudeCliSessionId: nextEntry.claudeCliSessionId,
};
}
return patch;
}, },
}); });
} catch (err) { } catch (err) {