


































@@ -732,6 +732,48 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
732732expect(sendMessage).not.toHaveBeenCalled();
733733});
734734735+it("reports requester-agent delivery failure even when output stayed visible", async () => {
736+const callGateway = createGatewayMock({
737+result: {
738+payloads: [{ text: "Tests passed and the PR is ready for review." }],
739+deliveryStatus: {
740+status: "failed",
741+errorMessage: "Slack send failed: channel not found",
742+},
743+},
744+});
745+const sendMessage = createSendMessageMock();
746+const result = await deliverSlackThreadAnnouncement({
747+ callGateway,
748+ sendMessage,
749+sessionId: "requester-session-4",
750+isActive: false,
751+expectsCompletionMessage: true,
752+directIdempotencyKey: "announce-thread-delivery-status-failed",
753+internalEvents: [
754+{
755+type: "task_completion",
756+source: "subagent",
757+childSessionKey: "agent:worker:subagent:child",
758+childSessionId: "child-session-id",
759+announceType: "subagent task",
760+taskLabel: "thread completion smoke",
761+status: "ok",
762+statusLabel: "completed successfully",
763+result: "child completion output",
764+replyInstruction: "Summarize the result.",
765+},
766+],
767+});
768+769+expectRecordFields(result, {
770+delivered: false,
771+path: "direct",
772+error: "Slack send failed: channel not found",
773+});
774+expect(sendMessage).not.toHaveBeenCalled();
775+});
776+735777it("does not raw-send grouped child results when requester-agent output is empty", async () => {
736778const callGateway = createGatewayMock({
737779result: {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。