@@ -864,6 +864,23 @@ function hasDeliveryResultIdentity(result: OutboundDeliveryResult): boolean {
864864 ) ;
865865}
866866
867+ function pushIdentifiedDeliveryResult (
868+ results : OutboundDeliveryResult [ ] ,
869+ delivery : OutboundDeliveryResult ,
870+ ) : boolean {
871+ if ( ! hasDeliveryResultIdentity ( delivery ) ) {
872+ return false ;
873+ }
874+ results . push ( delivery ) ;
875+ return true ;
876+ }
877+
878+ function filterIdentifiedDeliveryResults (
879+ results : readonly OutboundDeliveryResult [ ] ,
880+ ) : OutboundDeliveryResult [ ] {
881+ return results . filter ( ( result ) => hasDeliveryResultIdentity ( result ) ) ;
882+ }
883+
867884function normalizeDeliveryPin ( payload : ReplyPayload ) : ReplyPayloadDeliveryPin | undefined {
868885 const pin = payload . delivery ?. pin ;
869886 if ( pin === true ) {
@@ -1507,7 +1524,7 @@ async function deliverOutboundPayloadsCore(
15071524 continue ;
15081525 }
15091526 throwIfAborted ( abortSignal ) ;
1510- results . push ( await sendHandler . sendText ( unit . text , unit . overrides ) ) ;
1527+ pushIdentifiedDeliveryResult ( results , await sendHandler . sendText ( unit . text , unit . overrides ) ) ;
15111528 }
15121529 } ;
15131530 const normalizedPayloads = normalizePayloadsForChannelDelivery ( outboundPayloadPlan , handler ) ;
@@ -1761,10 +1778,12 @@ async function deliverOutboundPayloadsCore(
17611778 const beforeCount = results . length ;
17621779 if ( deliveryHandler . sendFormattedText ) {
17631780 results . push (
1764- ...( await deliveryHandler . sendFormattedText (
1765- payloadSummary . text ,
1766- applySendReplyToConsumption ( sendOverrides ) ,
1767- ) ) ,
1781+ ...filterIdentifiedDeliveryResults (
1782+ await deliveryHandler . sendFormattedText (
1783+ payloadSummary . text ,
1784+ applySendReplyToConsumption ( sendOverrides ) ,
1785+ ) ,
1786+ ) ,
17681787 ) ;
17691788 } else {
17701789 await sendTextChunks ( deliveryHandler , payloadSummary . text , sendOverrides ) ;
@@ -1785,7 +1804,7 @@ async function deliverOutboundPayloadsCore(
17851804 } ) ,
17861805 ) ;
17871806 }
1788- const messageId = results . at ( - 1 ) ?. messageId ;
1807+ const messageId = deliveredResults . at ( - 1 ) ?. messageId ;
17891808 const pinMessageId = deliveredResults . find ( ( entry ) => entry . messageId ) ?. messageId ;
17901809 await maybePinDeliveredMessage ( {
17911810 handler : deliveryHandler ,
@@ -1802,7 +1821,7 @@ async function deliverOutboundPayloadsCore(
18021821 } ) ;
18031822 completeDeliveryDiagnostics ( deliveredResults . length ) ;
18041823 emitMessageSent ( {
1805- success : results . length > beforeCount ,
1824+ success : deliveredResults . length > 0 ,
18061825 content : payloadSummary . hookContent ?? payloadSummary . text ,
18071826 messageId,
18081827 } ) ;
@@ -1842,7 +1861,7 @@ async function deliverOutboundPayloadsCore(
18421861 } ) ,
18431862 ) ;
18441863 }
1845- const messageId = results . at ( - 1 ) ?. messageId ;
1864+ const messageId = deliveredResults . at ( - 1 ) ?. messageId ;
18461865 const pinMessageId = deliveredResults . find ( ( entry ) => entry . messageId ) ?. messageId ;
18471866 await maybePinDeliveredMessage ( {
18481867 handler : deliveryHandler ,
@@ -1859,7 +1878,7 @@ async function deliverOutboundPayloadsCore(
18591878 } ) ;
18601879 completeDeliveryDiagnostics ( deliveredResults . length ) ;
18611880 emitMessageSent ( {
1862- success : results . length > beforeCount ,
1881+ success : deliveredResults . length > 0 ,
18631882 content : payloadSummary . hookContent ?? payloadSummary . text ,
18641883 messageId,
18651884 } ) ;
@@ -1887,9 +1906,10 @@ async function deliverOutboundPayloadsCore(
18871906 unit . overrides ,
18881907 )
18891908 : await deliveryHandler . sendMedia ( unit . caption ?? "" , unit . mediaUrl , unit . overrides ) ;
1890- results . push ( delivery ) ;
1891- firstMessageId ??= delivery . messageId ;
1892- lastMessageId = delivery . messageId ;
1909+ if ( pushIdentifiedDeliveryResult ( results , delivery ) ) {
1910+ firstMessageId ??= delivery . messageId ;
1911+ lastMessageId = delivery . messageId ;
1912+ }
18931913 }
18941914 await maybePinDeliveredMessage ( {
18951915 handler : deliveryHandler ,
@@ -1922,7 +1942,7 @@ async function deliverOutboundPayloadsCore(
19221942 }
19231943 completeDeliveryDiagnostics ( results . length - beforeCount ) ;
19241944 emitMessageSent ( {
1925- success : true ,
1945+ success : results . length > beforeCount ,
19261946 content : payloadSummary . hookContent ?? payloadSummary . text ,
19271947 messageId : lastMessageId ,
19281948 } ) ;
0 commit comments