feat: Add inspection and scroll paging - #57
Conversation
Claude-Session-Id: 01a03cbc-7182-7871-b339-13e6c1c4a005
Claude-Session-Id: aae36fe4-614d-49af-8aa3-6400d2a8c9ea
This change introduces OpenSearch scroll-based pagination as the default cursor mechanism, replacing the previous point-in-time (PIT) only approach. Key additions: - New `OpenScroll`, `ScrollNext`, and `ClearScroll` methods in the searcher for scroll lifecycle management - `ScrollRequest` and `ScrollPageRequest` types for scroll API calls - Refactored `SearchRaw` to use extracted `decodeSearchResponse` helper - `CursorEncoding` struct replaces `EncodeCursor` parameters for cleaner API - Cursor version bumped to 5; scroll context support added to cursor payload - Connection-level `paging_mode` property (scroll|pit) to select backend strategy - Updated conformance tests and walk implementations to support both paging modes - New inspection result rendering with cardinality, filter resolution, and paging metadata Scroll is now the default due to better consistency guarantees and simpler lifecycle management compared to PIT. Connections can explicitly select PIT mode via properties. Cursors validate that the paging mode hasn't changed between requests.(opensearch): add scroll-based paging as default cursor strategy
body: "Add Inspect action to profiles service that samples stored profiles and returns field metadata including cardinality and auto-filters. Improve reconciliation endpoint routing to extract profile names from /profiles/{name}/reconcile paths. Integrate devtools request recorder with reconciliation to track inspection metadata. New inspect_test.go validates that stored profiles are sampled instead of accepting replacement documents."(api): add profile inspection action with reconciliation request tracking
Gavel summary
Totals: 0 passed · 0 failed · 1 skipped · - |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (73)
WalkthroughThis PR adds inspect actions for connections and profiles, request sorting for pageable profiles, OpenSearch scroll paging with configurable paging mode, reconcile request capture in devtools, and related schema, rendering, UI, and test updates. ChangesInspection, sorting, paging, and reconcile updates
Sequence Diagram(s)sequenceDiagram
participant UI as ProfileInspectButton
participant Service as profiles Service.Inspect
participant Store as profile store
participant Query as query.Sample
UI->>Service: run inspect action
Service->>Store: load named profile
Store-->>Service: profile
Service->>Query: sample with params and refresh
Query-->>Service: InspectionResult
Service-->>UI: inspect response
sequenceDiagram
participant Client
participant Provider as openSearchWalk
participant Searcher as opensearch.Searcher
participant OpenSearch
Client->>Provider: request first page
Provider->>Searcher: OpenScroll
Searcher->>OpenSearch: search with scroll
OpenSearch-->>Searcher: hits + _scroll_id
Searcher-->>Provider: response
Client->>Provider: request next page with cursor
Provider->>Searcher: ScrollNext
Searcher->>OpenSearch: _search/scroll
OpenSearch-->>Searcher: next hits + _scroll_id
Provider->>Searcher: ClearScroll when done
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
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 |
Gavel summary
Totals: 121 passed · 0 failed · 0 skipped · 493ms |
Gavel summary
Totals: 2828 passed · 0 failed · 19 skipped · 46.7s |
What
Notes
Summary by CodeRabbit