From a0eb6408f1eeb48cf460b32531c561fb46c4124c Mon Sep 17 00:00:00 2001 From: southseact-3d Date: Thu, 19 Feb 2026 15:50:39 +0000 Subject: [PATCH] fix: mergeDeep only accepts 2 arguments - chain calls to fix CLI crash Fixes remeda mergeDeep error that was causing all OpenCode CLI commands to fail with 'Wrong number of arguments' before processing any messages. The bug was introduced in commit 2536784 where providerPreference support was added, passing 3 arguments to mergeDeep which only accepts 2. Changed from: mergeDeep(A, B, C) To: mergeDeep(mergeDeep(A, B), C) This preserves the provider preference functionality while fixing the crash. --- opencode/packages/opencode/src/provider/provider.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opencode/packages/opencode/src/provider/provider.ts b/opencode/packages/opencode/src/provider/provider.ts index 64bc19f..cf16324 100644 --- a/opencode/packages/opencode/src/provider/provider.ts +++ b/opencode/packages/opencode/src/provider/provider.ts @@ -940,7 +940,10 @@ export namespace Provider { write: model?.cost?.cache_write ?? existingModel?.cost?.cache.write ?? 0, }, }, - options: mergeDeep(existingModel?.options ?? {}, model.options ?? {}, model.providerPreference ? { providerPreference: model.providerPreference } : {}), + options: mergeDeep( + mergeDeep(existingModel?.options ?? {}, model.options ?? {}), + model.providerPreference ? { providerPreference: model.providerPreference } : {} + ), limit: { context: model.limit?.context ?? existingModel?.limit?.context ?? 0, output: model.limit?.output ?? existingModel?.limit?.output ?? 0,