From 0c2e3e2e951ae20a828901c5e3a67dfdb4bf3cb3 Mon Sep 17 00:00:00 2001 From: dal Date: Wed, 9 Jul 2025 08:53:14 -0600 Subject: [PATCH] greptile fixes --- apps/trigger/package.json | 1 + .../helpers/slack-notifier.ts | 12 +++++++++--- packages/slack/src/types/index.ts | 7 +++++++ pnpm-lock.yaml | 3 +++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/apps/trigger/package.json b/apps/trigger/package.json index aa0b88281..9128e864c 100644 --- a/apps/trigger/package.json +++ b/apps/trigger/package.json @@ -22,6 +22,7 @@ "@buster/server-shared": "workspace:*", "@buster/ai": "workspace:*", "@buster/database": "workspace:*", + "@buster/slack": "workspace:*", "@buster/test-utils": "workspace:*", "@buster/typescript-config": "workspace:*", "@buster/vitest-config": "workspace:*", diff --git a/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts b/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts index 7e3c09cde..d244113ff 100644 --- a/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts +++ b/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts @@ -9,6 +9,7 @@ import { slackIntegrations, slackMessageTracking, } from '@buster/database'; +import { SlackMessageType } from '@buster/slack'; import { logger } from '@trigger.dev/sdk/v3'; export interface SlackNotificationParams { @@ -369,7 +370,10 @@ function formatSlackReplyMessage(params: SlackReplyNotificationParams): SlackMes }; } - throw new Error('Invalid reply notification parameters'); + throw new Error( + 'Invalid reply notification parameters: Missing required fields. ' + + 'Requires either formattedMessage, summaryTitle with summaryMessage, or toolCalled="flagChat" with message' + ); } /** @@ -449,7 +453,9 @@ function formatSlackMessage(params: SlackNotificationParams): SlackMessage { } // This shouldn't happen if shouldSendSlackNotification is working correctly - throw new Error('Invalid notification parameters'); + throw new Error( + `Invalid notification parameters: Missing required fields. Requires either formattedMessage, summaryTitle with summaryMessage, or toolCalled="flagChat" with message. Received: formattedMessage=${!!params.formattedMessage}, summaryTitle=${!!params.summaryTitle}, summaryMessage=${!!params.summaryMessage}, toolCalled="${params.toolCalled}", message=${!!params.message}` + ); } /** @@ -528,7 +534,7 @@ export async function trackSlackNotification(params: { slackChannelId: params.channelId, slackMessageTs: params.messageTs, slackThreadTs: params.threadTs || null, - messageType: params.threadTs ? 'reply' : 'message', + messageType: params.threadTs ? SlackMessageType.REPLY : SlackMessageType.MESSAGE, content: params.slackBlocks ? JSON.stringify({ blocks: params.slackBlocks }) : params.summaryTitle && params.summaryMessage diff --git a/packages/slack/src/types/index.ts b/packages/slack/src/types/index.ts index a9713ed8a..40469c84d 100644 --- a/packages/slack/src/types/index.ts +++ b/packages/slack/src/types/index.ts @@ -99,3 +99,10 @@ export const SendMessageResultSchema = z.object({ }); export type SendMessageResult = z.infer; + +// Message Type enum for tracking +export enum SlackMessageType { + MESSAGE = 'message', + REPLY = 'reply', + UPDATE = 'update', +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aecd69ae..4265d61f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -163,6 +163,9 @@ importers: '@buster/server-shared': specifier: workspace:* version: link:../../packages/server-shared + '@buster/slack': + specifier: workspace:* + version: link:../../packages/slack '@buster/test-utils': specifier: workspace:* version: link:../../packages/test-utils