From ac1e2bfd49c6520e14b8b4c8e4bc03a4edee8554 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 23 Nov 2025 22:40:15 -0800 Subject: [PATCH] bump copilot plugin, give better error message for copilot (#4678) --- packages/opencode/src/global/index.ts | 2 +- packages/opencode/src/plugin/index.ts | 2 +- packages/opencode/src/provider/transform.ts | 8 ++++++++ packages/opencode/src/session/message-v2.ts | 4 +++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/global/index.ts b/packages/opencode/src/global/index.ts index 3b4807066..e98b1628d 100644 --- a/packages/opencode/src/global/index.ts +++ b/packages/opencode/src/global/index.ts @@ -30,7 +30,7 @@ await Promise.all([ fs.mkdir(Global.Path.bin, { recursive: true }), ]) -const CACHE_VERSION = "10" +const CACHE_VERSION = "11" const version = await Bun.file(path.join(Global.Path.cache, "version")) .text() diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index ff07e68a7..7d1f50ec8 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -28,7 +28,7 @@ export namespace Plugin { } const plugins = [...(config.plugin ?? [])] if (!Flag.OPENCODE_DISABLE_DEFAULT_PLUGINS) { - plugins.push("opencode-copilot-auth@0.0.5") + plugins.push("opencode-copilot-auth@0.0.7") plugins.push("opencode-anthropic-auth@0.0.2") } for (let plugin of plugins) { diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index ad04f7ef8..6cf03fc06 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -272,4 +272,12 @@ export namespace ProviderTransform { return schema } + + export function error(providerID: string, message: string) { + if (providerID === "github-copilot" && message.includes("The requested model is not supported")) { + message += + "\n\nMake sure the model is enabled in your copilot settings: https://github.com/settings/copilot/features" + } + return message + } } diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 87cd77e12..c451ae2b3 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -8,6 +8,7 @@ import { LSP } from "../lsp" import { Snapshot } from "@/snapshot" import { fn } from "@/util/fn" import { Storage } from "@/storage/storage" +import { ProviderTransform } from "@/provider/transform" export namespace MessageV2 { export const OutputLengthError = NamedError.create("MessageOutputLengthError", z.object({})) @@ -737,9 +738,10 @@ export namespace MessageV2 { { cause: e }, ).toObject() case APICallError.isInstance(e): + const message = ProviderTransform.error(ctx.providerID, e.message) return new MessageV2.APIError( { - message: e.message, + message, statusCode: e.statusCode, isRetryable: e.isRetryable, responseHeaders: e.responseHeaders,