@@ -868,6 +868,23 @@ function hasDeliveryResultIdentity(result: OutboundDeliveryResult): boolean {
868868 ) ;
869869}
870870
871+ function pushIdentifiedDeliveryResult (
872+ results : OutboundDeliveryResult [ ] ,
873+ delivery : OutboundDeliveryResult ,
874+ ) : boolean {
875+ if ( ! hasDeliveryResultIdentity ( delivery ) ) {
876+ return false ;
877+ }
878+ results . push ( delivery ) ;
879+ return true ;
880+ }
881+
882+ function filterIdentifiedDeliveryResults (
883+ results : readonly OutboundDeliveryResult [ ] ,
884+ ) : OutboundDeliveryResult [ ] {
885+ return results . filter ( ( result ) => hasDeliveryResultIdentity ( result ) ) ;
886+ }
887+
871888function normalizeDeliveryPin ( payload : ReplyPayload ) : ReplyPayloadDeliveryPin | undefined {
872889 const pin = payload . delivery ?. pin ;
873890 if ( pin === true ) {
@@ -1529,7 +1546,7 @@ async function deliverOutboundPayloadsCore(
15291546 continue ;
15301547 }
15311548 throwIfAborted ( abortSignal ) ;
1532- results . push ( await sendHandler . sendText ( unit . text , unit . overrides ) ) ;
1549+ pushIdentifiedDeliveryResult ( results , await sendHandler . sendText ( unit . text , unit . overrides ) ) ;
15331550 }
15341551 } ;
15351552 const normalizedPayloads = normalizePayloadsForChannelDelivery ( outboundPayloadPlan , handler ) ;
@@ -1783,10 +1800,12 @@ async function deliverOutboundPayloadsCore(
17831800 const beforeCount = results . length ;
17841801 if ( deliveryHandler . sendFormattedText ) {
17851802 results . push (
1786- ...( await deliveryHandler . sendFormattedText (
1787- payloadSummary . text ,
1788- applySendReplyToConsumption ( sendOverrides ) ,
1789- ) ) ,
1803+ ...filterIdentifiedDeliveryResults (
1804+ await deliveryHandler . sendFormattedText (
1805+ payloadSummary . text ,
1806+ applySendReplyToConsumption ( sendOverrides ) ,
1807+ ) ,
1808+ ) ,
17901809 ) ;
17911810 } else {
17921811 await sendTextChunks ( deliveryHandler , payloadSummary . text , sendOverrides ) ;
@@ -1807,7 +1826,7 @@ async function deliverOutboundPayloadsCore(
18071826 } ) ,
18081827 ) ;
18091828 }
1810- const messageId = results . at ( - 1 ) ?. messageId ;
1829+ const messageId = deliveredResults . at ( - 1 ) ?. messageId ;
18111830 const pinMessageId = deliveredResults . find ( ( entry ) => entry . messageId ) ?. messageId ;
18121831 await maybePinDeliveredMessage ( {
18131832 handler : deliveryHandler ,
@@ -1824,7 +1843,7 @@ async function deliverOutboundPayloadsCore(
18241843 } ) ;
18251844 completeDeliveryDiagnostics ( deliveredResults . length ) ;
18261845 emitMessageSent ( {
1827- success : results . length > beforeCount ,
1846+ success : deliveredResults . length > 0 ,
18281847 content : payloadSummary . hookContent ?? payloadSummary . text ,
18291848 messageId,
18301849 } ) ;
@@ -1864,7 +1883,7 @@ async function deliverOutboundPayloadsCore(
18641883 } ) ,
18651884 ) ;
18661885 }
1867- const messageId = results . at ( - 1 ) ?. messageId ;
1886+ const messageId = deliveredResults . at ( - 1 ) ?. messageId ;
18681887 const pinMessageId = deliveredResults . find ( ( entry ) => entry . messageId ) ?. messageId ;
18691888 await maybePinDeliveredMessage ( {
18701889 handler : deliveryHandler ,
@@ -1881,7 +1900,7 @@ async function deliverOutboundPayloadsCore(
18811900 } ) ;
18821901 completeDeliveryDiagnostics ( deliveredResults . length ) ;
18831902 emitMessageSent ( {
1884- success : results . length > beforeCount ,
1903+ success : deliveredResults . length > 0 ,
18851904 content : payloadSummary . hookContent ?? payloadSummary . text ,
18861905 messageId,
18871906 } ) ;
@@ -1909,9 +1928,10 @@ async function deliverOutboundPayloadsCore(
19091928 unit . overrides ,
19101929 )
19111930 : await deliveryHandler . sendMedia ( unit . caption ?? "" , unit . mediaUrl , unit . overrides ) ;
1912- results . push ( delivery ) ;
1913- firstMessageId ??= delivery . messageId ;
1914- lastMessageId = delivery . messageId ;
1931+ if ( pushIdentifiedDeliveryResult ( results , delivery ) ) {
1932+ firstMessageId ??= delivery . messageId ;
1933+ lastMessageId = delivery . messageId ;
1934+ }
19151935 }
19161936 await maybePinDeliveredMessage ( {
19171937 handler : deliveryHandler ,
@@ -1944,7 +1964,7 @@ async function deliverOutboundPayloadsCore(
19441964 }
19451965 completeDeliveryDiagnostics ( results . length - beforeCount ) ;
19461966 emitMessageSent ( {
1947- success : true ,
1967+ success : results . length > beforeCount ,
19481968 content : payloadSummary . hookContent ?? payloadSummary . text ,
19491969 messageId : lastMessageId ,
19501970 } ) ;
0 commit comments