diff --git a/src/auto-reply/reply.ts b/src/auto-reply/reply.ts index e7f95bb0d..9f481978d 100644 --- a/src/auto-reply/reply.ts +++ b/src/auto-reply/reply.ts @@ -722,7 +722,9 @@ export async function getReplyFromConfig( resolvedThinkLevel = await modelState.resolveDefaultThinkingLevel(); } const sessionIdFinal = sessionId ?? crypto.randomUUID(); - const sessionFile = resolveSessionFilePath(sessionIdFinal, sessionEntry); + const sessionFile = resolveSessionFilePath(sessionIdFinal, sessionEntry, { + topicId: ctx.MessageThreadId, + }); const queueBodyBase = transcribedText ? [threadStarterNote, baseBodyFinal, `Transcript:\n${transcribedText}`] .filter(Boolean) diff --git a/src/config/sessions.ts b/src/config/sessions.ts index 27b100937..5ddf95534 100644 --- a/src/config/sessions.ts +++ b/src/config/sessions.ts @@ -178,8 +178,10 @@ export const DEFAULT_IDLE_MINUTES = 60; export function resolveSessionTranscriptPath( sessionId: string, agentId?: string, + topicId?: number, ): string { - return path.join(resolveAgentSessionsDir(agentId), `${sessionId}.jsonl`); + const fileName = topicId !== undefined ? `${sessionId}-topic-${topicId}.jsonl` : `${sessionId}.jsonl`; + return path.join(resolveAgentSessionsDir(agentId), fileName); } export function resolveSessionFilePath(