diff --git a/desktop/src/stores/sessionStore.ts b/desktop/src/stores/sessionStore.ts index 439ec0d0..ceeaaf82 100644 --- a/desktop/src/stores/sessionStore.ts +++ b/desktop/src/stores/sessionStore.ts @@ -244,10 +244,9 @@ function mergeSessionList( for (const item of incoming) { const current = currentById.get(item.id) const candidate = preserveLocalTitle(current, item) - const merged = preserveStaleModifiedAt(current, candidate) - const existing = byId.get(merged.id) - if (!existing || sessionModifiedTime(merged) > sessionModifiedTime(existing)) { - byId.set(merged.id, merged) + const existing = byId.get(candidate.id) + if (!existing || sessionModifiedTime(candidate) > sessionModifiedTime(existing)) { + byId.set(candidate.id, candidate) } } @@ -270,21 +269,6 @@ function preserveLocalTitle( return incoming } -function preserveStaleModifiedAt( - current: SessionListItem | undefined, - incoming: SessionListItem, -): SessionListItem { - if (!current) return incoming - // Preserve modifiedAt when the effective title hasn't changed — indicates no meaningful - // content change. messageCount is NOT used here because listSessions always returns 0 - // (a placeholder for performance), while fetchSessionSummary returns the real count, - // so comparing them would always fail and defeat the preservation logic. - if (current.title === incoming.title) { - return { ...incoming, modifiedAt: current.modifiedAt } - } - return incoming -} - function syncOpenSessionTabTitles(sessions: SessionListItem[]): void { const titleById = new Map(sessions.map((session) => [session.id, session.title])) const { tabs, updateTabTitle } = useTabStore.getState()