diff --git a/coderd/workspaces.go b/coderd/workspaces.go index fa9e0784a20b7..2c787407e6f0f 100644 --- a/coderd/workspaces.go +++ b/coderd/workspaces.go @@ -8,6 +8,7 @@ import ( "fmt" "net/http" "net/url" + "sort" "strconv" "strings" "time" @@ -913,6 +914,15 @@ func convertWorkspaces(ctx context.Context, db database.Store, workspaces []data } apiWorkspaces = append(apiWorkspaces, convertWorkspace(workspace, build, job, template, &owner, &initiator)) } + sort.Slice(apiWorkspaces, func(i, j int) bool { + iw := apiWorkspaces[i] + jw := apiWorkspaces[j] + if jw.LastUsedAt.IsZero() && iw.LastUsedAt.IsZero() { + return iw.Name < jw.Name + } + return iw.LastUsedAt.After(jw.LastUsedAt) + }) + return apiWorkspaces, nil }