From 7df74ed8f4fb34433c778856dc0eb69a04b75e07 Mon Sep 17 00:00:00 2001 From: Stefan Haubold Date: Fri, 20 Feb 2026 20:48:39 +0100 Subject: [PATCH] sort multiple resume session by created_at asc Entire-Checkpoint: ca22077c95e2 --- cmd/entire/cli/resume.go | 7 +++++++ cmd/entire/cli/strategy/manual_commit_rewind.go | 1 + cmd/entire/cli/strategy/strategy.go | 1 + 3 files changed, 9 insertions(+) diff --git a/cmd/entire/cli/resume.go b/cmd/entire/cli/resume.go index 7d597f6b1..686cc6de6 100644 --- a/cmd/entire/cli/resume.go +++ b/cmd/entire/cli/resume.go @@ -7,6 +7,7 @@ import ( "log/slog" "os" "path/filepath" + "sort" "github.com/entireio/cli/cmd/entire/cli/agent" "github.com/entireio/cli/cmd/entire/cli/checkpoint" @@ -420,6 +421,12 @@ func resumeSession(sessionID string, checkpointID id.CheckpointID, force bool) e return resumeSingleSession(ctx, ag, sessionID, checkpointID, repoRoot, force) } + // Sort sessions by CreatedAt so the most recent is last (for display). + // This fixes ordering when subdirectory index doesn't reflect activity order. + sort.Slice(sessions, func(i, j int) bool { + return sessions[i].CreatedAt.Before(sessions[j].CreatedAt) + }) + logging.Debug(ctx, "resume session completed", slog.String("checkpoint_id", checkpointID.String()), slog.Int("session_count", len(sessions)), diff --git a/cmd/entire/cli/strategy/manual_commit_rewind.go b/cmd/entire/cli/strategy/manual_commit_rewind.go index 54ec9a596..ef739dd48 100644 --- a/cmd/entire/cli/strategy/manual_commit_rewind.go +++ b/cmd/entire/cli/strategy/manual_commit_rewind.go @@ -699,6 +699,7 @@ func (s *ManualCommitStrategy) RestoreLogsOnly(point RewindPoint, force bool) ([ SessionID: sessionID, Agent: sessionAgent.Type(), Prompt: promptPreview, + CreatedAt: content.Metadata.CreatedAt, }) } diff --git a/cmd/entire/cli/strategy/strategy.go b/cmd/entire/cli/strategy/strategy.go index 4ce450093..48e83f9ee 100644 --- a/cmd/entire/cli/strategy/strategy.go +++ b/cmd/entire/cli/strategy/strategy.go @@ -473,6 +473,7 @@ type RestoredSession struct { SessionID string Agent agent.AgentType Prompt string + CreatedAt time.Time // From session metadata; used by resume to determine most recent } // LogsOnlyRestorer is an optional interface for strategies that support