AppBrowser advances the page cursor by BATCH (the requested count) instead of by the scanned value the registry returns:
https://github.com/paritytech/playground-cli/blob/main/src/commands/mod/AppBrowser.tsx#L56
getApps(start, count) walks scanned storage slots and returns up to count matching entries — when filtering applies (e.g. visibility=private apps owned by others, empty slots), scanned > entries.length and the next page must resume at start + scanned. With start + count we re-walk the already-scanned region.
Symptoms
- duplicate entries across pages
- pagination may never reach the true end (
start + count < total stays true forever)
Fix: read scanned from the response and use start + scanned as the next cursor; terminate when scanned === 0 or the offset reaches total.
AppBrowseradvances the page cursor byBATCH(the requestedcount) instead of by thescannedvalue the registry returns:https://github.com/paritytech/playground-cli/blob/main/src/commands/mod/AppBrowser.tsx#L56
getApps(start, count)walksscannedstorage slots and returns up tocountmatching entries — when filtering applies (e.g. visibility=private apps owned by others, empty slots),scanned > entries.lengthand the next page must resume atstart + scanned. Withstart + countwe re-walk the already-scanned region.Symptoms
start + count < totalstays true forever)Fix: read
scannedfrom the response and usestart + scannedas the next cursor; terminate whenscanned === 0or the offset reachestotal.