diff --git a/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts b/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts deleted file mode 100644 index e8b8786..0000000 --- a/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { afterEach, beforeEach, describe, expect, it } from "vitest"; -import { HermesAcpClient } from "../../src/acp-client.js"; - -const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; - -describe("HermesAcpClient", () => { - let client: HermesAcpClient; - - beforeEach(() => { - client = new HermesAcpClient(); - }); - - afterEach(async () => { - await client.close(); - }); - - it( - "connect() returns a UUID sessionId", - async () => { - const sessionId = await client.connect(process.cwd()); - expect(typeof sessionId).toBe("string"); - expect(sessionId).toMatch(UUID_RE); - }, - { timeout: 2 * 60 * 1000 }, - ); - - it( - "prompt() returns a non-empty text response", - async () => { - await client.connect(process.cwd()); - const result = await client.prompt("Reply with exactly the word: PONG"); - expect(typeof result.text).toBe("string"); - expect(result.text.length).toBeGreaterThan(0); - expect(typeof result.sessionId).toBe("string"); - expect(result.sessionId).toMatch(UUID_RE); - }, - { timeout: 2 * 60 * 1000 }, - ); - - it( - "prompt() can be called twice on the same session (resume)", - async () => { - await client.connect(process.cwd()); - - const first = await client.prompt("Say the word ALPHA and nothing else."); - expect(first.text.length).toBeGreaterThan(0); - - const second = await client.prompt("Now say the word BETA and nothing else."); - expect(second.text.length).toBeGreaterThan(0); - - expect(first.sessionId).toBe(second.sessionId); - }, - { timeout: 2 * 60 * 1000 }, - ); -}); diff --git a/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts b/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts deleted file mode 100644 index 583572a..0000000 --- a/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { afterEach, describe, expect, it } from "vitest"; -import { HermesAcpClient } from "../../src/acp-client.js"; - -/** - * E2E test for cross-process session resume. - * - * Simulates the workflow re-entry scenario: - * 1. Client A: connect → prompt → close (developer first run) - * 2. Client B: resume(sessionId) → prompt (developer re-entry after reviewer reject) - * - * This is what happens when uwf thread step spawns uwf-hermes twice for the same role. - */ -describe("HermesAcpClient cross-process resume", () => { - const clients: HermesAcpClient[] = []; - - afterEach(async () => { - for (const c of clients) { - await c.close(); - } - clients.length = 0; - }); - - // TODO(#435): flaky — depends on live LLM; mock or move to integration suite - it.skip( - "resume() after close — second prompt returns non-empty text", - async () => { - // --- Client A: first run --- - const clientA = new HermesAcpClient(); - clients.push(clientA); - - await clientA.connect(process.cwd()); - const first = await clientA.prompt( - "Remember the secret code: WATERMELON. Reply with exactly: ACKNOWLEDGED", - ); - expect(first.text.length).toBeGreaterThan(0); - const sessionId = first.sessionId; - - // Close client A (simulates uwf-hermes process exit) - await clientA.close(); - - // --- Client B: resume (simulates re-entry) --- - const clientB = new HermesAcpClient(); - clients.push(clientB); - - await clientB.resume(sessionId, process.cwd()); - const second = await clientB.prompt( - "What was the secret code I told you earlier? Reply with just the code word.", - ); - - // The critical assertion: resumed session produces non-empty output - expect(second.text.length).toBeGreaterThan(0); - expect(second.sessionId).toBe(sessionId); - }, - { timeout: 3 * 60 * 1000 }, - ); -}); diff --git a/packages/agent-hermes/package.json b/packages/agent-hermes/package.json index 1456668..b27f390 100644 --- a/packages/agent-hermes/package.json +++ b/packages/agent-hermes/package.json @@ -19,7 +19,7 @@ "scripts": { "prepublishOnly": "echo 'Use pnpm run release from repo root' && exit 1", "test": "vitest run __tests__/", - "test:ci": "vitest run __tests__/ --exclude __tests__/integration/" + "test:ci": "vitest run __tests__/" }, "dependencies": { "@ocas/core": "^0.3.0",