From 7fad3588b9678203955c31d05d82c63e66adb8a4 Mon Sep 17 00:00:00 2001 From: UtkarshUsername Date: Tue, 20 Oct 2026 23:54:23 +0530 Subject: [PATCH 1/2] fix(opencode): use Big Pickle for default text generation --- packages/contracts/src/model.ts | 2 +- packages/shared/src/serverSettings.test.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/contracts/src/model.ts b/packages/contracts/src/model.ts index c52dfe3acfead..6040f3faa40e5 100644 --- a/packages/contracts/src/model.ts +++ b/packages/contracts/src/model.ts @@ -158,7 +158,7 @@ export const DEFAULT_TEXT_GENERATION_MODEL_BY_PROVIDER: Partial< [ProviderDriverKind.make("antigravity")]: ANTIGRAVITY_DEFAULT_MODEL, [CLAUDE_DRIVER_KIND]: "claude-haiku-5-5", [CURSOR_DRIVER_KIND]: "composer-2", - [OPENCODE_DRIVER_KIND]: "openai/gpt-5", + [OPENCODE_DRIVER_KIND]: "opencode/big-pickle", }; export const MODEL_SLUG_ALIASES_BY_PROVIDER: Partial< diff --git a/packages/shared/src/serverSettings.test.ts b/packages/shared/src/serverSettings.test.ts index 76dc352e96b67..97b5cccd300c9 100644 --- a/packages/shared/src/serverSettings.test.ts +++ b/packages/shared/src/serverSettings.test.ts @@ -26,6 +26,12 @@ import { const FOLDED_SERVER_SETTINGS = { ...DEFAULT_SERVER_SETTINGS, projectSettingsFolded: true }; describe("fallbackTextGenerationModelSelection", () => { + it("uses Big Pickle when only OpenCode is enabled", () => { + expect( + fallbackTextGenerationModelSelection({}, (instanceId) => instanceId === "opencode"), + ).toEqual({ instanceId: "opencode", model: "opencode/big-pickle" }); + }); + it("ignores a configured non-default instance at machine scope, matching no fallback", () => { const configured = ProviderInstanceId.make("codex_work"); const providerInstances = { From 9d1649e4058de17cdbb87c0e0526d74e1c8f18e8 Mon Sep 17 00:00:00 2001 From: PR Batch Tester Date: Fri, 30 Oct 2026 15:54:45 +0000 Subject: [PATCH 2/2] fix(opencode): title generation works on OpenCode's free models OpenCode Zen refuses free-model requests that carry no tools, answering with a misleading "Free usage limit reached". Text generation denied every tool, so Big Pickle never returned a title. Keep the read tool allowed. Co-Authored-By: Claude Opus 5.5 --- packages/provider-opencode/src/server/textGeneration.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/provider-opencode/src/server/textGeneration.ts b/packages/provider-opencode/src/server/textGeneration.ts index 11d6c19fba2c2..eed819e44d62c 100644 --- a/packages/provider-opencode/src/server/textGeneration.ts +++ b/packages/provider-opencode/src/server/textGeneration.ts @@ -190,7 +190,11 @@ export const makeOpenCodeTextGeneration = Effect.fn("makeOpenCodeTextGeneration" client.session.create( { title: `T3 Code ${input.operation}`, - permission: [{ permission: "*", pattern: "*", action: "deny" }], + // OpenCode Zen refuses free-model requests that carry no tools, so keep read. + permission: [ + { permission: "*", pattern: "*", action: "deny" }, + { permission: "read", pattern: "*", action: "allow" }, + ], }, { signal }, ),