






















@@ -1548,7 +1548,7 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
15481548},
15491549);
155015501551-it("accepts session-only completion handoff when the in-process agent intentionally replies NO_REPLY", async () => {
1551+it("accepts non-subagent session-only completion handoff when the in-process agent intentionally replies NO_REPLY", async () => {
15521552const dispatchGatewayMethodInProcess = createInProcessGatewayMock({
15531553result: {
15541554payloads: [{ text: "NO_REPLY" }],
@@ -1572,6 +1572,7 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
15721572expectsCompletionMessage: true,
15731573bestEffortDeliver: true,
15741574directIdempotencyKey: "announce-local-silent",
1575+sourceTool: "agent_harness_task",
15751576});
1576157715771578expectRecordFields(result, {
@@ -1586,6 +1587,47 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
15861587});
15871588});
158815891590+it("rejects session-only subagent completion handoff when the parent only replies NO_REPLY", async () => {
1591+const dispatchGatewayMethodInProcess = createInProcessGatewayMock({
1592+result: {
1593+payloads: [{ text: "NO_REPLY" }],
1594+},
1595+});
1596+testing.setDepsForTest({
1597+ dispatchGatewayMethodInProcess,
1598+getRequesterSessionActivity: () => ({
1599+sessionId: "requester-session-local",
1600+isActive: false,
1601+}),
1602+getRuntimeConfig: () => ({}) as never,
1603+});
1604+1605+const result = await deliverSubagentAnnouncement({
1606+requesterSessionKey: "agent:main:local-session",
1607+targetRequesterSessionKey: "agent:main:local-session",
1608+triggerMessage: "child done",
1609+steerMessage: "child done",
1610+requesterIsSubagent: false,
1611+expectsCompletionMessage: true,
1612+bestEffortDeliver: true,
1613+directIdempotencyKey: "announce-local-subagent-silent",
1614+sourceTool: "subagent_announce",
1615+});
1616+1617+expectRecordFields(result, {
1618+delivered: false,
1619+path: "direct",
1620+reason: "visible_reply_missing",
1621+error: "completion agent did not produce a visible reply",
1622+});
1623+expectInProcessAgentParams(dispatchGatewayMethodInProcess, {
1624+deliver: false,
1625+channel: undefined,
1626+to: undefined,
1627+bestEffortDeliver: true,
1628+});
1629+});
1630+15891631it.each([
15901632{
15911633name: "accepted session spawn",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。