

























@@ -3373,6 +3373,61 @@ describe("subagent registry seam flow", () => {
33733373});
33743374});
337533753376+it("wakes a sessions_yield-paused parent when pending descendants settle", async () => {
3377+mocks.loadSessionStore.mockReturnValue({
3378+"agent:main:subagent:parent": {
3379+sessionId: "sess-parent",
3380+updatedAt: 1,
3381+},
3382+"agent:main:subagent:child": {
3383+sessionId: "sess-child",
3384+updatedAt: 1,
3385+},
3386+});
3387+3388+mod.addSubagentRunForTests({
3389+runId: "run-yielded-parent",
3390+childSessionKey: "agent:main:subagent:parent",
3391+requesterSessionKey: "agent:main:main",
3392+requesterDisplayKey: "main",
3393+task: "yielded parent waiting on descendants",
3394+cleanup: "keep",
3395+createdAt: Date.parse("2026-06-26T02:17:00Z"),
3396+startedAt: Date.parse("2026-06-26T02:18:00Z"),
3397+endedAt: Date.parse("2026-06-26T02:19:00Z"),
3398+pauseReason: "sessions_yield",
3399+wakeOnDescendantSettle: true,
3400+cleanupHandled: false,
3401+cleanupCompletedAt: undefined,
3402+});
3403+3404+mod.registerSubagentRun({
3405+runId: "run-yielded-child-finished",
3406+childSessionKey: "agent:main:subagent:child",
3407+requesterSessionKey: "agent:main:subagent:parent",
3408+requesterDisplayKey: "parent",
3409+task: "descendant settles after yield",
3410+cleanup: "keep",
3411+});
3412+3413+await waitForFast(() => {
3414+expect(mocks.runSubagentAnnounceFlow).toHaveBeenCalledTimes(2);
3415+});
3416+expectRecordFields(
3417+getMockCallArg(mocks.runSubagentAnnounceFlow, 0, 0, "child finished announce"),
3418+{ childRunId: "run-yielded-child-finished" },
3419+"child finished announce params",
3420+);
3421+expectRecordFields(
3422+getMockCallArg(mocks.runSubagentAnnounceFlow, 1, 0, "yielded parent wake announce"),
3423+{
3424+childRunId: "run-yielded-parent",
3425+wakeOnDescendantSettle: true,
3426+},
3427+"yielded parent wake announce params",
3428+);
3429+});
3430+33763431it("loads runtime plugins before emitting killed subagent ended hooks", async () => {
33773432const endedHookRunner = {
33783433hasHooks: (hookName: string) => hookName === "subagent_ended",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。