fix(api): Responses truncation auto|disabled and empty parallel_tool_calls omit no-ops - #571
Conversation
…_tool_calls as omit OpenAI SDKs often send truncation=auto on /v1/responses. Without previous_response_id or conversation this gateway has no multi-turn context, so auto|disabled are honest omit-equivalent no-ops; other values stay fail-closed with invalid_truncation (not unknown_fields). Also treat empty/whitespace-string parallel_tool_calls as omit no-ops on chat, Completions, and Responses (matching store/stream empty-string SDK controls), while true without tools remains fail-closed. HTTP honesty coverage for the new contracts; cumulative tip substrate from the reasoning_effort/store/stream head.
|
Important Review skippedToo many files! This PR contains 131 files, which is 31 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (131)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
718701c
into
feat/reasoning-effort-none-store-stream-empty-noop-http-honesty-20260814114817
Summary
truncation: "auto"|"disabled"(and whitespace-padded forms) as omit-equivalent no-ops. Withoutprevious_response_id/conversationthere is no multi-turn context to truncate; OpenAI SDKs often sendtruncation=auto.invalid_truncation(not opaqueunknown_fields).parallel_tool_callsas omit no-ops on chat Completions, legacy Completions, and Responses (SDK empty-string controls), matchingstore/streamempty-string honesty.parallel_tool_calls=truewithout tools remains fail-closed.Test plan
python tests/test_responses_truncation_parallel_empty_noop_http_honesty.pypython tests/test_responses_conversation_controls_http_honesty.pyNotes