From 040ae5675a8098d7ccc6dad4d49f095073dd1d88 Mon Sep 17 00:00:00 2001 From: yetone Date: Sun, 4 Oct 2026 18:32:29 +0800 Subject: [PATCH] =?UTF-8?q?factory:=20requests=20say=20droid=200.233.0,=20?= =?UTF-8?q?the=20current=20release,=20and=20moved=20users=20get=20plugin?= =?UTF-8?q?=200.1.16,=20which=20does=20the=20same=20(Discord,=20JL=20on=20?= =?UTF-8?q?magpie=200.1.824=20with=20plugin=200.1.15:=20every=20model=20a?= =?UTF-8?q?=20403=20"Factory:=20Forbidden"=20from=20pi=20and=20Claude=20Co?= =?UTF-8?q?de,=20while=20droid=20itself=20works)=20=E2=80=94=20droid=200.2?= =?UTF-8?q?33.0's=20model=20requests=20have=20the=20headers,=20paths=20and?= =?UTF-8?q?=20body=20shape=20of=200.231.0's=20but=20for=20the=20version=20?= =?UTF-8?q?(X-Client-Version,=20User-Agent=20factory-cli/),=20and=20i?= =?UTF-8?q?ts=20binary=20reads=20a=20server-side=20min=5Fcli=5Fversion;=20?= =?UTF-8?q?magpie=20and=20the=20plugin=20said=200.231.0,=20two=20releases?= =?UTF-8?q?=20behind.=20That=20Factory=20refuses=20an=20old=20version=20wi?= =?UTF-8?q?th=20a=20403=20is=20not=20confirmed=20(no=20Factory=20account?= =?UTF-8?q?=20to=20try=20with);=20it=20is=20the=20one=20difference=20found?= =?UTF-8?q?.=20The=20mover's=20min=20is=200.1.16=20(published=20on=20npm),?= =?UTF-8?q?=20so=20keepMovedCurrent=20updates=20moved=20users.=20go=20vet,?= =?UTF-8?q?=20builds=20(darwin,=20GOOS=3Dlinux,=20GOOS=3Dwindows)=20and=20?= =?UTF-8?q?go=20test=20-tags=20nogui=20-count=3D1=20./...=20under=20a=20te?= =?UTF-8?q?mp=20HOME=20pass.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/provider/factory.go | 2 +- internal/provider/factory_client_test.go | 2 +- internal/provider/migrate_factory.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/provider/factory.go b/internal/provider/factory.go index 35c43f5f..a8fb0450 100644 --- a/internal/provider/factory.go +++ b/internal/provider/factory.go @@ -66,7 +66,7 @@ const ( // factoryClientID is droid's WorkOS client, production. factoryClientID = "client_01HNM792M5G5G1A2THWPXKFMXB" // factoryVersion is the droid release magpie's requests say they are. - factoryVersion = "0.231.0" + factoryVersion = "0.233.0" // factoryRefreshLead is how long before an access token lapses it is // renewed; droid renews a minute ahead, magpie a little more. factoryRefreshLead = 2 * time.Minute diff --git a/internal/provider/factory_client_test.go b/internal/provider/factory_client_test.go index bf89f671..dc371662 100644 --- a/internal/provider/factory_client_test.go +++ b/internal/provider/factory_client_test.go @@ -185,7 +185,7 @@ func TestFactoryGLMFlashImages(t *testing.T) { if m, ok := factoryModelOf("glm-5.3-flash"); !ok || !m.images { t.Errorf("glm-5.3-flash: %+v", m) } - if factoryVersion != "0.231.0" { + if factoryVersion != "0.233.0" { t.Errorf("factoryVersion %s", factoryVersion) } if m, ok := factoryModelOf("gemini-3.1-pro-preview"); !ok || m.api != Gemini || m.upstream != "google" || factoryCore("gemini-3.1-pro-preview") { diff --git a/internal/provider/migrate_factory.go b/internal/provider/migrate_factory.go index 29a9b15e..426e7b58 100644 --- a/internal/provider/migrate_factory.go +++ b/internal/provider/migrate_factory.go @@ -13,7 +13,7 @@ import ( func init() { movers["factory"] = &mover{ pkg: "@magpie-community/opencode-factory-auth", - min: "0.1.14", // Claude Code 2.1.288's runtime context as a system message of text blocks (#658); a tool whose input_schema has anyOf/oneOf/allOf at its root (Codex's automation_update) wrapped for Claude models (#646); a failure's status and its sign-in mark as the built-in's; Claude 5's system-role metadata as Factory takes it; Claude Code's standalone model-switch system updates; tool results quoting Claude Code's fixed phrases, and Claude Code's directory updates carrying a model; the sign-in renewed ahead of time through auth.refresh; Claude Code with a global CLAUDE.md or a SessionStart hook, and Claude Desktop's model line (#634) + min: "0.1.16", // requests saying droid 0.233.0 (JL: every model 403); Claude Code 2.1.288's runtime context as a system message of text blocks (#658); a tool whose input_schema has anyOf/oneOf/allOf at its root (Codex's automation_update) wrapped for Claude models (#646); a failure's status and its sign-in mark as the built-in's; Claude 5's system-role metadata as Factory takes it; Claude Code's standalone model-switch system updates; tool results quoting Claude Code's fixed phrases, and Claude Code's directory updates carrying a model; the sign-in renewed ahead of time through auth.refresh; Claude Code with a global CLAUDE.md or a SessionStart hook, and Claude Desktop's model line (#634) agents: []string{"factory"}, out: func() ([]Moving, error) { ls := factoryLogins()