@@ -1271,6 +1271,48 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
12711271 ) ;
12721272 } ) ;
12731273
1274+ it ( "does not fallback while generated media announce-agent run is still pending" , async ( ) => {
1275+ const callGateway = createGatewayMock ( {
1276+ runId : "video_generate:task-123:ok" ,
1277+ status : "accepted" ,
1278+ acceptedAt : Date . now ( ) ,
1279+ } ) ;
1280+ const sendMessage = createSendMessageMock ( ) ;
1281+ const result = await deliverSlackChannelAnnouncement ( {
1282+ callGateway,
1283+ sendMessage,
1284+ sessionId : "requester-session-channel" ,
1285+ isActive : false ,
1286+ expectsCompletionMessage : true ,
1287+ directIdempotencyKey : "announce-channel-media-pending" ,
1288+ sourceTool : "video_generate" ,
1289+ internalEvents : [
1290+ {
1291+ type : "task_completion" ,
1292+ source : "video_generation" ,
1293+ childSessionKey : "video_generate:task-123" ,
1294+ childSessionId : "task-123" ,
1295+ announceType : "video generation task" ,
1296+ taskLabel : "lobster trailer" ,
1297+ status : "ok" ,
1298+ statusLabel : "completed successfully" ,
1299+ result : "Generated 1 video.\nMEDIA:/tmp/lobster-trailer.mp4" ,
1300+ mediaUrls : [ "/tmp/lobster-trailer.mp4" ] ,
1301+ replyInstruction : "Deliver the generated video through the message tool." ,
1302+ } ,
1303+ ] ,
1304+ } ) ;
1305+
1306+ expect ( result ) . toEqual (
1307+ expect . objectContaining ( {
1308+ delivered : true ,
1309+ path : "direct" ,
1310+ } ) ,
1311+ ) ;
1312+ expect ( callGateway ) . toHaveBeenCalled ( ) ;
1313+ expect ( sendMessage ) . not . toHaveBeenCalled ( ) ;
1314+ } ) ;
1315+
12741316 it ( "uses a direct channel fallback when announce-agent returns no visible output" , async ( ) => {
12751317 const callGateway = createGatewayMock ( {
12761318 result : {
0 commit comments