diff --git a/src/auto-reply/reply/session.test.ts b/src/auto-reply/reply/session.test.ts index 72899bd6072..afa1c4be1ca 100644 --- a/src/auto-reply/reply/session.test.ts +++ b/src/auto-reply/reply/session.test.ts @@ -1399,9 +1399,9 @@ describe("initSessionState preserves behavior overrides across /new and /reset", authProfileOverrideSource: overrides.authProfileOverrideSource, authProfileOverrideCompactionCount: overrides.authProfileOverrideCompactionCount, }); - expect(result.sessionEntry.cliSessionIds).toBeUndefined(); - expect(result.sessionEntry.cliSessionBindings).toBeUndefined(); - expect(result.sessionEntry.claudeCliSessionId).toBeUndefined(); + expect(result.sessionEntry.cliSessionIds).toEqual(overrides.cliSessionIds); + expect(result.sessionEntry.cliSessionBindings).toEqual(overrides.cliSessionBindings); + expect(result.sessionEntry.claudeCliSessionId).toBe(overrides.claudeCliSessionId); } }); diff --git a/src/auto-reply/reply/session.ts b/src/auto-reply/reply/session.ts index 1494ec3f0ed..37c0b3e772f 100644 --- a/src/auto-reply/reply/session.ts +++ b/src/auto-reply/reply/session.ts @@ -259,6 +259,9 @@ export async function initSessionState(params: { let persistedAuthProfileOverride: string | undefined; let persistedAuthProfileOverrideSource: SessionEntry["authProfileOverrideSource"]; let persistedAuthProfileOverrideCompactionCount: number | undefined; + let persistedCliSessionIds: SessionEntry["cliSessionIds"]; + let persistedCliSessionBindings: SessionEntry["cliSessionBindings"]; + let persistedClaudeCliSessionId: string | undefined; let persistedLabel: string | undefined; const normalizedChatType = normalizeChatType(ctx.ChatType); @@ -417,6 +420,9 @@ export async function initSessionState(params: { persistedAuthProfileOverride = entry.authProfileOverride; persistedAuthProfileOverrideSource = entry.authProfileOverrideSource; persistedAuthProfileOverrideCompactionCount = entry.authProfileOverrideCompactionCount; + persistedCliSessionIds = entry.cliSessionIds; + persistedCliSessionBindings = entry.cliSessionBindings; + persistedClaudeCliSessionId = entry.claudeCliSessionId; persistedLabel = entry.label; } } @@ -473,6 +479,9 @@ export async function initSessionState(params: { persistedAuthProfileOverrideSource ?? baseEntry?.authProfileOverrideSource, authProfileOverrideCompactionCount: persistedAuthProfileOverrideCompactionCount ?? baseEntry?.authProfileOverrideCompactionCount, + cliSessionIds: persistedCliSessionIds ?? baseEntry?.cliSessionIds, + cliSessionBindings: persistedCliSessionBindings ?? baseEntry?.cliSessionBindings, + claudeCliSessionId: persistedClaudeCliSessionId ?? baseEntry?.claudeCliSessionId, label: persistedLabel ?? baseEntry?.label, sendPolicy: baseEntry?.sendPolicy, queueMode: baseEntry?.queueMode, @@ -575,9 +584,6 @@ export async function initSessionState(params: { sessionEntry.outputTokens = undefined; sessionEntry.estimatedCostUsd = undefined; sessionEntry.contextTokens = undefined; - delete sessionEntry.cliSessionIds; - delete sessionEntry.cliSessionBindings; - delete sessionEntry.claudeCliSessionId; } // Preserve per-session overrides while resetting compaction state on /new. sessionStore[sessionKey] = { ...sessionStore[sessionKey], ...sessionEntry };