diff --git a/apps/web/app/api/ai/digest/route.ts b/apps/web/app/api/ai/digest/route.ts index e3939bf46b..ddedab9f22 100644 --- a/apps/web/app/api/ai/digest/route.ts +++ b/apps/web/app/api/ai/digest/route.ts @@ -10,6 +10,8 @@ import { aiSummarizeEmailForDigest } from "@/utils/ai/digest/summarize-email-for import { getEmailAccountWithAi } from "@/utils/user/get"; import type { StoredDigestContent } from "@/app/api/resend/digest/validation"; import { withError } from "@/utils/middleware"; +import { isAssistantEmail } from "@/utils/assistant/is-assistant-email"; +import { env } from "@/env"; export const POST = withError( verifySignatureAppRouter(async (request: Request) => { @@ -28,6 +30,22 @@ export const POST = withError( throw new Error("Email account not found"); } + // Don't summarize Digest emails (this will actually block all emails that we send, but that's okay) + if (message.from === env.RESEND_FROM_EMAIL) { + logger.info("Skipping digest item because it is from us"); + return new NextResponse("OK", { status: 200 }); + } + + const isFromAssistant = isAssistantEmail({ + userEmail: emailAccount.email, + emailToCheck: message.from, + }); + + if (isFromAssistant) { + logger.info("Skipping digest item because it is from the assistant"); + return new NextResponse("OK", { status: 200 }); + } + const ruleName = await resolveRuleName(actionId); const summary = await aiSummarizeEmailForDigest({ ruleName, diff --git a/apps/web/app/api/resend/digest/all/route.ts b/apps/web/app/api/resend/digest/all/route.ts index b391ca2d17..556496dd9a 100644 --- a/apps/web/app/api/resend/digest/all/route.ts +++ b/apps/web/app/api/resend/digest/all/route.ts @@ -22,9 +22,7 @@ async function sendDigestAllUpdate() { const emailAccounts = await prisma.emailAccount.findMany({ where: { digestSchedule: { - nextOccurrenceAt: { - lte: now, - }, + nextOccurrenceAt: { lte: now }, }, // Only send to premium users user: { @@ -35,9 +33,8 @@ async function sendDigestAllUpdate() { ], }, }, - // User at least 4 days old createdAt: { - lt: subDays(now, 4), + lt: subDays(now, 1), }, }, select: { diff --git a/apps/web/hooks/useFeatureFlags.ts b/apps/web/hooks/useFeatureFlags.ts index 11bb70cd44..e5f1029e6b 100644 --- a/apps/web/hooks/useFeatureFlags.ts +++ b/apps/web/hooks/useFeatureFlags.ts @@ -60,7 +60,8 @@ export type WelcomeTestimonialVariant = "control" | "hidden"; export function useWelcomeTestimonialVariant() { return ( - (useFeatureFlagVariantKey("welcome-testimonial") as WelcomeTestimonialVariant) || - "control" + (useFeatureFlagVariantKey( + "welcome-testimonial", + ) as WelcomeTestimonialVariant) || "control" ); } diff --git a/version.txt b/version.txt index 219c296401..5e443e871d 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.9.26 +v2.9.27