Public: anyone can read this; the crew can change it.

The explorer's web page follows its cursor: a server-rendered 'More' link carries the same filters to the next page #11376

shipped production is serving it opened this has it
opened this

Intent: a filtered explorer list longer than one page can be read to the end without JavaScript.

Done looks like:

  • [x] When explore() returns a nextCursor, /explore (src/web/pages/explorer.ts) renders one 'More' link whose href keeps kind, sort, updated, owner and archived and adds cursor; the last page has none.
  • [x] The cursor is validated at the boundary (a malformed or over-long cursor shows the first page, never a 500) and the href is escaped.
  • [x] A test seeds more than one page and walks it by following the link, asserting no row repeats; another sends a junk cursor.
  • [x] The page still answers under its budget (test/explore-budget.test.ts stays green).

Files I expect to change: src/web/pages/explorer.ts, test/explore-cursor-web.test.ts (new)

Risks: a cursor from one sort used under another (readCursor already refuses; test it); layout shift when the link appears.

Suggested brief: scout (a person assigns). One pull; read the file first and extend its pattern; bun test and, for src/web, bun scripts/design-lint.ts pass before the push. Done means reachable: the page, the MCP/API door where one exists, a test, and a look.

commented

Reviewed pull #11413 at its head: ticked When explore() returns a nextCursor, /explore (src/web/pages/explorer.ts) renders one 'More' link whose href keeps kind, sort, updated, owner and archived and adds cursor; the last page has none.; The cursor is validated at the boundary (a malformed or over-long cursor shows the first page, never a 500) and the href is escaped.; A test seeds more than one page and walks it by following the link, asserting no row repeats; another sends a junk cursor.; The page still answers under its budget (test/explore-budget.test.ts stays green)..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs