From 0def1ac1d25b6da91b9a40630bd10d550f90a7d6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 18 Feb 2026 18:23:42 +0000 Subject: [PATCH] refactor(commands): share session entry persistence --- src/auto-reply/reply/commands-session.ts | 38 +++++++++++------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/auto-reply/reply/commands-session.ts b/src/auto-reply/reply/commands-session.ts index b8f14128eda..154cbcd6f3f 100644 --- a/src/auto-reply/reply/commands-session.ts +++ b/src/auto-reply/reply/commands-session.ts @@ -77,6 +77,20 @@ async function applyAbortTarget(params: { } } +async function persistSessionEntry(params: Parameters[0]): Promise { + if (!params.sessionEntry || !params.sessionStore || !params.sessionKey) { + return false; + } + params.sessionEntry.updatedAt = Date.now(); + params.sessionStore[params.sessionKey] = params.sessionEntry; + if (params.storePath) { + await updateSessionStore(params.storePath, (store) => { + store[params.sessionKey] = params.sessionEntry as SessionEntry; + }); + } + return true; +} + export const handleActivationCommand: CommandHandler = async (params, allowTextCommands) => { if (!allowTextCommands) { return null; @@ -106,13 +120,7 @@ export const handleActivationCommand: CommandHandler = async (params, allowTextC if (params.sessionEntry && params.sessionStore && params.sessionKey) { params.sessionEntry.groupActivation = activationCommand.mode; params.sessionEntry.groupActivationNeedsSystemIntro = true; - params.sessionEntry.updatedAt = Date.now(); - params.sessionStore[params.sessionKey] = params.sessionEntry; - if (params.storePath) { - await updateSessionStore(params.storePath, (store) => { - store[params.sessionKey] = params.sessionEntry as SessionEntry; - }); - } + await persistSessionEntry(params); } return { shouldContinue: false, @@ -148,13 +156,7 @@ export const handleSendPolicyCommand: CommandHandler = async (params, allowTextC } else { params.sessionEntry.sendPolicy = sendPolicyCommand.mode; } - params.sessionEntry.updatedAt = Date.now(); - params.sessionStore[params.sessionKey] = params.sessionEntry; - if (params.storePath) { - await updateSessionStore(params.storePath, (store) => { - store[params.sessionKey] = params.sessionEntry as SessionEntry; - }); - } + await persistSessionEntry(params); } const label = sendPolicyCommand.mode === "inherit" @@ -243,13 +245,7 @@ export const handleUsageCommand: CommandHandler = async (params, allowTextComman } else { params.sessionEntry.responseUsage = next; } - params.sessionEntry.updatedAt = Date.now(); - params.sessionStore[params.sessionKey] = params.sessionEntry; - if (params.storePath) { - await updateSessionStore(params.storePath, (store) => { - store[params.sessionKey] = params.sessionEntry as SessionEntry; - }); - } + await persistSessionEntry(params); } return {