fix(pagination): document list contract and harden SDK pagers - #3279
Open
gmenher wants to merge 1 commit into
Open
fix(pagination): document list contract and harden SDK pagers#3279gmenher wants to merge 1 commit into
gmenher wants to merge 1 commit into
Conversation
Signed-off-by: Gaizka Menendez Hernandez <gmenende@redhat.com>
gmenher
requested review from
a team,
derekwaynecarr,
mrunalp and
sjenning
as code owners
September 11, 2026 11:54
This was referenced Sep 11, 2026
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
Document and enforce the standard continuation-token contract for OpenShell public List RPCs. This PR makes the bounded
ListSandboxProvidersexception explicit, prevents future List RPCs from silently omitting the contract, and hardens SDK pagers against a defective server repeating a continuation token.Related Issue
Closes #3047
Follow-up work to #2802.
Changes
ListSandboxProvidersas the sole bounded exception: a sandbox has at most 32 attached providers, so its complete result is returned without pagination fields.ListRPC to exposepage_size,page_token, andnext_page_token, unless its request and response explicitly document a bounded result.Unauthenticated.page_sizeandpage_tokento new tags would also break clients that already adopted that implementation; reserving the legacy tags alone would make older fields unknown rather than preserve their behavior. Actual compatibility would require dual-read migration.Testing
mise run pre-commitpassesOPENSHELL_SYSTEM_GATEWAY_DIR=/tmp/openshell-system-config-empty-2802-followup mise run testpasses, including 1,450 server testscargo test -p openshell-sdkpasses (21 unit and 33 mock-client tests)uv run pytest python/openshell/sandbox_test.pypasses (130 tests)mise run sdk:ts:testpasses (105 tests); the earlier fullmise run sdk:ts:cipasses (104 tests before the added review test)mise exec -- go test ./openshell/v1 ./openshell/v1/fakepassesChecklist