From fa976e5b93b3819f9e137fe08635764edee38290 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 25 Apr 2026 05:03:21 +0100 Subject: [PATCH] feat: update opencode-go default model Co-authored-by: masrlinu <5259918+masrlinu@users.noreply.github.com> --- CHANGELOG.md | 1 + docs/concepts/model-providers.md | 2 +- docs/providers/opencode-go.md | 4 ++-- docs/providers/opencode.md | 4 ++-- extensions/opencode-go/index.test.ts | 2 +- .../opencode-go/media-understanding-provider.test.ts | 2 +- .../opencode-go/media-understanding-provider.ts | 2 +- extensions/opencode-go/onboard.test.ts | 2 +- extensions/opencode-go/onboard.ts | 2 +- extensions/opencode-go/openclaw.plugin.json | 2 +- src/agents/model-selection.test.ts | 12 ++++++------ src/agents/tools/image-tool.test.ts | 6 +++--- src/commands/auth-choice.test.ts | 2 +- src/media-understanding/defaults.test.ts | 2 +- src/plugin-sdk/opencode.test.ts | 2 +- src/plugins/provider-model-defaults.ts | 2 +- 16 files changed, 25 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0490132c22..3cb770d256a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -91,6 +91,7 @@ Docs: https://docs.openclaw.ai - Docs/TTS: clarify that legacy flat TTS provider config blocks are repaired by `openclaw doctor --fix`, not accepted by strict runtime schema on load. Fixes #56220. - Plugins/OpenCode: strip unsupported disabled Responses reasoning payloads for OpenCode image understanding. Fixes #70252. - Plugins/OpenCode/OpenCode Go: register image understanding metadata so the image tool is available for OpenCode catalog models with vision support. Fixes #70482 and #61789. +- Plugins/OpenCode Go: update the default Go catalog model to `opencode-go/kimi-k2.6`. Thanks @masrlinu. - Providers/ElevenLabs: omit the MP3-only `Accept` header for PCM telephony synthesis, so Voice Call requests for `pcm_22050` no longer receive MP3 audio. Fixes #67340. Thanks @marcchabot. - Providers/MiniMax TTS: truncate fractional pitch overrides before sending T2A requests, matching MiniMax's integer pitch contract while preserving fractional speed and volume. Fixes #62144. - Providers/MiniMax TTS: transcode voice-note targets to Opus so Feishu/Telegram receive native voice messages instead of MP3 file attachments. Fixes #63540, #64134, and #70445. diff --git a/docs/concepts/model-providers.md b/docs/concepts/model-providers.md index b1d14b2cfe2..fa5fc768464 100644 --- a/docs/concepts/model-providers.md +++ b/docs/concepts/model-providers.md @@ -167,7 +167,7 @@ OpenClaw ships with the pi‑ai catalog. These providers require **no** - Auth: `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`) - Zen runtime provider: `opencode` - Go runtime provider: `opencode-go` -- Example models: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.5` +- Example models: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.6` - CLI: `openclaw onboard --auth-choice opencode-zen` or `openclaw onboard --auth-choice opencode-go` ```json5 diff --git a/docs/providers/opencode-go.md b/docs/providers/opencode-go.md index c6f5f88272a..5d033fba09c 100644 --- a/docs/providers/opencode-go.md +++ b/docs/providers/opencode-go.md @@ -48,7 +48,7 @@ As of the bundled pi catalog, the provider includes: ```bash - openclaw config set agents.defaults.model.primary "opencode-go/kimi-k2.5" + openclaw config set agents.defaults.model.primary "opencode-go/kimi-k2.6" ``` @@ -80,7 +80,7 @@ As of the bundled pi catalog, the provider includes: ```json5 { env: { OPENCODE_API_KEY: "YOUR_API_KEY_HERE" }, // pragma: allowlist secret - agents: { defaults: { model: { primary: "opencode-go/kimi-k2.5" } } }, + agents: { defaults: { model: { primary: "opencode-go/kimi-k2.6" } } }, } ``` diff --git a/docs/providers/opencode.md b/docs/providers/opencode.md index 92354be4258..fa952f505d2 100644 --- a/docs/providers/opencode.md +++ b/docs/providers/opencode.md @@ -66,7 +66,7 @@ as one OpenCode setup. ```bash - openclaw config set agents.defaults.model.primary "opencode-go/kimi-k2.5" + openclaw config set agents.defaults.model.primary "opencode-go/kimi-k2.6" ``` @@ -102,7 +102,7 @@ as one OpenCode setup. | Property | Value | | ---------------- | ------------------------------------------------------------------------ | | Runtime provider | `opencode-go` | -| Example models | `opencode-go/kimi-k2.5`, `opencode-go/glm-5`, `opencode-go/minimax-m2.5` | +| Example models | `opencode-go/kimi-k2.6`, `opencode-go/glm-5`, `opencode-go/minimax-m2.5` | ## Advanced configuration diff --git a/extensions/opencode-go/index.test.ts b/extensions/opencode-go/index.test.ts index 03530da0995..b0f2f50a24b 100644 --- a/extensions/opencode-go/index.test.ts +++ b/extensions/opencode-go/index.test.ts @@ -18,7 +18,7 @@ describe("opencode-go provider plugin", () => { expect.objectContaining({ id: "opencode-go", capabilities: ["image"], - defaultModels: { image: "kimi-k2.5" }, + defaultModels: { image: "kimi-k2.6" }, describeImage: expect.any(Function), describeImages: expect.any(Function), }), diff --git a/extensions/opencode-go/media-understanding-provider.test.ts b/extensions/opencode-go/media-understanding-provider.test.ts index a9b8078c548..f612ca919f6 100644 --- a/extensions/opencode-go/media-understanding-provider.test.ts +++ b/extensions/opencode-go/media-understanding-provider.test.ts @@ -7,7 +7,7 @@ describe("opencode-go media understanding provider", () => { expect.objectContaining({ id: "opencode-go", capabilities: ["image"], - defaultModels: { image: "kimi-k2.5" }, + defaultModels: { image: "kimi-k2.6" }, describeImage: expect.any(Function), describeImages: expect.any(Function), }), diff --git a/extensions/opencode-go/media-understanding-provider.ts b/extensions/opencode-go/media-understanding-provider.ts index e54d4a1cc70..85c2f2f3a87 100644 --- a/extensions/opencode-go/media-understanding-provider.ts +++ b/extensions/opencode-go/media-understanding-provider.ts @@ -8,7 +8,7 @@ export const opencodeGoMediaUnderstandingProvider: MediaUnderstandingProvider = id: "opencode-go", capabilities: ["image"], defaultModels: { - image: "kimi-k2.5", + image: "kimi-k2.6", }, describeImage: describeImageWithModel, describeImages: describeImagesWithModel, diff --git a/extensions/opencode-go/onboard.test.ts b/extensions/opencode-go/onboard.test.ts index 40316cfccdc..99300b779e2 100644 --- a/extensions/opencode-go/onboard.test.ts +++ b/extensions/opencode-go/onboard.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest"; import { expectProviderOnboardPrimaryAndFallbacks } from "../../test/helpers/plugins/provider-onboard.js"; import { applyOpencodeGoConfig, applyOpencodeGoProviderConfig } from "./onboard.js"; -const MODEL_REF = "opencode-go/kimi-k2.5"; +const MODEL_REF = "opencode-go/kimi-k2.6"; describe("opencode-go onboard", () => { it("leaves model aliases to the pi catalog", () => { diff --git a/extensions/opencode-go/onboard.ts b/extensions/opencode-go/onboard.ts index c54eaedbe39..55b08fea48a 100644 --- a/extensions/opencode-go/onboard.ts +++ b/extensions/opencode-go/onboard.ts @@ -3,7 +3,7 @@ import { type OpenClawConfig, } from "openclaw/plugin-sdk/provider-onboard"; -export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.5"; +export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.6"; export function applyOpencodeGoProviderConfig(cfg: OpenClawConfig): OpenClawConfig { return cfg; diff --git a/extensions/opencode-go/openclaw.plugin.json b/extensions/opencode-go/openclaw.plugin.json index a56ea76dd2a..757c455aae7 100644 --- a/extensions/opencode-go/openclaw.plugin.json +++ b/extensions/opencode-go/openclaw.plugin.json @@ -27,7 +27,7 @@ "opencode-go": { "capabilities": ["image"], "defaultModels": { - "image": "kimi-k2.5" + "image": "kimi-k2.6" } } }, diff --git a/src/agents/model-selection.test.ts b/src/agents/model-selection.test.ts index 801409c8364..57597e392cb 100644 --- a/src/agents/model-selection.test.ts +++ b/src/agents/model-selection.test.ts @@ -792,25 +792,25 @@ describe("model-selection", () => { defaults: { models: { "openai-codex/gpt-5.4": {}, - "opencode-go/kimi-k2.5": {}, + "opencode-go/kimi-k2.6": {}, "opencode-go/glm-5": {}, }, }, }, } as OpenClawConfig; - // When session default is openai-codex, switching to a bare "kimi-k2.5" - // should resolve to opencode-go/kimi-k2.5, not openai-codex/kimi-k2.5 + // When session default is openai-codex, switching to a bare "kimi-k2.6" + // should resolve to opencode-go/kimi-k2.6, not openai-codex/kimi-k2.6 const result = resolveAllowedModelRef({ cfg, catalog: [], - raw: "kimi-k2.5", + raw: "kimi-k2.6", defaultProvider: "openai-codex", // session's current provider }); expect(result).toEqual({ - key: "opencode-go/kimi-k2.5", - ref: { provider: "opencode-go", model: "kimi-k2.5" }, + key: "opencode-go/kimi-k2.6", + ref: { provider: "opencode-go", model: "kimi-k2.6" }, }); }); }); diff --git a/src/agents/tools/image-tool.test.ts b/src/agents/tools/image-tool.test.ts index c49cccd4b0d..571e0f41392 100644 --- a/src/agents/tools/image-tool.test.ts +++ b/src/agents/tools/image-tool.test.ts @@ -183,7 +183,7 @@ async function createOpenClawCodingToolsWithFreshModules(options?: CreateOpenCla ["minimax-portal", "MiniMax-VL-01"], ["openai", "gpt-5.4-mini"], ["opencode", "gpt-5-nano"], - ["opencode-go", "kimi-k2.5"], + ["opencode-go", "kimi-k2.6"], ["zai", "glm-4.6v"], ]); __testing.setProviderDepsForTest({ @@ -484,7 +484,7 @@ function installImageUnderstandingProviderStubs(...providers: MediaUnderstanding ["minimax-portal", "MiniMax-VL-01"], ["openai", "gpt-5.4-mini"], ["opencode", "gpt-5-nano"], - ["opencode-go", "kimi-k2.5"], + ["opencode-go", "kimi-k2.6"], ["zai", "glm-4.6v"], ]); __testing.setProviderDepsForTest({ @@ -717,7 +717,7 @@ describe("image tool implicit imageModel config", () => { agents: { defaults: { model: { primary: "opencode-go/kimi-k2.6" } } }, }; expect(resolveImageModelConfigForTool({ cfg, agentDir })).toEqual({ - primary: "opencode-go/kimi-k2.5", + primary: "opencode-go/kimi-k2.6", }); expect(createImageTool({ config: cfg, agentDir })).not.toBeNull(); }); diff --git a/src/commands/auth-choice.test.ts b/src/commands/auth-choice.test.ts index e778023e41b..ab3450d082d 100644 --- a/src/commands/auth-choice.test.ts +++ b/src/commands/auth-choice.test.ts @@ -517,7 +517,7 @@ async function createDefaultProviderPlugins(): Promise { envVar: "OPENCODE_API_KEY", promptMessage: "Enter OpenCode API key", profileIds: ["opencode-go:default", "opencode:default"], - defaultModel: "opencode-go/kimi-k2.5", + defaultModel: "opencode-go/kimi-k2.6", expectedProviders: ["opencode", "opencode-go"], noteMessage: "OpenCode uses one API key across the Zen and Go catalogs.", noteTitle: "OpenCode", diff --git a/src/media-understanding/defaults.test.ts b/src/media-understanding/defaults.test.ts index 5adbbded8e3..a570d0f08e2 100644 --- a/src/media-understanding/defaults.test.ts +++ b/src/media-understanding/defaults.test.ts @@ -29,7 +29,7 @@ describe("resolveDefaultMediaModel", () => { "gpt-5-nano", ); expect(resolveDefaultMediaModel({ providerId: "opencode-go", capability: "image" })).toBe( - "kimi-k2.5", + "kimi-k2.6", ); }); }); diff --git a/src/plugin-sdk/opencode.test.ts b/src/plugin-sdk/opencode.test.ts index 77f62167378..9dd7652662e 100644 --- a/src/plugin-sdk/opencode.test.ts +++ b/src/plugin-sdk/opencode.test.ts @@ -8,7 +8,7 @@ describe("createOpencodeCatalogApiKeyAuthMethod", () => { label: "OpenCode Go catalog", optionKey: "opencodeGoApiKey", flagName: "--opencode-go-api-key", - defaultModel: "opencode-go/kimi-k2.5", + defaultModel: "opencode-go/kimi-k2.6", applyConfig: (cfg) => cfg, noteMessage: "OpenCode uses one API key across the Zen and Go catalogs.", choiceId: "opencode-go", diff --git a/src/plugins/provider-model-defaults.ts b/src/plugins/provider-model-defaults.ts index 8cecb0b4ea5..65d6c0330df 100644 --- a/src/plugins/provider-model-defaults.ts +++ b/src/plugins/provider-model-defaults.ts @@ -15,7 +15,7 @@ export const OPENAI_DEFAULT_AUDIO_TRANSCRIPTION_MODEL = "gpt-4o-transcribe"; export const OPENAI_DEFAULT_EMBEDDING_MODEL = "text-embedding-3-small"; export const GOOGLE_GEMINI_DEFAULT_MODEL = "google/gemini-3.1-pro-preview"; export const OLLAMA_DEFAULT_BASE_URL = "http://127.0.0.1:11434"; -export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.5"; +export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.6"; export function applyGoogleGeminiModelDefault(cfg: OpenClawConfig): { next: OpenClawConfig;