




























@@ -1271,6 +1271,48 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
12711271);
12721272});
127312731274+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+12741316it("uses a direct channel fallback when announce-agent returns no visible output", async () => {
12751317const callGateway = createGatewayMock({
12761318result: {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。