opencode-go hard-coded targetFormat: claude per model, so every client format was force-routed to /messages (Codex/OpenAI clients paid a lossy Responses->OpenAI->Claude double translation). Declare the existing upstream multi-endpoint transports [openai, claude, openai-responses] and guard per model via registry supportedFormats: kimi/glm/mimo only support /chat/completions, minimax/qwen add /messages, deepseek adds /responses. Undeclared models keep the upstream default. Drop the bespoke OpenCodeGoExecutor (its shared _lastModel cache could cross auth headers between concurrent requests); DefaultExecutor already consumes runtimeTransport and injects reasoning content.
4.3 KiB
4.3 KiB