From 4bd783b7ce7feb19f61f461be21446a2587ec280 Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Tue, 7 Apr 2026 20:08:25 -0700 Subject: [PATCH] fix: gracefully handle unsupported thread/name/set on older Codex CLI (#126) * fix: gracefully handle unsupported thread/name/set on older Codex CLI Codex CLI v0.118.0 does not recognize the thread/name/set JSON-RPC method, causing startThread() to throw. Thread naming is cosmetic (for job log labels) and should not block thread creation. Wraps the call in try/catch so it fails silently on older CLI versions. Fixes #119 * refactor: only suppress unsupported-method errors for thread/name/set Address Codex review feedback: the bare catch swallowed all errors including auth, network, and server failures. Now only suppresses errors containing 'unknown variant' or 'unknown method' (the specific error older CLI versions return) and rethrows everything else. --- plugins/codex/scripts/lib/codex.mjs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/codex/scripts/lib/codex.mjs b/plugins/codex/scripts/lib/codex.mjs index ae53006..f2fe88b 100644 --- a/plugins/codex/scripts/lib/codex.mjs +++ b/plugins/codex/scripts/lib/codex.mjs @@ -639,7 +639,16 @@ async function startThread(client, cwd, options = {}) { const response = await client.request("thread/start", buildThreadParams(cwd, options)); const threadId = response.thread.id; if (options.threadName) { - await client.request("thread/name/set", { threadId, name: options.threadName }); + try { + await client.request("thread/name/set", { threadId, name: options.threadName }); + } catch (err) { + // Only suppress "unknown variant/method" errors from older CLI versions + // that don't support thread/name/set. Rethrow auth, network, or server errors. + const msg = String(err?.message ?? err ?? ""); + if (!msg.includes("unknown variant") && !msg.includes("unknown method")) { + throw err; + } + } } return response; }