From 49b622bd1449158383dc74e7367c186db2aee301 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 03:45:37 +0200 Subject: [PATCH] test(opencode): reproduce v2 misdetected as v1 when --version answers after 5 s Failing reproduction for #6051. No fix. --- .../providers/opencode/runtime-client.test.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/server/src/server/agent/providers/opencode/runtime-client.test.ts b/packages/server/src/server/agent/providers/opencode/runtime-client.test.ts index b1ee5be697..57d6075e1f 100644 --- a/packages/server/src/server/agent/providers/opencode/runtime-client.test.ts +++ b/packages/server/src/server/agent/providers/opencode/runtime-client.test.ts @@ -209,3 +209,25 @@ test.each([ }, 10000, ); + +test("selects v2 for an OpenCode v2 binary that answers --version after 7 s", async () => { + const { mkdtemp, writeFile, rm } = await import("node:fs/promises"); + const { tmpdir } = await import("node:os"); + const { join } = await import("node:path"); + const { OpenCodeRuntimeClient } = await import("./runtime-client.js"); + const { createTestLogger } = await import("../../../../test-utils/test-logger.js"); + const root = await mkdtemp(join(tmpdir(), "opencode-slow-version-")); + const script = join(root, "version.cjs"); + await writeFile(script, 'setTimeout(() => console.log("opencode v2.0.22"), 7000)'); + const client = new OpenCodeRuntimeClient(createTestLogger(), { + command: { mode: "replace", argv: [process.execPath, script] }, + }); + try { + expect((await client.listFeatures({ provider: "opencode", cwd: root }))[0]?.label).toBe( + "Auto-accept", + ); + } finally { + await client.shutdown(); + await rm(root, { recursive: true, force: true }); + } +}, 20_000);