From cddc2cf27cd02bf68eddb0e12483344476980d33 Mon Sep 17 00:00:00 2001 From: Vlad Ionescu Date: Wed, 27 May 2026 21:55:23 +0300 Subject: [PATCH] opencode: Model updates (#57792) Two model updates: - **Free**: Big Pickle now has a max output tokens of 32k as per https://github.com/anomalyco/models.dev/commit/49991c8f8f98eacb0ad66c7fad0e3b12a7465246 - **Go**: added Qwen3.7 Max as per https://github.com/anomalyco/models.dev/commit/4f1d5c511ae983024385e03f089b8e21e1eb4548 and https://github.com/anomalyco/opencode/commit/1554a5a82e32c30d2665ed6b59ebd33f79f9b9e3#diff-a7ee7cf35b40335095a44cfaac16041313c36322cd14544ddad0289ce69131ab. Tested this successfully by running a simple "_rename this variable for me. add a function. delete the function_" test Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [ ] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Release Notes: - OpenCode: updated models (added Qwen3.7 Max, updated Big Pickle token counts) --- crates/opencode/src/opencode.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/crates/opencode/src/opencode.rs b/crates/opencode/src/opencode.rs index ec4f927ec5..c34644eb68 100644 --- a/crates/opencode/src/opencode.rs +++ b/crates/opencode/src/opencode.rs @@ -149,6 +149,8 @@ pub enum Model { Qwen3_5Plus, #[serde(rename = "qwen3.6-plus")] Qwen3_6Plus, + #[serde(rename = "qwen3.7-max")] + Qwen3_7Max, // -- Custom model -- #[serde(rename = "custom")] @@ -201,7 +203,8 @@ impl Model { | Self::MimoV2_5Pro | Self::MimoV2_5 | Self::DeepSeekV4Pro - | Self::DeepSeekV4Flash => &[OpenCodeSubscription::Go], + | Self::DeepSeekV4Flash + | Self::Qwen3_7Max => &[OpenCodeSubscription::Go], // Free models Self::Nemotron3SuperFree | Self::BigPickle => &[OpenCodeSubscription::Free], @@ -260,6 +263,7 @@ impl Model { Self::MimoV2_5 => "mimo-v2.5", Self::Qwen3_5Plus => "qwen3.5-plus", Self::Qwen3_6Plus => "qwen3.6-plus", + Self::Qwen3_7Max => "qwen3.7-max", Self::BigPickle => "big-pickle", Self::Nemotron3SuperFree => "nemotron-3-super-free", @@ -313,6 +317,7 @@ impl Model { Self::MimoV2_5 => "MiMo V2.5", Self::Qwen3_5Plus => "Qwen3.5 Plus", Self::Qwen3_6Plus => "Qwen3.6 Plus", + Self::Qwen3_7Max => "Qwen3.7 Max", Self::BigPickle => "Big Pickle", Self::Nemotron3SuperFree => "Nemotron 3 Super Free", @@ -363,6 +368,8 @@ impl Model { Self::Gemini3_1Pro | Self::Gemini3Flash | Self::Gemini3_5Flash => ApiProtocol::Google, + Self::Qwen3_7Max => ApiProtocol::Anthropic, + Self::Glm5 | Self::Glm5_1 | Self::GrokBuild0_1 @@ -445,6 +452,7 @@ impl Model { Self::MimoV2_5Pro => 1_048_576, Self::MimoV2_5 => 1_000_000, Self::Qwen3_5Plus | Self::Qwen3_6Plus => 262_144, + Self::Qwen3_7Max => 1_000_000, Self::BigPickle => 200_000, Self::Nemotron3SuperFree => 204_800, Self::DeepSeekV4Pro | Self::DeepSeekV4Flash => 1_000_000, @@ -502,10 +510,10 @@ impl Model { Some(131_072) } } - Self::BigPickle => Some(128_000), + Self::BigPickle => Some(32_000), Self::KimiK2_6 | Self::KimiK2_5 => Some(65_536), Self::GrokBuild0_1 => Some(256_000), - Self::Qwen3_5Plus | Self::Qwen3_6Plus => Some(65_536), + Self::Qwen3_7Max | Self::Qwen3_6Plus | Self::Qwen3_5Plus => Some(65_536), Self::DeepSeekV4Pro | Self::DeepSeekV4Flash => Some(384_000), Self::Nemotron3SuperFree => Some(128_000), Self::MimoV2_5Pro | Self::MimoV2_5 => Some(128_000), @@ -572,6 +580,7 @@ impl Model { | Self::MimoV2_5Pro | Self::DeepSeekV4Pro | Self::DeepSeekV4Flash + | Self::Qwen3_7Max | Self::BigPickle | Self::Nemotron3SuperFree => false,