From 83db457b1044c039304a8d0dbae287bb7d6aedcf Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 10 Jan 2026 11:03:34 +0800 Subject: [PATCH] refactor(proxy): disable OpenRouter compat mode by default and hide UI toggle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenRouter now natively supports Claude Code compatible API (/v1/messages), so format transformation (Anthropic ↔ OpenAI) is no longer needed by default. - Change default value from `true` to `false` in both frontend and backend - Hide the "OpenRouter Compatibility Mode" toggle in provider form - Users can still enable it manually by adding `"openrouter_compat_mode": true` in config JSON - Update unit tests to reflect new default behavior --- src-tauri/src/proxy/providers/claude.rs | 15 +++++++++++++-- src/components/providers/forms/ProviderForm.tsx | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/proxy/providers/claude.rs b/src-tauri/src/proxy/providers/claude.rs index 87a0d85c..04d4ec6f 100644 --- a/src-tauri/src/proxy/providers/claude.rs +++ b/src-tauri/src/proxy/providers/claude.rs @@ -62,7 +62,8 @@ impl ClaudeAdapter { let normalized = value.trim().to_lowercase(); normalized == "true" || normalized == "1" } - _ => true, + // OpenRouter now supports Claude Code compatible API, default to passthrough + _ => false, } } @@ -465,12 +466,22 @@ mod tests { })); assert!(!adapter.needs_transform(&anthropic_provider)); + // OpenRouter provider without explicit setting now defaults to passthrough (no transform) let openrouter_provider = create_provider(json!({ "env": { "ANTHROPIC_BASE_URL": "https://openrouter.ai/api" } })); - assert!(adapter.needs_transform(&openrouter_provider)); + assert!(!adapter.needs_transform(&openrouter_provider)); + + // OpenRouter provider with explicit compat mode enabled should transform + let openrouter_enabled = create_provider(json!({ + "env": { + "ANTHROPIC_BASE_URL": "https://openrouter.ai/api" + }, + "openrouter_compat_mode": true + })); + assert!(adapter.needs_transform(&openrouter_enabled)); let openrouter_disabled = create_provider(json!({ "env": { diff --git a/src/components/providers/forms/ProviderForm.tsx b/src/components/providers/forms/ProviderForm.tsx index 51436774..cb97473d 100644 --- a/src/components/providers/forms/ProviderForm.tsx +++ b/src/components/providers/forms/ProviderForm.tsx @@ -236,7 +236,7 @@ export function ProviderForm({ } catch { // ignore } - return true; + return false; // OpenRouter now supports Claude Code compatible API, no need for transform }, [isOpenRouterProvider, settingsConfigValue]); const handleOpenRouterCompatChange = useCallback( @@ -864,7 +864,7 @@ export function ProviderForm({ defaultOpusModel={defaultOpusModel} onModelChange={handleModelChange} speedTestEndpoints={speedTestEndpoints} - showOpenRouterCompatToggle={isOpenRouterProvider} + showOpenRouterCompatToggle={false} openRouterCompatEnabled={openRouterCompatEnabled} onOpenRouterCompatChange={handleOpenRouterCompatChange} />