From 275cd5a493f7bb3287899edf224905c4db9dc333 Mon Sep 17 00:00:00 2001 From: local-patch Date: Sat, 29 Aug 2026 19:09:06 +0000 Subject: [PATCH] Fix GPT-5.6 gate: identify as devin-desktop, not windsurf With ide=windsurf, GetChatMessage rejects every GPT-5.6 variant with 'This model is only in Devin Local.' Switching the client identity to devin-desktop makes the server serve them; response-header wire echo confirms the exact model (gpt-5-6-sol-high -> 'GPT-5.6 Sol High Thinking'). Unknown UIDs still hard-error, so there is no silent fallback. --- src/metadata.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/metadata.ts b/src/metadata.ts index 8809b3a..e85af18 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -7,10 +7,11 @@ import { } from "./wire.js"; /** - * Cognition version-gates GetChatMessage against a known Windsurf/Devin Desktop - * release. The Devin CLI build id (`3000.4.25`) is not that string and the - * server answers: "Your Windsurf version is out of date." - * Prefer the installed Devin.app product.json, then a current desktop release. + * Cognition gates Devin Local-only models (every GPT-5.6 variant: Sol, Terra, + * Luna) by client ide name. With ide="windsurf" GetChatMessage rejects them + * with "This model is only in Devin Local."; with ide="devin-desktop" the + * server serves them and the response header echoes the exact model + * (verified: "GPT-5.6 Sol High Thinking" for gpt-5-6-sol-high, 2026-08-29). */ const FALLBACK_WINDSURF_VERSION = "3.6.27"; const PRODUCT_JSON = @@ -29,7 +30,7 @@ function desktopWindsurfVersion(): string { } export const CLIENT_VERSION = desktopWindsurfVersion(); -export const CLIENT_IDE = "windsurf"; +export const CLIENT_IDE = "devin-desktop"; export interface MetadataInput { apiKey: string;