From 15f8c577979f1a2d9792bf737d60c072907b116f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Feb 2026 09:10:11 +0000 Subject: [PATCH] test: speed up subagent announce e2e and drop duplicate defer case --- .../subagent-announce.format.e2e.test.ts | 47 +++++++------------ 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/src/agents/subagent-announce.format.e2e.test.ts b/src/agents/subagent-announce.format.e2e.test.ts index 752b2a07db9..c1d4e5013d0 100644 --- a/src/agents/subagent-announce.format.e2e.test.ts +++ b/src/agents/subagent-announce.format.e2e.test.ts @@ -22,6 +22,17 @@ let configOverride: ReturnType<(typeof import("../config/config.js"))["loadConfi }, }; +function loadSessionStoreFixture(): Record> { + return new Proxy(sessionStore, { + get(target, key: string | symbol) { + if (typeof key === "string" && !(key in target) && key.includes(":subagent:")) { + return { inputTokens: 1, outputTokens: 1, totalTokens: 2 }; + } + return target[key as keyof typeof target]; + }, + }); +} + vi.mock("../gateway/call.js", () => ({ callGateway: vi.fn(async (req: unknown) => { const typed = req as { method?: string; params?: { message?: string; sessionKey?: string } }; @@ -47,7 +58,7 @@ vi.mock("./tools/agent-step.js", () => ({ })); vi.mock("../config/sessions.js", () => ({ - loadSessionStore: vi.fn(() => sessionStore), + loadSessionStore: vi.fn(() => loadSessionStoreFixture()), resolveAgentIdFromSessionKey: () => "main", resolveStorePath: () => "/tmp/sessions.json", resolveMainSessionKey: () => "agent:main:main", @@ -93,6 +104,9 @@ describe("subagent announce formatting", () => { sessionStore = { "agent:main:subagent:test": { sessionId: "child-session-123", + inputTokens: 1, + outputTokens: 1, + totalTokens: 2, }, }; await runSubagentAnnounceFlow({ @@ -580,6 +594,9 @@ describe("subagent announce formatting", () => { sessionStore = { "agent:main:subagent:test": { sessionId: "child-session-1", + inputTokens: 1, + outputTokens: 1, + totalTokens: 2, }, }; @@ -742,34 +759,6 @@ describe("subagent announce formatting", () => { expect(agentSpy).not.toHaveBeenCalled(); }); - it("does not delete child session when announce is deferred for an active run", async () => { - const { runSubagentAnnounceFlow } = await import("./subagent-announce.js"); - embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(true); - embeddedRunMock.waitForEmbeddedPiRunEnd.mockResolvedValue(false); - sessionStore = { - "agent:main:subagent:test": { - sessionId: "child-session-active", - }, - }; - - const didAnnounce = await runSubagentAnnounceFlow({ - childSessionKey: "agent:main:subagent:test", - childRunId: "run-child-active-delete", - requesterSessionKey: "agent:main:main", - requesterDisplayKey: "main", - task: "context-stress-test", - timeoutMs: 1000, - cleanup: "delete", - waitForCompletion: false, - startedAt: 10, - endedAt: 20, - outcome: { status: "ok" }, - }); - - expect(didAnnounce).toBe(false); - expect(sessionsDeleteSpy).not.toHaveBeenCalled(); - }); - it("normalizes requesterOrigin for direct announce delivery", async () => { const { runSubagentAnnounceFlow } = await import("./subagent-announce.js"); embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(false);