Skip to content

Releases: massiveits/opencode-go-cliproxyapi

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:42
e8d3e36

What's Changed

Bug Fixes

  • Preserve Claude image tool results when routing to Chat Completions: retain images in an associated user message after tool replies, preserve text, tool references and error markers, and include images in session derivation. The selected upstream model must support image input.

Special thanks to @c0mm4nd in #16.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 09:03

What's Changed

Bug Fixes

  • Fix tool_result translation when receiving tool_reference content blocks from Claude clients (such as ToolSearch, web search, or web fetch in Claude Code), preventing 500 errors and conversation lockouts on Chat Completions and Responses models like DeepSeek.

Special thanks to @SpiGAndromeda in #14.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:11

CLIProxyAPI v8

Features

  • Support CLIProxyAPI v8 and its generic plugin quota API.
  • Return rolling, weekly, and monthly quotas for the credential selected by CLIProxyAPI.
  • Advertise the quota provider as OpenCode Go.
  • Remove the separate quota page and custom management routes.
  • Accept an optional name for each API key.
  • Use readable account labels and filenames instead of key digests.
  • Preserve existing auth IDs, custom labels, filenames, and host metadata.
  • Prevent duplicate auth records at cold start when readable filenames exist.
  • Reject invalid quota values and redact provider request errors.

Upgrade

  1. Upgrade CLIProxyAPI to v8.0.0 or later.
  2. Replace the plugin binary with the new build.
  3. Restart CLIProxyAPI.

The generic endpoints are GET /v0/management/quota/providers and POST /v0/management/quota/fetch.
Both require the management key. Quota reset is unsupported.

The management dashboard must support the generic quota API to show plugin refresh controls.
Older dashboard builds do not show these controls.

Existing credential files keep their names and stable IDs.
Set name: on an API key to choose its display label.
New files use readable names.

Special thanks to @darfink in #10.

What's Changed

Full OpenAI Codex CLI support across all models: multi-agent namespaces, custom programmatic tools (exec), tool call results, and reasoning efforts are fully functional.

Bug Fixes

  • Fix missing Responses stream item lifecycle completion events (output_text.done, content_part.done, function_call_arguments.done, output_item.done) prior to response.completed, resolving dropped assistant output and tool calls in OpenAI Codex CLI and strict Responses clients.
  • Fix handling of in-history messages with role: "system" across protocol adapters without rejecting them as unsupported roles or forwarding invalid turn roles to upstream providers that require alternating user/assistant turns.
  • Fix handling of multi-part content arrays in function_call_output.output under /v1/responses decoding.
  • Fix upstream HTTP >= 400 error propagation in streaming and non-streaming requests by reading and extracting the upstream error payload instead of discarding it with generic fallback errors.
  • Add two-way Responses tool namespace and additional_tools translation: merge dynamic declarations from input items (type: "additional_tools"), unroll client-side grouping tools (type: "namespace") into qualified wire names for upstream models, and restore original tool names and namespaces across non-streaming output and streaming SSE events for OpenAI Codex CLI and multi-agent harnesses.
  • Add Codex custom tool normalization and hosted tool dropping: rewrite generic custom tools (type: "custom", e.g. exec) into function tools with default object schemas, and drop client-only/hosted tools (apply_patch, web_search, web_search_preview, tool_search, image_generation) when routing to Chat Completions or Messages endpoints, resolving Codex CLI failures on models like space-bunny-free.
  • Add bidirectional support for custom_tool_call and custom_tool_call_output conversation items and outbound custom tool events: translate inbound custom tool calls and results across Chat Completions and Messages protocols, unwrap arguments into clean raw input, and restore custom_tool_call and response.custom_tool_call_input.done on outbound non-streaming and streaming responses, resolving Codex tool dispatch aborts on programmatic tools like exec.
  • Remove local reasoning effort validation across request translators: allow client-declared reasoning effort levels (e.g. xhigh, max, and unlisted levels) to pass through transparently to upstream endpoints without local gatekeeping in chatcompletions, responses, and messages adapters.
  • Normalize tools for non-GPT native Responses models: unroll namespaces, convert custom tools (exec) into function tools, and sanitize web_search definitions when targeting non-GPT Responses endpoints (e.g. muse-spark, grok), while preserving transparent passthrough for native GPT models (e.g. gpt-6-luna).
  • Restore custom tool calls across native Responses-to-Responses streaming and non-streaming adapters, ensure historical function_call arguments default to valid JSON via shared.DefaultArgs to resolve Muse Spark errors, drop compaction input items to fix Grok compaction blob decode failures, and expand UnwrapCustomToolInput to unwrap arguments, code, cmd, and command fields.
  • Drop historical reasoning input items for non-GPT Responses upstreams: resolve Grok HTTP 400 "Could not decode the compaction blob" decryption errors on multi-turn conversations caused by pooled account credential mismatches on encrypted reasoning blobs.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.9...v0.1.10

v0.1.10

Choose a tag to compare

@github-actions github-actions released this 02 Oct 07:36

What's Changed

Full OpenAI Codex CLI support across all models: multi-agent namespaces, custom programmatic tools (exec), tool call results, and reasoning efforts are fully functional.

Bug Fixes

  • Fix missing Responses stream item lifecycle completion events (output_text.done, content_part.done, function_call_arguments.done, output_item.done) prior to response.completed, resolving dropped assistant output and tool calls in OpenAI Codex CLI and strict Responses clients.
  • Fix handling of in-history messages with role: "system" across protocol adapters without rejecting them as unsupported roles or forwarding invalid turn roles to upstream providers that require alternating user/assistant turns.
  • Fix handling of multi-part content arrays in function_call_output.output under /v1/responses decoding.
  • Fix upstream HTTP >= 400 error propagation in streaming and non-streaming requests by reading and extracting the upstream error payload instead of discarding it with generic fallback errors.
  • Add two-way Responses tool namespace and additional_tools translation: merge dynamic declarations from input items (type: "additional_tools"), unroll client-side grouping tools (type: "namespace") into qualified wire names for upstream models, and restore original tool names and namespaces across non-streaming output and streaming SSE events for OpenAI Codex CLI and multi-agent harnesses.
  • Add Codex custom tool normalization and hosted tool dropping: rewrite generic custom tools (type: "custom", e.g. exec) into function tools with default object schemas, and drop client-only/hosted tools (apply_patch, web_search, web_search_preview, tool_search, image_generation) when routing to Chat Completions or Messages endpoints, resolving Codex CLI failures on models like space-bunny-free.
  • Add bidirectional support for custom_tool_call and custom_tool_call_output conversation items and outbound custom tool events: translate inbound custom tool calls and results across Chat Completions and Messages protocols, unwrap arguments into clean raw input, and restore custom_tool_call and response.custom_tool_call_input.done on outbound non-streaming and streaming responses, resolving Codex tool dispatch aborts on programmatic tools like exec.
  • Remove local reasoning effort validation across request translators: allow client-declared reasoning effort levels (e.g. xhigh, max, and unlisted levels) to pass through transparently to upstream endpoints without local gatekeeping in chatcompletions, responses, and messages adapters.
  • Normalize tools for non-GPT native Responses models: unroll namespaces, convert custom tools (exec) into function tools, and sanitize web_search definitions when targeting non-GPT Responses endpoints (e.g. muse-spark, grok), while preserving transparent passthrough for native GPT models (e.g. gpt-6-luna).
  • Restore custom tool calls across native Responses-to-Responses streaming and non-streaming adapters, ensure historical function_call arguments default to valid JSON via shared.DefaultArgs to resolve Muse Spark errors, drop compaction input items to fix Grok compaction blob decode failures, and expand UnwrapCustomToolInput to unwrap arguments, code, cmd, and command fields.
  • Drop historical reasoning input items for non-GPT Responses upstreams: resolve Grok HTTP 400 "Could not decode the compaction blob" decryption errors on multi-turn conversations caused by pooled account credential mismatches on encrypted reasoning blobs.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.9...v0.1.10

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 24 Sep 05:53

What's Changed

Features

  • Expose ConfigFields in plugin registration metadata, enabling interactive configuration editing in CLIProxyAPI Management Center for all plugin settings (api-keys, base-url, catalog-url, model-prefix, catalog, protocols, route-overrides, request-timeout, max-response-bytes, allow-http).
  • Add "Refresh All" button in quota page.

Bug Fixes

  • Normalize role: "developer" to role: "system" in the chat-completions adapter, preventing DeepSeek-backed models from rejecting valid client requests with HTTP 400 (#5). Thanks to @zlwu.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.8...v0.1.9

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 24 Sep 05:38

What's Changed

Bug Fixes

  • Infer type: "message" for role-bearing Responses input items when type is omitted or empty, preventing valid client requests from failing with HTTP 500 (#1). Thanks to @tangxijin.
  • Return HTTP 400 Bad Request instead of status 0 for client-fault errors (ClassUnsupported and ClassTranslation) in envelope error responses, preventing CLIProxyAPI from misclassifying caller input errors as credential faults and placing the provider in cooldown (#2). Thanks to @tangxijin.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.7...v0.1.8

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 13 Sep 18:25

What's Changed

  • Fix the OpenCode Go quota page on CLIProxyAPI v7.2.159+ where the new native POST /v0/management/plugins/:id/quota route intercepted the plugin's quota request before it reached the plugin. The plugin's quota data route is now /plugins/opencode-go-cliproxyapi/quota-usage; the Management Center menu and page URL are unchanged.
  • Thanks to @turnercore for the fix in #3.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 13 Sep 17:23

What's Changed

  • Fix HTTP 400 errors on DeepSeek models (deepseek-flash, deepseek-v4.1-flash, etc.) caused by OpenCode Go's backend rejecting untyped client reasoning metadata (such as thinking: { levels: [...] } sent by some OpenAI-compatible clients). Incoming /v1/chat/completions requests are now sanitized to strip untyped thinking metadata while preserving native reasoning_effort and valid Anthropic-style thinking objects.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 08 Sep 14:40

What's Changed

  • Use CPA canonical session ID (canonical_session_id) when present.
  • Fallback to inbound session headers or content-based hashing if the canonical session ID is missing.

Upgrade Notes

  • Replace the old plugin binary with the new release binary.
  • Restart CLIProxyAPI after replacing the plugin.
  • Hard-refresh Management Center if the plugin page looks stale.

Full Changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 05 Sep 16:21

Full Changelog: v0.1.3...v0.1.4