@@ -803,28 +803,37 @@ export function createSubagentRegistryLifecycleController(params: {
803803 return ;
804804 }
805805 if ( didAnnounce ) {
806- if ( ! options ?. skipAnnounce ) {
807- const delivery = ensureDeliveryState ( entry ) ;
808- const deliveredAt = delivery . deliveredAt ?? Date . now ( ) ;
806+ const delivery = ensureDeliveryState ( entry ) ;
807+ const shouldCreditDelivery =
808+ ! options ?. skipAnnounce ||
809+ delivery . status === "delivered" ||
810+ typeof delivery . announcedAt === "number" ;
811+ if ( shouldCreditDelivery ) {
812+ const deliveredAt = delivery . deliveredAt ?? delivery . announcedAt ?? Date . now ( ) ;
809813 delivery . status = "delivered" ;
810814 delivery . deliveredAt = deliveredAt ;
811- delivery . announcedAt = deliveredAt ;
812- params . persist ( ) ;
815+ delivery . announcedAt = delivery . announcedAt ?? deliveredAt ;
816+ if ( ! options ?. skipAnnounce ) {
817+ delivery . announcedAt = deliveredAt ;
818+ params . persist ( ) ;
819+ }
813820 }
814821 clearPendingFinalDelivery ( entry ) ;
815- const delivery = ensureDeliveryState ( entry ) ;
816- delivery . status = "delivered" ;
817- delivery . suspendedAt = undefined ;
818- delivery . suspendedReason = undefined ;
819- if ( ! options ?. skipDeliveryStatus ) {
822+ const finalDelivery = ensureDeliveryState ( entry ) ;
823+ if ( shouldCreditDelivery ) {
824+ finalDelivery . status = "delivered" ;
825+ finalDelivery . suspendedAt = undefined ;
826+ finalDelivery . suspendedReason = undefined ;
827+ }
828+ if ( shouldCreditDelivery && ! options ?. skipDeliveryStatus ) {
820829 safeSetSubagentTaskDeliveryStatus ( {
821830 runId,
822831 childSessionKey : entry . childSessionKey ,
823832 deliveryStatus : "delivered" ,
824833 } ) ;
825834 }
826- delivery . lastError = undefined ;
827- delivery . lastDropReason = undefined ;
835+ finalDelivery . lastError = undefined ;
836+ finalDelivery . lastDropReason = undefined ;
828837 entry . wakeOnDescendantSettle = undefined ;
829838 const completion = ensureCompletionState ( entry ) ;
830839 completion . fallbackResultText = undefined ;
0 commit comments