From d37c16d3c80e5bbe6955306e244450389fb1f56d Mon Sep 17 00:00:00 2001 From: Rohan Guliani Date: Mon, 16 Mar 2026 16:09:49 -0400 Subject: [PATCH] fix(app): fix session list sorting by id rather than updated time --- packages/app/src/context/global-sync/event-reducer.test.ts | 4 ++-- packages/app/src/context/global-sync/session-trim.ts | 4 ++-- packages/app/src/pages/layout/helpers.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/app/src/context/global-sync/event-reducer.test.ts b/packages/app/src/context/global-sync/event-reducer.test.ts index cf2da135cb..f3b7f4fb3b 100644 --- a/packages/app/src/context/global-sync/event-reducer.test.ts +++ b/packages/app/src/context/global-sync/event-reducer.test.ts @@ -249,8 +249,8 @@ describe("applyDirectoryEvent", () => { }) test("cleans caches for trimmed sessions on session.created", () => { - const dropped = rootSession({ id: "ses_b" }) - const kept = rootSession({ id: "ses_a" }) + const dropped = rootSession({ id: "ses_a" }) + const kept = rootSession({ id: "ses_b" }) const message = userMessage("msg_1", dropped.id) const todos: string[] = [] const [store, setStore] = createStore( diff --git a/packages/app/src/context/global-sync/session-trim.ts b/packages/app/src/context/global-sync/session-trim.ts index 800ba74a68..371fdc8198 100644 --- a/packages/app/src/context/global-sync/session-trim.ts +++ b/packages/app/src/context/global-sync/session-trim.ts @@ -10,7 +10,7 @@ export function compareSessionRecent(a: Session, b: Session) { const aUpdated = sessionUpdatedAt(a) const bUpdated = sessionUpdatedAt(b) if (aUpdated !== bUpdated) return bUpdated - aUpdated - return cmp(a.id, b.id) + return cmp(b.id, a.id) } export function takeRecentSessions(sessions: Session[], limit: number, cutoff: number) { @@ -39,7 +39,7 @@ export function trimSessions( const all = input .filter((s) => !!s?.id) .filter((s) => !s.time?.archived) - .sort((a, b) => cmp(a.id, b.id)) + .sort((a, b) => compareSessionRecent(a, b)) const roots = all.filter((s) => !s.parentID) const children = all.filter((s) => !!s.parentID) const base = roots.slice(0, limit) diff --git a/packages/app/src/pages/layout/helpers.ts b/packages/app/src/pages/layout/helpers.ts index be4ce9f574..94341f893f 100644 --- a/packages/app/src/pages/layout/helpers.ts +++ b/packages/app/src/pages/layout/helpers.ts @@ -15,7 +15,7 @@ function sortSessions(now: number) { const bUpdated = b.time.updated ?? b.time.created const aRecent = aUpdated > oneMinuteAgo const bRecent = bUpdated > oneMinuteAgo - if (aRecent && bRecent) return a.id < b.id ? -1 : a.id > b.id ? 1 : 0 + if (aRecent && bRecent) return a.id > b.id ? -1 : a.id < b.id ? 1 : 0 if (aRecent && !bRecent) return -1 if (!aRecent && bRecent) return 1 return bUpdated - aUpdated