diff --git a/src/tracker/api/messages.py b/src/tracker/api/messages.py index f1c578a..59e2daa 100644 --- a/src/tracker/api/messages.py +++ b/src/tracker/api/messages.py @@ -94,9 +94,12 @@ async def list_messages( if not parent_id and (chat_id or task_id): q = q.where(Message.parent_id.is_(None)) - q = q.order_by(Message.created_at).offset(offset).limit(limit) + # Get newest N messages (DESC), then reverse to chronological order + q = q.order_by(Message.created_at.desc()).offset(offset).limit(limit) result = await db.execute(q) - return [_message_out(m) for m in result.scalars()] + messages = [_message_out(m) for m in result.scalars()] + messages.reverse() + return messages @router.post("/messages", response_model=MessageOut)