Conversation
Collaborator
Integration test reportCommit: 8a99fb2
7 interesting tests: 7 flaky
Top 7 slowest tests (at least 2 minutes):
|
…e type VectorSearchIndexRemote embedded the raw vectorsearch.VectorIndex, whose delta_sync_index_spec is *DeltaSyncVectorIndexSpecResponse (with the output-only pipeline_id), while the state uses *DeltaSyncVectorIndexSpecRequest — so RemapState had to reshape it and the auto-copier could not. Mirror the state's shape instead: embed CreateVectorIndexRequest plus endpoint_uuid, and map the raw index into it in a new shared newVectorSearchIndexRemote constructor (used by DoRead, DoCreate, WaitAfterCreate). RemapState is now a plain field copy. The remote no longer carries output-only VectorIndex fields (status, creator, pipeline_id, endpoint_id); they were never compared for drift. Refschema and the recreate/with_endpoint golden regenerated to drop them from remote_state. Co-authored-by: Isaac <[email protected]>
Address review: the previous revision embedded only CreateVectorIndexRequest and dropped every Response-only field. Carry creator, endpoint_id, and status through as explicit remote fields so remote information is not discarded (refschema keeps them as REMOTE). delta_sync_index_spec stays *Request so the copier can copy it. The one field still not retained is delta_sync_index_spec.pipeline_id: it lives only on *DeltaSyncVectorIndexSpecResponse, and the remote's spec must be *Request for the whole-field copier to handle it. Retaining it there needs a nested subset-copy in the copier (structcopy), out of scope for this prep. Co-authored-by: Isaac <[email protected]>
denik
force-pushed
the
denik/vsi-remote-reshape-prep
branch
from
September 23, 2026 13:50
675ea2a to
8a99fb2
Compare
This branch has not been deployed
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.
Prep toward replacing hand-written
RemapStatewith the automatic copier.vector_search_indexes'RemapStatereshapeddelta_sync_index_specfrom*DeltaSyncVectorIndexSpecResponse(on the rawvectorsearch.VectorIndexthe remote embedded) to the*DeltaSyncVectorIndexSpecRequestthe state uses — the copier can't convert between those two SDK struct types (Response carries the output-onlypipeline_id).Fix: the remote embeds
CreateVectorIndexRequest(sodelta_sync_index_specis*Requestand the copier can copy it whole) and additionally carries the output-onlyVectorIndexfields —creator,endpoint_id,status— as explicit fields so remote information is not discarded. A new sharednewVectorSearchIndexRemoteconstructor (used byDoRead,DoCreate,WaitAfterCreate) maps the raw index in, doing theResponse→Requestspec mapping.RemapStateis now a plain copy of the embedded state struct +endpoint_uuid.Refschema keeps
creator/endpoint_id/status.*as REMOTE and unifiesdelta_sync_index_specto*Requestfor INPUT/STATE/REMOTE. Therecreate/with_endpointgolden is unchanged vs main (behavior-preserving).Known residual:
delta_sync_index_spec.pipeline_idis the one Response-only field not retained — it lives only on*Response, but the remote's spec must be*Requestfor the whole-field copier. Retaining it underdelta_sync_index_specwould require a nested subset-copy in the copier (structcopy), which is out of scope for this prep.Verified:
go build,go test ./bundle/direct/dresources/(round-trip + type tests),TestAccept/bundle/resources/vector_search_indexes(all variants), and./task generate-checkall pass.This pull request and its description were written by Isaac.