Conversation
Swap `openai_responses_format` for `openai_responses_request` in the nine example chains that classify only Responses traffic, so each create body is parsed once instead of twice. `responses-routing` also needed its `on_result` branch retargeted. A branch condition must name the filter it is attached to, because every other filter's results are cleared before it is evaluated, so the rename alone left a condition that could never match. Configuration validation rejects that at load rather than failing silently at runtime, which is how it surfaced. Chains left on the previous pair need more than a swap. Three use the classifier for Anthropic and Chat Completions traffic, which this filter does not handle, and the translation chains rewrite the path away from `/v1/responses` so the operation is no longer recognizable on re-entry. Signed-off-by: Charlie Doern <cdoern@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Progresses #741. Independent of #1374 — they touch disjoint files and neither needs the other.
Change
Swap
openai_responses_formatforopenai_responses_requestin the nine example chains that classify only Responses traffic, so each create body is parsed once rather than twice.Migrated:
response-store,response-store-postgres-mtls,responses-routing,vllm-agentic-api,doc-extract,file-resolve,model-rewrite,http-passthrough,mcp-outbound-chain.One chain needed more than a rename
responses-routingbranches on the classifier's published results. A branch condition must name the filter it is attached to, since every other filter's results are cleared before it is evaluated, so renaming the filter alone left a condition that could never match.Configuration validation rejects this at load with an explicit message rather than failing silently at runtime, which is how it surfaced:
Worth knowing for the chains still to migrate: a rename is not always sufficient, and the failure is loud rather than silent.
Not migrated, and why
Nineteen example chains still run the previous pair. They are not mechanical swaps:
unified-gateway,format-routing, andtime-to-first-tokenclassify Anthropic and Chat Completions bodies.openai_responses_requestrecognizes Responses operations only, so these need the Chat Completions registry work in feat(chat-completions): register operations for request-head classification #1048 rather than a swap./v1/responses, so head-based matching no longer recognizes the operation when the chain re-enters. That is a design problem, not a configuration one.Verification
Full integration suite: 754 passed. The 26 failures are all
examples::openai_agentic_loop, which fail identically on this machine without these changes and pass in CI; none are attributable to this change.Unit tests 4513 pass, 0 fail.
make lintpasses, including the lean build and generated-doc sync checks.Checklist
examples/configs/