From f07f8162402e853729568c65252e2c7aa9c0ca2b Mon Sep 17 00:00:00 2001 From: Shkumbin Hasani <34962865+shkumbinhasani@users.noreply.github.com> Date: Sat, 1 Nov 2025 01:18:05 +0100 Subject: [PATCH] Optimize database query for newly created chats (#1251) --- app/(chat)/api/chat/route.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index 8808ea6..52d41fb 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -37,6 +37,7 @@ import { saveMessages, updateChatLastContextById, } from "@/lib/db/queries"; +import type { DBMessage } from "@/lib/db/schema"; import { ChatSDKError } from "@/lib/errors"; import type { ChatMessage } from "@/lib/types"; import type { AppUsage } from "@/lib/usage"; @@ -125,11 +126,14 @@ export async function POST(request: Request) { } const chat = await getChatById({ id }); + let messagesFromDb: DBMessage[] = []; if (chat) { if (chat.userId !== session.user.id) { return new ChatSDKError("forbidden:chat").toResponse(); } + // Only fetch messages if chat already exists + messagesFromDb = await getMessagesByChatId({ id }); } else { const title = await generateTitleFromUserMessage({ message, @@ -141,9 +145,9 @@ export async function POST(request: Request) { title, visibility: selectedVisibilityType, }); + // New chat - no need to fetch messages, it's empty } - const messagesFromDb = await getMessagesByChatId({ id }); const uiMessages = [...convertToUIMessages(messagesFromDb), message]; const { longitude, latitude, city, country } = geolocation(request);