diff --git a/CHANGELOG.md b/CHANGELOG.md index fcb0cf8c..2bbcee6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed issue where single quotes could not be used in search queries. [#629](https://github.com/sourcebot-dev/sourcebot/pull/629) - Fixed issue where files with special characters would fail to load. [#636](https://github.com/sourcebot-dev/sourcebot/issues/636) - Fixed Ask performance issues. [#632](https://github.com/sourcebot-dev/sourcebot/pull/632) +- Fixed regression where creating a new Ask thread when unauthenticated would result in a 404. [#641](https://github.com/sourcebot-dev/sourcebot/pull/641) ## [4.10.0] - 2025-11-24 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..d0fd2ba0 --- /dev/null +++ b/packages/db/prisma/migrations/20251129063148_change_chat_created_by_to_optional/migration.sql @@ -0,0 +1,5 @@ +-- First, remove the NOT NULL constraint on the createdById column. +ALTER TABLE "Chat" ALTER COLUMN "createdById" DROP NOT NULL; + +-- Then, set all chats created by the guest user (id: 1) to have a NULL createdById. +UPDATE "Chat" SET "createdById" = NULL WHERE "createdById" = '1'; 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, }, });