fix(conversations): compute has_more and support cursor pagination in list_items#5612
Open
vamsi-01 wants to merge 1 commit intoogx-ai:mainfrom
Open
fix(conversations): compute has_more and support cursor pagination in list_items#5612vamsi-01 wants to merge 1 commit intoogx-ai:mainfrom
vamsi-01 wants to merge 1 commit intoogx-ai:mainfrom
Conversation
… list_items The Conversations list items API hardcoded has_more=False and ignored the after cursor parameter, which broke client-side paginators like the OpenAI Agents SDK when a conversation had more items than the default limit of 20. Delegate ordering, cursor filtering, and limit to the sqlstore's fetch_all method (which uses limit+1 to determine has_more), matching the existing pattern in responses_store. Wire through the after cursor from ListItemsRequest so clients can paginate through all items. Closes: ogx-ai#5611 Signed-off-by: Vamsi Mathala <vmathala@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.
What does this PR do?
The Conversations list items API hardcoded
has_more=Falseand ignored theaftercursor parameter, which broke client-side paginators (e.g. OpenAI Agents SDK) when a conversation had more items than the default limit of 20. This meant users could silently lose conversation history beyond the first page.The fix delegates ordering, cursor filtering, and limit to the sqlstore's
fetch_allmethod (which uses thelimit+1pattern to determinehas_more), matching the existing pattern used byresponses_store. Theaftercursor fromListItemsRequestis now wired through so clients can paginate through all items.Closes #5611
Test Plan
Added two unit tests covering the fix:
test_list_items_has_more_pagination, verifieshas_more=Truewhen items exceed limit, andFalsewhen they don't.test_list_items_cursor_pagination, verifies multi-page cursor-based pagination produces non-overlapping pages covering all items.All existing tests continue to pass (19 conversation tests, 11 responses-conversation tests).
Output:
End-to-end verification with 25 items (more than the default limit of 20):