From 0c59d2dbe7744febee0f2c7cc1881fb4f299159d Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Thu, 26 Feb 2026 12:00:25 +0900 Subject: [PATCH] refactor(ultrawork): remove thinking config injection from model override MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Delegate thinking config control to the provider layer rather than injecting it manually in ultrawork model override. 🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) --- assets/oh-my-opencode.schema.json | 8 ++++++++ src/plugin/ultrawork-db-model-override.ts | 5 ++--- src/plugin/ultrawork-model-override.test.ts | 8 -------- src/plugin/ultrawork-model-override.ts | 3 --- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/assets/oh-my-opencode.schema.json b/assets/oh-my-opencode.schema.json index d87cf68cd..3655d2572 100644 --- a/assets/oh-my-opencode.schema.json +++ b/assets/oh-my-opencode.schema.json @@ -960,6 +960,9 @@ } }, "additionalProperties": false + }, + "allow_non_gpt_model": { + "type": "boolean" } }, "additionalProperties": false @@ -3248,6 +3251,11 @@ "prompt_append": { "type": "string" }, + "max_prompt_tokens": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, "is_unstable_agent": { "type": "boolean" }, diff --git a/src/plugin/ultrawork-db-model-override.ts b/src/plugin/ultrawork-db-model-override.ts index 17d84a928..9009fb066 100644 --- a/src/plugin/ultrawork-db-model-override.ts +++ b/src/plugin/ultrawork-db-model-override.ts @@ -21,11 +21,10 @@ function tryUpdateMessageModel( ) const result = stmt.run(targetModel.providerID, targetModel.modelID, messageId) if (result.changes === 0) return false - if (variant) { db.prepare( - `UPDATE message SET data = json_set(data, '$.variant', ?, '$.thinking', ?) WHERE id = ?`, - ).run(variant, variant, messageId) + `UPDATE message SET data = json_set(data, '$.variant', ?) WHERE id = ?`, + ).run(variant, messageId) } return true } diff --git a/src/plugin/ultrawork-model-override.test.ts b/src/plugin/ultrawork-model-override.test.ts index cee2dd59b..b996fb708 100644 --- a/src/plugin/ultrawork-model-override.test.ts +++ b/src/plugin/ultrawork-model-override.test.ts @@ -308,10 +308,6 @@ describe("applyUltraworkModelOverrideOnMessage", () => { //#then expect(output.message.model).toEqual({ providerID: "anthropic", modelID: "claude-opus-4-6" }) expect(output.message["variant"]).toBe("max") - expect(output.message["thinking"]).toEqual({ - type: "enabled", - budgetTokens: 16000, - }) expect(dbOverrideSpy).not.toHaveBeenCalled() }) @@ -327,10 +323,6 @@ describe("applyUltraworkModelOverrideOnMessage", () => { //#then expect(output.message.model).toBeUndefined() expect(output.message["variant"]).toBe("high") - expect(output.message["thinking"]).toEqual({ - type: "enabled", - budgetTokens: 16000, - }) expect(dbOverrideSpy).not.toHaveBeenCalled() }) diff --git a/src/plugin/ultrawork-model-override.ts b/src/plugin/ultrawork-model-override.ts index 7700f8274..13338de77 100644 --- a/src/plugin/ultrawork-model-override.ts +++ b/src/plugin/ultrawork-model-override.ts @@ -8,7 +8,6 @@ import { scheduleDeferredModelOverride } from "./ultrawork-db-model-override" const CODE_BLOCK = /```[\s\S]*?```/g const INLINE_CODE = /`[^`]+`/g const ULTRAWORK_PATTERN = /\b(ultrawork|ulw)\b/i -const ULTRAWORK_THINKING_CONFIG = { type: "enabled", budgetTokens: 16000 } as const export function detectUltrawork(text: string): boolean { const clean = text.replace(CODE_BLOCK, "").replace(INLINE_CODE, "") @@ -118,7 +117,6 @@ export function applyUltraworkModelOverrideOnMessage( if (!override.providerID || !override.modelID) { if (override.variant) { output.message["variant"] = override.variant - output.message["thinking"] = { ...ULTRAWORK_THINKING_CONFIG } } return } @@ -135,7 +133,6 @@ export function applyUltraworkModelOverrideOnMessage( output.message.model = targetModel if (override.variant) { output.message["variant"] = override.variant - output.message["thinking"] = { ...ULTRAWORK_THINKING_CONFIG } } return }