Skip to content

[v26.06] [WTEL-10148]fix(chat_members): add correct top message sort on thread - #186

Merged
suifri merged 1 commit into
v26.06from
backport-182-to-v26.06
Aug 20, 2026
Merged

suifri merged 1 commit into
v26.06from
backport-182-to-v26.06

Conversation

@webitel-delivery-bot

Copy link
Copy Markdown
Contributor

Backport 42f8c2b from #182


CTE select

Summary by CodeRabbit

  • Enhancements
    • Chat threads are now prioritized by online status.
    • Threads are sorted using the most recent activity, closure, or creation time, with consistent ordering for ties.

@webitel-review

Copy link
Copy Markdown

🤖 Webitel Code Review

Цей комміт змінює логіку сортування потоків чату (threads) у файлі chat_members.go. Замість сортування виключно за датою створення (c.created_at), тепер використовується дата останнього повідомлення в чаті (top.date), отримана через LEFT JOIN LATERAL. Це дозволяє сортувати чати за останньою активністю, що є стандартною поведінкою для месенджерів.

📋 Walkthrough (1 файл(и/ів))
Файл Зміни
internal/repo/sqlx/chat_members.go Додано LATERAL JOIN для отримання дати останнього повідомлення та оновлено OrderBy для сортування за останньою активністю.

Знахідки

  • [low] internal/repo/sqlx/chat_members.go:969 — Сортування за виразом coalesce(c.closed_at, top.date, c.created_at) desc унеможливлює використання стандартних індексів для сортування (filesort). На великих об'ємах даних це може призвести до зниження продуктивності, оскільки PostgreSQL доведеться виконати LATERAL JOIN для всіх кандидатів перед сортуванням. Переконайтеся, що таблиця chat.message має композитний індекс на (conversation_id, id DESC) для швидкого виконання підзапиту.

Index-grounded review across the Webitel codebase. Знахідки можуть бути неточними — перевіряйте перед застосуванням.

@suifri
suifri merged commit 0fbe652 into v26.06 Aug 20, 2026
11 of 13 checks passed
@suifri
suifri deleted the backport-182-to-v26.06 branch August 20, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant