Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 07:21
· 774 commits to main since this release

OpenProxy v0.2.0 — Full 9router v0.5.30 Parity

101 beads closed. This release brings OpenProxy to complete feature parity with 9router v0.5.30, adding Grok CLI support, dual-transport routing, thinking-mode suffix handling, and vertex-partner dispatch.


🚀 Highlights

Grok CLI Executor (P0)

  • New GrokCliExecutor targeting cli-chat-proxy.grok.com/v1/responses (Responses API)
  • Responses API allowlist, effort suffix strip, tool normalization, server-ID strip
  • Custom headers: x-xai-token-auth, x-grok-client-*, turn/session/machine IDs
  • Aliases: grok-cli, gcli, gb, grok-build

Dual Transport for Xiaomi Providers (P1)

  • xiaomi-tokenplan: region host (sgp/cn/ams) + Claude native /anthropic/v1/messages path
  • xiaomi-mimo: OpenAI + Claude endpoints via resolve_transport table
  • x-api-key auth for Claude native transport

Vertex-Partner Dispatch

  • Vertex partner routing wired into the chat dispatch pipeline
  • Full credential merge with expires_at tracking and OAuth refresh parity

Global Thinking Suffix Strip (P2)

  • New thinking_suffix.rs — strips (high), -high, and plain thinking suffixes
  • level_to_budget mapping matching 9router LEVEL_TO_BUDGET (low=1024 → max=128000)
  • Applied automatically for all providers in RequestPlan::new

🔧 Chat Pipeline Improvements

  • forceStream + SSE→JSON aggregation path
  • DeepSeek-TUI: force non-stream only when stream !== true
  • providerThinking injection on source body before translate
  • Accept-header stream preference parity with 9router
  • GitHub /responses escalation for Codex-class models
  • Cursor api2.cursor.sh + forceAgentMode for Claude Code UA
  • Codex force-stream + effort suffix strip

🔄 Combo & Fallback

  • RR autoswitch after rotation (matches 9router order)
  • Fusion straggler grace timer via tokio::select!
  • Nested comboStrategies schema (legacy string + object support)
  • Selective model-lock clear on success (clear_connection_error_for_model)

🛡️ OAuth & Auth

  • should_refresh_credentials with configurable lead times + Codex 8d max refresh age
  • Kiro external_idp + Vertex SA mint
  • Full mergeRefreshedCredentials implementation

🌐 Translator

  • Direct source:target route lookup (not only OpenAI pivot)
  • Response intermediate-hop chaining
  • Missing response pairs registered

✅ Tests & Docs

  • 13 new unit tests for Grok CLI, thinking suffix, and transports
  • Full parity-smoke.sh harness green
  • New docs/parity-9router.md: pipeline, dispatch matrix, intentional divergences

📦 Binaries

Platform Arch
macOS aarch64, x86_64
Linux aarch64, x86_64
Windows x86_64

SHA256 checksums included in release assets.

Full Changelog: v0.1.2...v0.2.0