- Handle apply_patch custom tool call streaming deltas and snapshots for Responses API translation
- Track and resolve step indexes, function call identities, and error states across stream events
- Propagate apply_patch tool input errors and upstream failure states in stream and non-stream responses
xAI raised the minimum accepted x-grok-client-version on
cli-chat-proxy.grok.com, so every xAI OAuth chat request through the CLI
chat-proxy failed with HTTP 426 ("Your Grok CLI version (0.2.120) is
outdated"). /v1/models is not gated, so discovery looked healthy while
inference was dead.
Bump the pin to the current stable Grok CLI version (1.0.44) and record
the observed server floor in the constant's comment. Both
x-grok-client-version and the derived User-Agent ship from this one
constant.
Regression tests lock three things: the pinned version meets the known
server floor (red against 0.2.120), the two identity headers stay
derived from the same constant, and the per-auth `header:*` custom
header override still wins over the pin - the documented operator
escape hatch when xAI ratchets the floor again.
Closes#6249
Generated-by: GLM-5.3-Flash (ZCode)
- Pass target executor identity during Codex token counting and xAI request translation
- Skip tool integer normalization when target executor is Codex during compatibility translation
- Preserve number types in tool parameter schemas during token counting requests
- Return Bad Gateway error when Codex upstream stream closes before emitting any payload
- Allow failover to subsequent credentials on premature stream disconnect before output
- Map HTTP 408 Request Timeout status to server_error in base error response handlers
Closes: #6247
- Skip normalizing tool parameter number types to integer when the target executor is Codex or Codex WebSocket
- Remove tool integer type normalization from schema cleanup in native Codex execution paths to preserve reserved tool schemas
- Apply tool integer type normalization only for non-Codex upstream targets with Codex client User-Agents
Closes: #6244
- Select HTTP/2 or HTTP/1.1 transport dynamically based on TLS ALPN negotiation
- Route empty ALPN and HTTP/1.1 requests through a dedicated non-pooled transport reusing the handshaken connection
- Ensure uTLS connections are cleanly closed upon response completion or request failure
Closes: #6223
- Defer intervening non-tool messages until all batch tool outputs are emitted to keep outputs contiguous
- Apply responses input normalization across standard and streaming executor execution paths
Closes: #6231
- Defer plugin load marking until status push finalization
- Allow home config worker to dequeue and apply the latest queued payload during retry loops
Closes: #6225
- Detect Codex client requests via User-Agent and convert target numeric parameters to integer types
- Support schemas across OpenAI functions, Claude input schema, Gemini declarations, and namespace tools
- Apply normalization during executor payload processing, multi-agent request translation, and WebSocket streaming
Closes: #6237
- Enable multi-agent input rewriting when model compatibility mode is active, even if `optimize-multi-agent-v2` is disabled
- Ensure `agent_message` items are converted into portable user messages for third-party endpoints under API key configurations
Closes: #6233
- Map OpenAI Responses tool identities to valid Claude tool names within the 64-character limit
- Resolve naming collisions and truncate long tool names using deterministic SHA-256 hashes
- Maintain bidirectional tool mapping across declarations, tool choices, history, and response decoding
Closes: #6209
- Forward unmapped Claude OAuth MCP tool aliases unchanged instead of returning an error
- Log a warning when no request-local tool match is found to prevent stream termination
Closes: #6208
- Translate `response.failed` and `interaction.failed` events across Claude, Gemini, OpenAI Chat, and Responses formats
- Lazily emit `interaction.created` in Devin executor to allow clean HTTP error status propagation on immediate
Closes: #6204
- Track auto-refresh jobs with registration epochs to prevent stale or phantom pending states
- Enforce bounded timeouts for Antigravity token refresh and project discovery
- Manage Antigravity credits refresh tasks with epoch validation and lifecycle cancellation
Closes: #6199
- Log warning when credential persistence fails during registration, update, or refresh
- Add `auth_id` to log field ordering and quoted fields
Closes: #6197
- Add `Path` field to model execution requests and plugin interceptor responses
- Propagate custom request paths through execution metadata
- Allow image models during execution when entry or exit protocol is `openai-image`
Closes: #6196
- Insert the most recent thinking block between assistant web search tool results and subsequent tool use parts
- Prevent upstream rejection when tool use immediately follows server tool results
Closes: #6195
- Add `isClaudeSonnet55Model` helper and prevent Sonnet 5 matching on Sonnet 5.5 prefixes
- Include Claude Sonnet 5.5 in progress display checks
Closes: #6193
- Preserve explicit `output_config.effort` when `thinking.type` is enabled without budget tokens
- Map output config effort to reasoning effort when translating Claude requests to OpenAI
Closes: #6183
- Add `oauth-settings` configuration to override model capabilities such as `max-context-length`
- Implement sanitization, YAML preservation, and live reload diff detection for OAuth settings
- Apply OAuth model settings during model resolution and Codex model list responses
Closes: #6099
- Generate UUIDv7 request IDs using crypto random source
- Add `ShortRequestID` helper to truncate IDs to 8 trailing characters in log output and filenames
- Update management log handlers to match log files using short request IDs
Use Home credential options as authoritative model capability
configuration for compat handling and prompt cache behavior.
Expose quota provider operations through the public plugin host API.
- Extract `plan_type` from JWT claims and default missing values to `free`
- Include `plan_type` in token data, token storage, auth attributes, and file synthesis
- Ensure `plan_type` is maintained across token refresh flows
- Preserve empty map allocations during auth object cloning
- Rewrite `tool.name` of mid-conversation `tool_addition`/`tool_removal` blocks with a `tool_reference` to the same MCP alias as `tools[]`
- Rewrite `tool.definition.name` of inline `tool_definition` additions that redefine a declared custom tool
- Apply the same rewrite in the batched-edits and legacy remap paths
- Prevent upstream `references unknown tool` 400s for cloaked requests using mid-conversation tool changes
Closes: #6174
- Include `bond` interface prefix in physical LAN interface detection
- Suppress repetitive discovery service spec build failure warnings until error message or configuration changes
- Preserve thought signatures across function calls, thought steps, and trailing empty text parts
- Track pending signatures and model turn context when constructing Gemini request contents
- Support extracting thought steps from response parts with thought signatures during response conversion
Closes: #6150
- Update namespace qualification check to require an exact match or explicit delimiter prefix
- Prevent tools sharing a name prefix with a namespace from skipping qualification
Closes: #6160
- Parse and pass `quality` in xAI image generation and edit requests
- Extract `quality` field from JSON payloads and multipart form data
- Include `quality` in the upstream xAI image request payload when provided
Closes: #6157
- Add `SanitizeMetaWebSearchTools` to remove `search_content_types` from `web_search` tool definitions
- Support sanitizing nested tools within `namespace` tool definitions
- Apply web search tool sanitization during Meta request preparation
Closes: #6156
- Emit warnings when unrecognized configuration sections are commented out during v8 migration
- Mirror migration warnings directly to the console when file logging is active
- Provide a hook in the configuration package to customize migration warning dispatching
Closes: #6162