- Map local shell tool declarations and tool choice to synthetic function calls
- Normalize shell call and output history items into chat completion tool messages
- Convert upstream tool calls back to `shell_call` output items in stream and non-stream responses
- Validate shell action arguments and handle invalid input errors
Closes: #4812
- Add integer field paths for memories, history, notes, web, and collaboration tool schemas
- Support nested property paths and union types in parameter schema normalization
Closes: #6255
- Emit `response.reasoning_summary_part.added` event on reasoning item initialization
- Include `item_id` and `summary_index` in reasoning summary text delta events
- Emit summary text done and part done events upon thought step completion
- Consolidate reasoning summaries into a single completed summary block
Closes#6309
- Allow early content streaming for OpenAI formats while preserving ordering behind queued tools
- Defer thought step termination and accumulate signature fragments for OpenAI Responses format
- Flush deferred reasoning step stops when closing open stream steps
Closes: #6306
- Add ASCII pre-filter to skip expensive gjson traversals for title helper and 1h TTL checks
- Check raw bytes for target keywords before initiating full JSON walks
- Fall back to full inspection when printable ASCII Unicode escapes are detected
Closes: #6291
- Retain `web_search_call.action.sources` alongside `reasoning.encrypted_content` in Codex request include field
- Avoid payload re-encoding when include array is already normalized
Closes: #6251
- Map Claude `pause_turn` stop reason to incomplete status with null incomplete details
- Switch stop reason evaluation to normalized lowercase matching
Closes: #6250
- Avoid retrying Claude token refresh on ambiguous transport or decoding errors to protect single-use tokens
- Block selection and unschedule refresh for credentials when both access token is rejected and refresh encounters `invalid_grant`
- Prevent in-flight request completions or cooldown clears from reviving terminal unauthorized credentials
- Allow manual force refresh to bypass terminal unauthorized checks
Closes: #6288
- Synthesize and populate live `auth_index` attributes into V8 `api-keys` responses
- Strip transient `auth_index` and `auth-index` fields from incoming update payloads and root nodes before persistence
- Ensure `auth_index` keys are omitted during V8 config transformations
Closes: #6287
- Pin local date to continuity context on the first request of a session
- Reuse pinned session date during cloaked date injection across execute and stream flows
- Prevent midnight calendar date flips from invalidating conversation prompt cache prefixes
Closes: #6282
- Retain `freeform` apply_patch tool type for native template models when `enable-apply-patch` is false
- Update client configuration documentation for `client.codex.enable-apply-patch`
Closes: #6286
- Add `MethodHostRoutingResetCooldown` RPC callback to plugin ABI and host dispatcher
- Introduce `HostRoutingResetCooldownRequest` and `HostRoutingResetCooldownResponse` in plugin API
- Reset credential quota and cooldown routing state in memory without persisting to token files
Closes: #6274
Accept historical v8 config paths and request bodies while saving the
latest canonical layout. Preserve comments on scalar updates and keep v0
saves from migrating legacy-only files unnecessarily.
Move shared Codex, Claude, and xAI provider options under upstream so
they apply consistently to OAuth and API-key credentials. Migrate
historical OAuth paths, preserve OAuth-only header scope, and expose the
new upstream management API path.
- Fall back to top-level token usage when Codex response usage contains only service tier metadata
- Propagate parsed service tier while retaining top-level token counts
- Avoid early return during stream usage observation for chunks with zero token counts
Closes: #6261
- Allow connection count slack for concurrent wave dials to prevent flakiness under load
- Assert strictly against unpooled worst case instead of fragile lower bounds on connection count
Closes: #6259
- Track cumulative usage snapshots from `usageMetadata` and `cpaUsageMetadata` across stream chunks
- Defer terminal response event emission until usage frames arrive or the stream ends
- Map `MAX_TOKENS` finish reason to `response.incomplete` status and incomplete output item states
Closes: #6258
* docs(readme): refresh provider models and add Muse Code and Devin
* docs(readme): update GPT-6.1 Sol and Claude Sonnet 5.5
---------
Co-authored-by: kdcokenny <kdcokenny@users.noreply.github.com>
- 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