diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx index c6b3c6f011..e405f671ac 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx @@ -10,6 +10,7 @@ import { SettingCard } from "@/components/SettingCard"; import { useEmailAccountFull } from "@/hooks/useEmailAccountFull"; import { useAction } from "next-safe-action/hooks"; import { updateReferralSignatureAction } from "@/utils/actions/email-account"; +import { env } from "@/env"; export function ReferralSignatureSetting() { const { data, isLoading, error, mutate } = useEmailAccountFull(); @@ -43,6 +44,10 @@ export function ReferralSignatureSetting() { [execute], ); + if (env.NEXT_PUBLIC_DISABLE_REFERRAL_SIGNATURE) { + return null; + } + return ( = 13.4.4, you only need to destructure client variables: experimental__runtimeEnv: { @@ -232,5 +236,7 @@ export const env = createEnv({ NEXT_PUBLIC_OLLAMA_MODEL: process.env.NEXT_PUBLIC_OLLAMA_MODEL, NEXT_PUBLIC_APP_HOME_PATH: process.env.NEXT_PUBLIC_APP_HOME_PATH, NEXT_PUBLIC_DUB_REFER_DOMAIN: process.env.NEXT_PUBLIC_DUB_REFER_DOMAIN, + NEXT_PUBLIC_DISABLE_REFERRAL_SIGNATURE: + process.env.NEXT_PUBLIC_DISABLE_REFERRAL_SIGNATURE, }, }); diff --git a/apps/web/prisma/migrations/20250916133642_default_signature_enabled/migration.sql b/apps/web/prisma/migrations/20250916133642_default_signature_enabled/migration.sql new file mode 100644 index 0000000000..e96999582e --- /dev/null +++ b/apps/web/prisma/migrations/20250916133642_default_signature_enabled/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "public"."EmailAccount" ALTER COLUMN "includeReferralSignature" SET DEFAULT true; diff --git a/apps/web/prisma/schema.prisma b/apps/web/prisma/schema.prisma index e82bb65752..e246ab0167 100644 --- a/apps/web/prisma/schema.prisma +++ b/apps/web/prisma/schema.prisma @@ -115,7 +115,7 @@ model EmailAccount { about String? writingStyle String? signature String? - includeReferralSignature Boolean @default(false) + includeReferralSignature Boolean @default(true) watchEmailsExpirationDate DateTime? watchEmailsSubscriptionId String? // For Outlook subscription ID lastSyncedHistoryId String? diff --git a/apps/web/utils/reply-tracker/generate-draft.ts b/apps/web/utils/reply-tracker/generate-draft.ts index bab75e3d92..c13bdcb0cb 100644 --- a/apps/web/utils/reply-tracker/generate-draft.ts +++ b/apps/web/utils/reply-tracker/generate-draft.ts @@ -14,6 +14,7 @@ import type { EmailProvider } from "@/utils/email/types"; import { aiCollectReplyContext } from "@/utils/ai/reply/reply-context-collector"; import { getOrCreateReferralCode } from "@/utils/referral/referral-code"; import { generateReferralLink } from "@/utils/referral/referral-link"; +import { env } from "@/env"; const logger = createScopedLogger("generate-reply"); @@ -79,10 +80,12 @@ export async function fetchMessagesAndGenerateDraft( } const emailAccountWithIncludeReferralSignature = - await prisma.emailAccount.findUnique({ - where: { id: emailAccount.id }, - select: { includeReferralSignature: true }, - }); + env.NEXT_PUBLIC_DISABLE_REFERRAL_SIGNATURE + ? null + : await prisma.emailAccount.findUnique({ + where: { id: emailAccount.id }, + select: { includeReferralSignature: true }, + }); if (emailAccountWithIncludeReferralSignature?.includeReferralSignature) { const referralSignature = await getOrCreateReferralCode(