From 3d885052574a9e57551661e2165929679acc0361 Mon Sep 17 00:00:00 2001 From: bkellam Date: Fri, 28 Nov 2025 22:38:11 -0800 Subject: [PATCH] fix --- .../migration.sql | 5 +++++ packages/db/prisma/schema.prisma | 4 ++-- packages/web/src/features/chat/actions.ts | 5 ++--- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 packages/db/prisma/migrations/20251129063148_change_chat_created_by_to_optional/migration.sql diff --git a/packages/db/prisma/migrations/20251129063148_change_chat_created_by_to_optional/migration.sql b/packages/db/prisma/migrations/20251129063148_change_chat_created_by_to_optional/migration.sql new file mode 100644 index 00000000..0d655997 --- /dev/null +++ b/packages/db/prisma/migrations/20251129063148_change_chat_created_by_to_optional/migration.sql @@ -0,0 +1,5 @@ +-- Set all chats created by the guest user (id: 1) to have a NULL createdById. +UPDATE "Chat" SET "createdById" = NULL WHERE "createdById" = '1'; + +-- AlterTable +ALTER TABLE "Chat" ALTER COLUMN "createdById" DROP NOT NULL; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 2e87ad4f..95460852 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -437,8 +437,8 @@ model Chat { name String? - createdBy User @relation(fields: [createdById], references: [id], onDelete: Cascade) - createdById String + createdBy User? @relation(fields: [createdById], references: [id], onDelete: Cascade) + createdById String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/packages/web/src/features/chat/actions.ts b/packages/web/src/features/chat/actions.ts index a987dbbc..a9053bd2 100644 --- a/packages/web/src/features/chat/actions.ts +++ b/packages/web/src/features/chat/actions.ts @@ -1,7 +1,6 @@ 'use server'; import { sew } from "@/actions"; -import { SOURCEBOT_GUEST_USER_ID } from "@/lib/constants"; import { ErrorCode } from "@/lib/errorCodes"; import { chatIsReadonly, notFound, ServiceError, serviceErrorResponse } from "@/lib/serviceError"; import { createAmazonBedrock } from '@ai-sdk/amazon-bedrock'; @@ -34,13 +33,13 @@ const logger = createLogger('chat-actions'); export const createChat = async () => sew(() => withOptionalAuthV2(async ({ org, user, prisma }) => { - const isGuestUser = user?.id === SOURCEBOT_GUEST_USER_ID; + const isGuestUser = user === undefined; const chat = await prisma.chat.create({ data: { orgId: org.id, messages: [] as unknown as Prisma.InputJsonValue, - createdById: user?.id ?? SOURCEBOT_GUEST_USER_ID, + createdById: user?.id, visibility: isGuestUser ? ChatVisibility.PUBLIC : ChatVisibility.PRIVATE, }, });