@@ -58,6 +58,12 @@ export class WebhookService {
5858 // Detect platform source (enhanced with file attachment correlation)
5959 const sourcePlatform = this . detectPlatformSource ( event ) ;
6060
61+ LogEngine . debug ( `Platform source detected: ${ sourcePlatform } ` , {
62+ eventId : event . eventId ,
63+ eventType : event . event ,
64+ hasFiles : this . fileAttachmentCorrelation . hasFileAttachments ( event )
65+ } ) ;
66+
6167 // Handle buffered events - they will be processed later via callback
6268 if ( sourcePlatform === 'buffered' ) {
6369 // Mark buffered events as processed to prevent duplicate buffering on retries
@@ -219,6 +225,16 @@ export class WebhookService {
219225 }
220226 }
221227
228+ // TERTIARY DETECTION: isExternal flag (additional indicator for file attachments)
229+ if ( event . data ?. isExternal === true ) {
230+ LogEngine . debug ( `Platform detected via isExternal flag: dashboard (${ event . eventId } )` ) ;
231+ return 'dashboard' ;
232+ } else if ( event . data ?. isExternal === false && event . data ?. sourceType ) {
233+ // isExternal: false usually indicates platform -> dashboard direction
234+ LogEngine . debug ( `Platform detected via isExternal flag: ${ config . targetPlatform } (${ event . eventId } )` ) ;
235+ return config . targetPlatform ;
236+ }
237+
222238 // FALLBACK: Unknown if no reliable indicators found
223239 LogEngine . warn ( `Unable to detect platform source for event ${ event . eventId } - insufficient indicators` ) ;
224240 return 'unknown' ;
@@ -264,21 +280,21 @@ export class WebhookService {
264280 */
265281 private async continueEventProcessing ( event : UnthreadWebhookEvent , sourcePlatform : string ) : Promise < void > {
266282 try {
267- LogEngine . info ( 'Processing buffered file attachment event' , {
283+ LogEngine . info ( 'Processing webhook event' , {
268284 eventId : event . eventId ,
269285 sourcePlatform,
270- correlationSuccess : sourcePlatform !== 'unknown'
286+ hasFiles : this . fileAttachmentCorrelation . hasFileAttachments ( event )
271287 } ) ;
272288
273- // Transform and queue the event with the correlated source platform
289+ // Transform and queue the event with the detected/ correlated source platform
274290 const transformedEvent = this . transformEvent ( event , sourcePlatform ) ;
275291 await this . redisService . publishEvent ( transformedEvent ) ;
276292
277293 // Mark as processed
278294 await this . redisService . markEventProcessed ( event . eventId ) ;
279295
280296 } catch ( error ) {
281- LogEngine . error ( 'Failed to process buffered file attachment event' , {
297+ LogEngine . error ( 'Failed to process webhook event' , {
282298 eventId : event . eventId ,
283299 sourcePlatform,
284300 error : error instanceof Error ? error . message : 'Unknown error'
0 commit comments