From 590ef89b3decbc6d90b79566f98cf5c54cda6cd2 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:37:36 -0500 Subject: [PATCH] tweak: ensure most recently interacted with session appears at the top (#1239) --- packages/opencode/src/server/server.ts | 1 + packages/opencode/src/session/index.ts | 2 ++ packages/tui/internal/app/app.go | 4 ---- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index d38d2c969..1b123f532 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -201,6 +201,7 @@ export namespace Server { }), async (c) => { const sessions = await Array.fromAsync(Session.list()) + sessions.sort((a, b) => b.time.updated - a.time.updated) return c.json(sessions) }, ) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 01634ecdc..b008a9e35 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -509,6 +509,8 @@ export namespace Session { for (const part of userParts) { await updatePart(part) } + // mark session as updated since a message has been added to it + await update(input.sessionID, (_draft) => {}) if (isLocked(input.sessionID)) { return new Promise((resolve) => { diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index b3c4fbed6..df4e209cf 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -5,7 +5,6 @@ import ( "fmt" "os" "path/filepath" - "sort" "strings" "log/slog" @@ -532,9 +531,6 @@ func (a *App) ListSessions(ctx context.Context) ([]opencode.Session, error) { return []opencode.Session{}, nil } sessions := *response - sort.Slice(sessions, func(i, j int) bool { - return sessions[i].Time.Created-sessions[j].Time.Created > 0 - }) return sessions, nil }