You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 628ad7a
Browse filesBrowse the repository at this point in the historyBrowse files
fix(web): paginate change history beyond the demo scan budget
## Summary
### Why?
Change history failed once the receipt window contained more than 500 queue requests, even when the selected change had only one submission.
### What?
Return bounded history pages with gateway continuations rather than a resource-exhausted error. Keep page-scoped models, notices, empty states, and navigation in the reusable library; the Next host signs queue/change/version-scoped cursors, preserves snapshot bounds, and resets older pages to a live window on refresh. Preserve exact-version lookup and reject looping gateway cursors.
## Test Plan
Passed change-branch web checks, package-consumer checks, production Next standalone build, formatting, lint, module tidy, and Gazelle checks. Added loader/component/reader regression tests for partial history, empty chunks, continuation, and repeated cursors.
Copy file name to clipboardExpand all lines: web/service/submitqueue/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ GitHub, Phabricator, and git change pages mirror the canonical change URI's auth
10
10
11
11
The default queue and change views use a rolling 24-hour window recalculated on every refresh; there are no `from`/`to` URL parameters. Older queue pages carry the stable gateway window inside a signed, queue-scoped `page` cursor, and their Refresh button returns to the live first page.
12
12
13
-
Pinned GitHub/Phabricator pages use exact-URI summary lookup. Across-version and git demo pages scan queue receipts in the displayed rolling window, up to ten gateway pages. An exhausted or looping scan fails rather than returning partial history. Git scans also match raw demo URIs carrying file hints without requiring those hints in the browser URL. This bounded adapter is not an unlimited logical-change history API.
13
+
Pinned GitHub/Phabricator pages use exact-URI summary lookup. Across-version and git demo pages scan queue receipts in the displayed rolling window, up to ten gateway pages per history page. When more queue requests remain, the host marks the results as page-scoped and offers **Continue history scan** instead of failing or claiming complete history. Signed cursors bind the stable receipt window and gateway continuation to the queue, change, and pinned version. Older pages pause automatic refresh; Refresh and **Latest history** return to a fresh live window. A looping gateway cursor still fails. Git scans also match raw demo URIs carrying file hints without requiring those hints in the browser URL. This bounded adapter is not an unlimited logical-change history API.
{model.window ? <pclassName="sq-secondary">Receipt window: <Timestampvalue={model.window.fromMs}/> — <Timestampvalue={model.window.toMs}/>. This is not unlimited retained history.</p> : <pclassName="sq-secondary">Retained submissions for this exact version</p>}
241
-
{model.submissions.length===0 ? <pclassName="sq-empty">No submissions were found in this scope.</p> :
245
+
{model.submissions.length===0 ? <pclassName="sq-empty">{model.pagination ? "No submissions were found on this page." : "No submissions were found in this scope."}</p> :
<pclassName="sq-secondary">{model.submissions.length} requests · newest received first · repeated submissions remain separate</p>
250
+
<pclassName="sq-secondary">{model.submissions.length} requests{model.pagination ? " on this page" : ""} · newest received first · repeated submissions remain separate</p>
251
+
{model.pagination ? <navclassName="page-actions"aria-label="Change history pagination">
252
+
{model.pagination.nextHref ? <ahref={model.pagination.nextHref}>Continue history scan</a> : null}
0 commit comments