docs(TASK-044): document wire_api selection, defaults, and wire-aware patch migration

This commit is contained in:
Dark-Alex-17 committed 2026-09-16 13:21:10 -06:00
1 parent 3b66101361
commit 9e7c957a3d
2 files changed
+45

No files matched your search

+21
View File
@@ -1,3 +1,24 @@
## Unreleased
### BREAKING CHANGE
- The stock `openai` client (no custom `api_base`) now defaults to the OpenAI Responses API
(`/v1/responses`) instead of Chat Completions. Pin the old wire by adding `wire_api: chat` to the
client block. Openai clients with a custom `api_base` and `openai-compatible` clients still
default to `chat`; Codex OAuth always uses `responses` (`wire_api: chat` there is a config error).
- Request patches are now wire-aware and chat-keyed patches never apply to the responses wire: if
your stock openai client relied on `patch.chat_completions` blocks (or top-level model patches),
migrate them to the sibling `patch.responses` key / the model patch's `responses:` sub-key
(env override: `COYOTE_PATCH_<client>_RESPONSES`).
- Sessions saved after this change may contain the new `reasoning` thinking blocks (encrypted
reasoning items from the Responses API); older coyote binaries cannot load those sessions.
### Feat
- support `wire_api: responses | chat` on the openai and openai-compatible clients, with wire-aware request patching on both patch layers
- report token usage (including cached input tokens) on the openai responses path
- opting a third-party endpoint into `wire_api: responses` sends `include: ["reasoning.encrypted_content"]` and `"strict": false` tool definitions — strict `/v1/responses` servers may reject these as unknown params
## v0.10.3 (2026-09-15)
### Feat
+24
View File
@@ -290,4 +290,28 @@ sync_models_ttl_hours: 24 # Hours before the synced model catalog is cons
#
# The claude, bedrock, and vertexai clients also support:
# prompt_cache: true # Enable Anthropic prompt caching (default: true)
#
# The openai and openai-compatible clients also support:
# wire_api: responses # Which OpenAI wire protocol to use; Possible values: responses and chat
# # Defaults when unset: stock openai (no api_base) -> responses;
# # openai with a custom api_base -> chat; openai-compatible -> chat.
# # Codex OAuth always uses responses (`wire_api: chat` there is a config error)
#
# Patches are selected per wire: `chat_completions` patches only ever touch chat bodies. To patch
# requests on the responses wire, use the `responses` key on the client `patch` block (same
# <regex> -> url/body/headers shape as chat_completions):
# patch:
# responses:
# <regex>:
# body:
# <json>
# Model patches likewise: the top-level `patch` keys apply to the chat wire only, and a
# `responses:` sub-key applies to the responses wire only:
# models:
# - name: xxxx
# patch:
# responses:
# body:
# <json>
# Env override per wire: COYOTE_PATCH_<client>_RESPONSES / COYOTE_PATCH_<client>_CHAT_COMPLETIONS
__CLIENTS_BLOCK__