refactor(persistence): adopt continuation-token pagination - #3249
Conversation
|
@drew I ran the targeted tests and did manual CLI validation and everything works as described. One small question: would it be useful to add multi-page tests for |
|
🌿 Preview your docs: https://nvidia-preview-pr-3249.docs.buildwithfern.com/openshell |
6863c87 to
d037609
Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
This pagination refactor is project-valid through maintainer-authored issue #2802, but one published Go SDK example no longer compiles after the option-field migration.
Action required: @drew, update the remaining Limit field in the all-workspaces sandbox-template example to PageSize.
Blocking findings:
GATOR-bd7da2eb-01: the publishedListAllexample initializes a removed Go field.
Carried findings:
- None
Gator metadata
- Validation: Maintainer-authored PR implements the linked pagination audit in #2802.
- Docs: Updated broadly, with one materially stale Go SDK example identified by this review.
- Checks: Current-head Branch Checks are still in progress; DCO, Trivy, and applicable completed gates are passing.
- E2E:
test:e2eis required for the gateway and sandbox-list behavior changes, but dispatch is deferred until blocking review feedback is resolved. - Head SHA:
bd7da2eba89328f9b113dd57732ec4608ee5a3d7 - Base SHA:
3c0f58872ea956816abf82cdf50fa94601329cc5 - Merge base SHA:
3c0f58872ea956816abf82cdf50fa94601329cc5 - Patch ID:
d9ebc606cdbecbad1738259c7b92a6960fd080be - Gator payload:
9 - Review mode:
initial - Previous reviewed SHA: none
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
bd7da2e to
fefe01e
Compare
|
Label |
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
Re-check After Author Update
Thanks @drew. I checked your current-head change from the removed Limit field to PageSize in the published Go SDK sandbox-template example, and the prior GATOR-bd7da2eb-01 obligation is resolved. The bounded follow-up review found no new blocking issues.
What I checked: the author-only delta after the rebase, the durable review-feedback ledger, and the corrected ListAll example at sdk/go/docs/src/api/sandbox-templates.md.
Disposition: resolved; no blocking items remain. The required test:e2e label is applied, and the current-head Branch E2E workflow rerun is queued.
Blocking findings:
- None
Carried findings:
- None
Gator metadata
- Validation: Implements the linked maintainer-authored pagination audit in #2802.
- Docs: Updated, including the corrected Go SDK example.
- Checks: Branch Checks are still running; DCO, Trivy, Helm, and applicable completed gates are passing.
- E2E:
test:e2eapplied; Branch E2E run34543505398rerun queued for the current head. - Head SHA:
fefe01e07f5f167413939b4e24589a4309f8624b - Base SHA:
ce25acca5a57220ddc89795f946f3df666ec78bd - Merge base SHA:
ce25acca5a57220ddc89795f946f3df666ec78bd - Patch ID:
4ea987b452fe3c6bbbb0bebf47f2ba3940b67499 - Gator payload:
9 - Review mode:
follow_up - Previous reviewed SHA:
bd7da2eba89328f9b113dd57732ec4608ee5a3d7 - Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:watch-pipeline
Monitoring CompleteMonitoring is complete because this PR has merged. Final status: The pagination follow-up review had no remaining blocking findings, maintainer approval was present, and the required E2E run completed with one failing core E2E job before the PR was merged. I removed the active |
Summary
Replace fixed
limit/offsetpagination with AIP-158 continuation tokens across OpenShell's public paginated list APIs. The gateway uses stable keyset cursors, while the CLI and internal consumers preserve tokens and exhaust pages safely where a complete collection is required.Related Issue
Closes #2802
Changes
page_size,page_token, andnext_page_tokenfields to eight list RPCs, with a default of 100, a maximum of 1,000, negative-size rejection, and page-size changes allowed between requests.The curated SDK pager APIs are intentionally isolated in stacked PR #3256.
Testing
mise run pre-commitpassesOPENSHELL_SYSTEM_GATEWAY_DIR=/tmp/openshell-system-config-empty-2802-followup mise run testpasses, including 1,450 server testsmise run test:pythonpasses (151 tests)mise run sdk:ts:cipasses (104 tests)mise exec -- go test ./openshell/v1 ./openshell/v1/fake ./openshell/v1/internal/converter ./openshell/v1/typespassescargo test -p openshell-conformancepassesmise run cireaches the Go test lane after all earlier checks and the complete Rust suite pass, then fails in existing gateway-discovery tests because this host has/etc/openshell/gateways/default; those tests expect the system gateway directory to be empty. The Go format, lint, build, proto, and docs checks pass, as do the affected Go SDK packages listed above.Checklist