From fdad35aaa70f9999a19b064c8d99731303b58db9 Mon Sep 17 00:00:00 2001 From: Nate Williams <50088025+natewill@users.noreply.github.com> Date: Sun, 8 Mar 2026 04:01:09 -0400 Subject: [PATCH 1/4] fix(tui): fix broken /mcp toggling (#16431) Co-authored-by: Shoubhit Dash --- packages/opencode/src/util/keybind.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/src/util/keybind.ts b/packages/opencode/src/util/keybind.ts index 59318a31b0..83c7945ae1 100644 --- a/packages/opencode/src/util/keybind.ts +++ b/packages/opencode/src/util/keybind.ts @@ -23,7 +23,7 @@ export namespace Keybind { */ export function fromParsedKey(key: ParsedKey, leader = false): Info { return { - name: key.name, + name: key.name === " " ? "space" : key.name, ctrl: key.ctrl, meta: key.meta, shift: key.shift, From 13a68f3de368a9c5257ba620d791e290379ceb0a Mon Sep 17 00:00:00 2001 From: tobwen <1864057+tobwen@users.noreply.github.com> Date: Sun, 8 Mar 2026 09:25:33 +0100 Subject: [PATCH 2/4] fix(opencode): avoid TTY corruption from double cleanup (#16565) Co-authored-by: Shoubhit Dash --- packages/opencode/src/cli/cmd/tui/thread.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index f778c96a80..fea32a2b2b 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -208,7 +208,6 @@ export const TuiThreadCommand = cmd({ prompt, fork: args.fork, }, - onExit: stop, }) } finally { await stop() From 23ed65290112250f37d07d26ad5c2d20960300ee Mon Sep 17 00:00:00 2001 From: Roy Bruschini Date: Sun, 8 Mar 2026 12:10:06 +0100 Subject: [PATCH 3/4] docs(zen.mdx): correct Italian grammar and punctuation errors (#16590) --- packages/web/src/content/docs/it/zen.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index 3c892f0d48..0f21684448 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -7,19 +7,19 @@ import config from "../../../../config.mjs" export const console = config.console export const email = `mailto:${config.email}` -OpenCode Zen e una lista di modelli testati e verificati dal team di OpenCode. +OpenCode Zen è una lista di modelli testati e verificati dal team di OpenCode. :::note -OpenCode Zen e attualmente in beta. +OpenCode Zen è attualmente in beta. ::: -Zen funziona come qualunque altro provider in OpenCode. Accedi a OpenCode Zen e ottieni la tua chiave API. E **completamente opzionale**: non devi usarlo per usare OpenCode. +Zen funziona come qualunque altro provider in OpenCode. Accedi a OpenCode Zen e ottieni la tua chiave API. È **completamente opzionale**: non devi usarlo per usare OpenCode. --- ## Contesto -Ci sono moltissimi modelli, ma solo pochi funzionano bene come agenti di coding. Inoltre, la maggior parte dei provider e configurata in modo molto diverso, quindi prestazioni e qualita possono variare parecchio. +Ci sono moltissimi modelli, ma solo pochi funzionano bene come agenti di coding. Inoltre, la maggior parte dei provider è configurata in modo molto diverso, quindi prestazioni e qualità possono variare parecchio. :::tip Abbiamo testato un gruppo selezionato di modelli e provider che funzionano bene con OpenCode. @@ -33,7 +33,7 @@ Per risolvere, abbiamo fatto alcune cose: 2. Poi abbiamo lavorato con alcuni provider per assicurarci che venissero serviti correttamente. 3. Infine, abbiamo fatto benchmark delle combinazioni modello/provider e creato una lista che ci sentiamo di raccomandare. -OpenCode Zen e un gateway AI che ti da accesso a questi modelli. +OpenCode Zen e un gateway AI che ti dà accesso a questi modelli. --- @@ -158,7 +158,7 @@ Le commissioni della carta di credito vengono ribaltate al costo (4.4% + $0.30 p I modelli gratuiti: - MiniMax M2.5 Free e disponibile su OpenCode per un periodo limitato. Il team usa questo tempo per raccogliere feedback e migliorare il modello. -- Big Pickle e un modello stealth gratuito su OpenCode per un periodo limitato. Il team usa questo tempo per raccogliere feedback e migliorare il modello. +- Big Pickle è un modello stealth gratuito su OpenCode per un periodo limitato. Il team usa questo tempo per raccogliere feedback e migliorare il modello. Contattaci se hai domande. @@ -212,7 +212,7 @@ Zen funziona benissimo anche per i team. Puoi invitare colleghi, assegnare ruoli I workspace sono attualmente gratuiti per i team come parte della beta. ::: -Gestire il workspace e attualmente gratuito per i team come parte della beta. Condivideremo presto piu dettagli sul pricing. +Gestire il workspace è attualmente gratuito per i team come parte della beta. Condivideremo presto piu dettagli sul pricing. --- @@ -231,7 +231,7 @@ Gli admin possono anche impostare limiti mensili di spesa per ogni membro per te Gli admin possono abilitare o disabilitare modelli specifici per il workspace. Le richieste verso un modello disabilitato restituiscono un errore. -Questo e utile quando vuoi disabilitare l'uso di un modello che raccoglie dati. +Questo è utile quando vuoi disabilitare l'uso di un modello che raccoglie dati. --- From 050f99ec54db39eb2bfaab17c5deb522c25fa306 Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Sun, 8 Mar 2026 17:26:45 +0530 Subject: [PATCH 4/4] test: make process cwd check cross-platform (#16594) --- packages/opencode/test/util/process.test.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/opencode/test/util/process.test.ts b/packages/opencode/test/util/process.test.ts index 0a51bda173..758469fe3e 100644 --- a/packages/opencode/test/util/process.test.ts +++ b/packages/opencode/test/util/process.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from "bun:test" import { Process } from "../../src/util/process" +import { tmpdir } from "../fixture/fixture" function node(script: string) { return [process.execPath, "-e", script] @@ -58,10 +59,11 @@ describe("util.process", () => { }, 3000) test("uses cwd when spawning commands", async () => { + await using tmp = await tmpdir() const out = await Process.run(node("process.stdout.write(process.cwd())"), { - cwd: "/tmp", + cwd: tmp.path, }) - expect(out.stdout.toString()).toBe("/tmp") + expect(out.stdout.toString()).toBe(tmp.path) }) test("merges environment overrides", async () => {