Merge pull request #2052 from vitorpamplona/claude/fix-sorting-order-p23ZY

Improve sorting stability by adding secondary sort keys
This commit is contained in:
Vitor Pamplona
2026-03-31 08:42:46 -04:00
committed by GitHub
8 changed files with 14 additions and 18 deletions
@@ -53,7 +53,7 @@ object SearchResultFilter {
}
// Sort by createdAt descending
return result.sortedByDescending { it.createdAt }
return result.sortedWith(compareByDescending<Event> { it.createdAt }.thenBy { it.id })
}
fun isReply(event: Event): Boolean = event.kind == 1 && event.tags.any { it.size >= 2 && it[0] == "e" }
@@ -33,16 +33,16 @@ object SearchResultSorter {
): List<Event> =
when (order) {
SearchSortOrder.NEWEST -> {
events.sortedByDescending { it.createdAt }
events.sortedWith(compareByDescending<Event> { it.createdAt }.thenBy { it.id })
}
SearchSortOrder.OLDEST -> {
events.sortedBy { it.createdAt }
events.sortedWith(compareBy<Event> { it.createdAt }.thenBy { it.id })
}
SearchSortOrder.RELEVANCE -> {
if (searchText.isBlank()) {
events.sortedByDescending { it.createdAt }
events.sortedWith(compareByDescending<Event> { it.createdAt }.thenBy { it.id })
} else {
events.sortedByDescending { scoreEvent(it, searchText) }
}
@@ -75,4 +75,4 @@ sealed class CardFeedState {
*/
val DefaultCardComparator: Comparator<Card> =
compareByDescending<Card> { it.createdAt() }
.thenByDescending { it.id() }
.thenBy { it.id() }