feat: complete file-search streaming and API compatibility - #284
Draft
franciscojavierarceo wants to merge 3 commits into
Draft
feat: complete file-search streaming and API compatibility#284franciscojavierarceo wants to merge 3 commits into
franciscojavierarceo wants to merge 3 commits into
Conversation
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
This was referenced Sep 11, 2026
Signed-off-by: Francisco Javier Arceo <farceo@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.
Summary
Integrate with main's
AgentPipelinerefactor (#274). Capture the initiating public tool choice on the request-owned pipeline, carry response metadata through per-round translation snapshots, and emit grounded citation events through the existing stream delivery and sequence numbering. Preserve the post-loop continuation settings used by persistence.Complete the Files/Vector Stores/file-search API stack with grounded
response.output_text.annotation.addedevents, consistent citation indexes and sequence numbers, required publictools,tool_choice, andparallel_tool_callsresponse fields, and Unicode character limits for metadata, attributes, and filters. Preserve the executor's existing continuation settings and stored item history.Preserve attachment identity through exact and pgvector retrieval, ranking, reranking, and deduplication. If an attachment is removed, replaced, or changes attributes while a model call is pending, the final search check validates the original chunk generation and current matching attributes. A valid duplicate retains its own current attributes and score. This applies to direct search and Responses file search.
Add a maintained OpenAI Python SDK 3.13.0 contract suite against the built server and local model fixtures, run the complete PostgreSQL integration set in CI, and document the compatibility matrix, ordered migrations, and worker shutdown bounds. Pin the new optional PDF dependency to AES 0.9.2 for the verified Rust 1.88 all-feature build.
Stack layer 7 of 7: #34 foundation → #278 pgvector/CI → #280 contextual retrieval/reranking/configuration → #281 streaming Files → #282 store lifecycle/content → #283 durable batches → this PR. Base:
codex/vector-store-batches. Review against the immediate base and land from the bottom of the stack.Compatibility covers the documented, exercised API contracts. Native
GET /v1/responses/{id}and full stored response snapshots remain unavailable. SDK 3.13.0 accepts documentedevalsrequests but omits that purpose from its response enum; that case has raw-wire coverage, while other SDK cases use strict validation. Hosted OpenAI ranking-model equivalence, guide-only filename filters, and exact hosted citation-index semantics are not claimed. Seedocs/api/file-search.mdfor the full matrix and resource limits.Test Plan
cargo +1.88.0 check --workspace --all-features --lockedpassed on the final source. All-feature tests and all-target workspace clippy passed on Rust 1.98. The existing dependency graph's mismatch with the declared Rust 1.85 policy is disclosed; this PR does not claim a 1.85 build.Independent layer reviews, the complete stack review, and the scoped
AgentPipelineintegration review are complete. Integration findings are addressed and re-reviewed, including the fixture migration for request-authoritative tool choice. All local gates above passed after synchronization with #274. GitHub CI is rerunning for updated head33effed; previous green checks apply to the prior revisions.