mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
The `openai-responses` client sent the session-affinity header as `session_id`. Proxies such as nginx with `underscores_in_headers off` silently drop headers with underscores, and Envoy can be configured to reject them. Codex now sends `session-id`, and the `openai-codex-responses` path already followed it (#4967). With the default `openai` session-affinity format, `openai-responses` now sends `session-id`. `x-client-request-id` and `prompt_cache_key` are unchanged. The `openai-nosession` and `openrouter` formats behave as before. The compat schema description for `sessionAffinityFormat` (`openai-responses`) and `docs/models-configuration.md` are updated to match. Not changed: `openai-completions` still sends `session_id`. I did not check whether xAI or other backends on the Responses API depend on the underscored name. Their `prompt_cache_key` is still sent, so prompt caching should not depend on the header. Testing: - `test/openai-responses-compat.test.ts` now captures `session-id`. It also checks that `session_id` is no longer sent, and the explicit-override test uses the new name. `test/xai-responses.test.ts` expects `session-id` and no `session_id`. - Without the source change, these tests fail (3 failures); with it, both files pass (50 tests). - `npm run check` passes. - The full `packages/ai` suite passes, except `generate-models-strict.test.ts`. That failure is unrelated: the test depends on live model catalog data. Fixes #11639 Requested by @badlogic Co-authored-by: triagent <triagent@localhost> |
||
|---|---|---|
| .. | ||
| agent | ||
| ai | ||
| chord | ||
| codemode | ||
| coding-agent | ||
| durable | ||
| env | ||
| evals | ||
| mcp | ||
| schema | ||
| telemetry | ||
| tui | ||