From 3bbf8c8989c94169a2c40d5e9d02a5cba50e83e7 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 5 Jun 2026 12:47:16 -0500 Subject: [PATCH] fix(opencode): terminate help output with newline (#30992) --- packages/opencode/src/index.ts | 2 +- packages/opencode/test/cli/help/help-snapshots.test.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts index 0c2251609..35f78eb55 100644 --- a/packages/opencode/src/index.ts +++ b/packages/opencode/src/index.ts @@ -55,7 +55,7 @@ function show(out: string) { const text = out.trimStart() if (!text.startsWith("opencode ")) { process.stderr.write(UI.logo() + EOL + EOL) - process.stderr.write(text) + process.stderr.write(text + EOL) return } process.stderr.write(out) diff --git a/packages/opencode/test/cli/help/help-snapshots.test.ts b/packages/opencode/test/cli/help/help-snapshots.test.ts index dd49b2b33..edd92120a 100644 --- a/packages/opencode/test/cli/help/help-snapshots.test.ts +++ b/packages/opencode/test/cli/help/help-snapshots.test.ts @@ -13,6 +13,7 @@ // version (changes per release), so we'd snapshot a moving target. import { describe, expect } from "bun:test" import { Effect } from "effect" +import { EOL } from "os" import { cliIt } from "../../lib/cli-process" import { normalizeForSnapshot, PATH_SEP } from "../../lib/snapshot" @@ -98,6 +99,10 @@ describe("opencode CLI help-text snapshots", () => { "every documented command emits stable help text", ({ opencode }) => Effect.gen(function* () { + const topLevel = yield* opencode.spawn(["--help"], { env: SNAPSHOT_ENV }) + expect(topLevel.exitCode).toBe(0) + expect(topLevel.stderr.endsWith(EOL)).toBe(true) + const argvs: Array = [...TOP_LEVEL.map((c) => [c] as const), ...SUBCOMMANDS] // Spawn in parallel, then assert in argv order so snapshot output is