v3.0.0b7
Pre-release
Pre-release
v3.0.0b7 (2026-03-23)
Fixed
- Orphaned tool_calls cause 400 on strict upstreams: Fixed via
fix_orphaned_tool_calls()from llm-rosetta — applied in both passthrough and cross-format paths for all three strict-pairing providers (OpenAI Chat, OpenAI Responses, Anthropic) - Missing
userfield in cross-format requests: Now injected automatically in both streaming and non-streaming conversion paths - Google GenAI SDK auth via
x-goog-api-keyheader: Now supported alongsideAuthorization: Bearer,x-api-key, and?key=query parameter - aiohttp 3.12 startup crash: Removed deprecated
tcp_nodelayparameter fromOptimizedHTTPSession
Changed
- Bumped llm-rosetta to v0.2.5: Picks up full-stack Google GenAI camelCase support, cross-format image passthrough fixes, tool_call_id reconciliation,
input_schematype default for parameterless tools, and built-in tool handling - Refactored
dispatch.py: Merged 4 identical SSE formatters into 2, extracted_write_sse_chunks()/_ensure_user_field()helpers, defined_STREAMING_HEADERSconstant - Modernized typing imports: Replaced
typing.List,Dict,Tuple,Setwith Python 3.10+ built-in generics via ruff UP006 - Added ruff and ty configuration to
pyproject.toml - Fixed 35 ty type-check diagnostics
- Cleaned up
performance.py: Removedoptimize_event_loop(), fake tqdm progress bar, CPU-based connection scaling (-80 lines)
Full changelog: https://github.com/Oaklight/argo-proxy/blob/master/docs_en/docs/changelog.md