Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/web/app/(app)/[emailAccountId]/debug/drafts/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export default function DebugDraftsPage() {

return (
<div className="container mx-auto py-6">
<PageHeading className="mb-6">Drafts</PageHeading>
<PageHeading className="mb-6">Drafts generated by Inbox Zero</PageHeading>

<LoadingContent loading={isLoading} error={error}>
{data?.executedActions.length === 0 ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export async function analyzeSenderPattern(body: AnalyzeSenderPatternBody) {
logger.error("Error in sender pattern analysis", {
emailAccountId: body.emailAccountId,
from: body.from,
error: error instanceof Error ? error.message : error,
error,
});
}
}
6 changes: 2 additions & 4 deletions apps/web/app/api/outlook/webhook/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ async function processNotificationsAsync(
{ watchEmailsSubscriptionId: subscriptionId },
logger,
).catch((error) => {
logger.error("Error getting email account", {
error: error instanceof Error ? error.message : error,
});
logger.error("Error getting email account", { error });
return null;
});

Expand All @@ -110,7 +108,7 @@ async function processNotificationsAsync(
});
} else {
logger.error("Error processing notification (no email account found)", {
error: error instanceof Error ? error.message : error,
error,
});
}
}
Expand Down
2 changes: 1 addition & 1 deletion apps/web/utils/email/bulk-action-tracking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ export async function updateEmailMessagesForSender(options: {
sender,
emailAccountId,
action,
error: error instanceof Error ? error.message : error,
error,
});
// Don't throw - this is analytics, shouldn't break the main flow
}
Expand Down
14 changes: 6 additions & 8 deletions apps/web/utils/email/google.ts
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ export class GmailProvider implements EmailProvider {
log.info("Message archived successfully");
} catch (error) {
log.error("Failed to archive message", {
error: error instanceof Error ? error.message : error,
error,
});
throw error;
}
Expand All @@ -315,9 +315,7 @@ export class GmailProvider implements EmailProvider {
},
});
} catch (error) {
log.error("Failed to archive messages bulk", {
error: error instanceof Error ? error.message : error,
});
log.error("Failed to archive messages bulk", { error });
throw error;
}
}
Expand Down Expand Up @@ -394,7 +392,7 @@ export class GmailProvider implements EmailProvider {
} catch (error) {
log.error("Failed to archive messages from sender", {
sender,
error: error instanceof Error ? error.message : error,
error,
});
// continue processing remaining pages
nextPageToken = undefined;
Expand Down Expand Up @@ -452,7 +450,7 @@ export class GmailProvider implements EmailProvider {
} catch (error) {
log.error("Failed to get messages from sender", {
sender,
error: error instanceof Error ? error.message : error,
error,
});
// continue processing remaining senders
nextPageToken = undefined;
Expand All @@ -471,7 +469,7 @@ export class GmailProvider implements EmailProvider {
log.error("Failed to trash thread for sender", {
sender,
threadId,
error: error instanceof Error ? error.message : error,
error,
});
// Continue processing remaining threads
}
Expand Down Expand Up @@ -508,7 +506,7 @@ export class GmailProvider implements EmailProvider {
} catch (error) {
log.error("Failed to track trash operation for sender", {
sender,
error: error instanceof Error ? error.message : error,
error,
});
}
}
Expand Down
33 changes: 19 additions & 14 deletions apps/web/utils/email/microsoft.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ export class OutlookProvider implements EmailProvider {
} catch (error) {
this.logger.error("getThread failed", {
threadId,
error: error instanceof Error ? error.message : error,
error,
errorCode: (error as any)?.code,
});
throw error;
Expand Down Expand Up @@ -154,7 +154,7 @@ export class OutlookProvider implements EmailProvider {
const err = error as any;
this.logger.error("getMessage failed", {
messageId,
error: error instanceof Error ? error.message : error,
error,
errorCode: err?.code,
});
throw error;
Expand Down Expand Up @@ -420,6 +420,7 @@ export class OutlookProvider implements EmailProvider {
}

if (!category) {
this.logger.error("Category not found", { labelId });
throw new Error(
`Category with ID ${labelId}${labelName ? ` or name ${labelName}` : ""} not found`,
);
Expand All @@ -442,6 +443,11 @@ export class OutlookProvider implements EmailProvider {
messageId,
categories: updatedCategories,
});
this.logger.info("Label applied", { labelId: category.id });
} else {
this.logger.info("Label already present, skipped", {
labelId: category.id,
});
}

return {
Expand Down Expand Up @@ -474,9 +480,11 @@ export class OutlookProvider implements EmailProvider {
logger: this.logger,
}),
]);
this.logger.info("Draft created", { draftId: result.id });
return { draftId: result.id || "" };
} else {
const result = await draftEmail(this.client, email, args, userEmail);
this.logger.info("Draft created", { draftId: result.id });
return { draftId: result.id || "" };
}
}
Expand Down Expand Up @@ -558,7 +566,7 @@ export class OutlookProvider implements EmailProvider {
const err = error as any;
this.logger.error("getThreadMessages failed", {
threadId,
error: error instanceof Error ? error.message : error,
error,
errorCode: err?.code,
});
throw error;
Expand Down Expand Up @@ -788,12 +796,14 @@ export class OutlookProvider implements EmailProvider {
nextPageToken?: string;
}> {
this.logger.info("getMessagesWithPagination called", {
query: options.query,
maxResults: options.maxResults,
pageToken: options.pageToken,
before: options.before?.toISOString(),
after: options.after?.toISOString(),
});
this.logger.trace("getMessagesWithPagination query", {
query: options.query,
});

// For Outlook, separate search queries from date filters
// Microsoft Graph API handles these differently
Expand All @@ -808,19 +818,14 @@ export class OutlookProvider implements EmailProvider {
dateFilters.push(`receivedDateTime gt ${options.after.toISOString()}`);
}

this.logger.info("Query parameters separated", {
originalQuery,
dateFilters,
hasSearchQuery: !!originalQuery.trim(),
hasDateFilters: dateFilters.length > 0,
});

this.logger.info("Calling queryBatchMessages with separated parameters", {
searchQuery: originalQuery.trim() || undefined,
dateFilters,
maxResults: options.maxResults || 20,
pageToken: options.pageToken,
});
this.logger.trace("Search query", {
searchQuery: originalQuery.trim() || undefined,
});

// Don't pass folderId - let the API return all folders except Junk/Deleted (auto-excluded)
// Drafts are filtered out in convertMessages
Expand Down Expand Up @@ -932,7 +937,7 @@ export class OutlookProvider implements EmailProvider {
this.logger.warn("Failed to fetch thread messages for conversationId", {
conversationId,
participantEmail,
error: error instanceof Error ? error.message : error,
error,
errorCode: (error as any)?.code,
errorStatusCode: (error as any)?.statusCode,
});
Expand Down Expand Up @@ -1484,7 +1489,7 @@ export class OutlookProvider implements EmailProvider {
} catch (error) {
this.logger.error("Failed to archive message", {
messageId,
error: error instanceof Error ? error.message : error,
error,
});
throw error;
}
Expand Down
6 changes: 3 additions & 3 deletions apps/web/utils/outlook/batch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ async function batch<TRequestBody = unknown, TResponseBody = unknown>({
logger.error("Graph batch request failed", {
...context,
chunkSize: chunk.length,
error: error instanceof Error ? error.message : error,
error,
});
throw error;
}
Expand Down Expand Up @@ -275,7 +275,7 @@ export async function moveMessagesForSenders({
ownerEmail,
destinationId,
messageIds,
error: error instanceof Error ? error.message : error,
error,
});
} finally {
messageIds.forEach((id) => processedMessageIds.add(id));
Expand All @@ -291,7 +291,7 @@ export async function moveMessagesForSenders({
logger.error("Failed to fetch messages from sender", {
sender,
action,
error: error instanceof Error ? error.message : error,
error,
});
nextLink = undefined;
}
Expand Down
4 changes: 2 additions & 2 deletions apps/web/utils/outlook/label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ export async function removeThreadLabel({
messageId: message.id,
threadId,
categoryName,
error: error instanceof Error ? error.message : error,
error,
});
}
},
Expand Down Expand Up @@ -351,7 +351,7 @@ export async function archiveThread({
folderId,
messageId: message.id,
threadId,
error: error instanceof Error ? error.message : error,
error,
});
return null;
}
Expand Down
2 changes: 1 addition & 1 deletion apps/web/utils/outlook/spam.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export async function markSpam(client: OutlookClient, threadId: string) {
logger.warn("Failed to move message to spam", {
messageId: message.id,
threadId,
error: error instanceof Error ? error.message : error,
error,
});
return null;
}
Expand Down
2 changes: 1 addition & 1 deletion apps/web/utils/outlook/trash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export async function trashThread(options: {
logger.warn("Failed to move message to trash", {
messageId: message.id,
threadId,
error: error instanceof Error ? error.message : error,
error,
});
return null;
}
Expand Down
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2.23.2
v2.23.3
Loading