Switches `listForUser` from page-offset to cursor (`before` param,
opaque base64 of `{ts, id}`) ordered by `(created_at DESC, id DESC)`
for stable pagination even with simultaneous fan-out inserts.
Returns `{ rows, nextCursor }` instead of a bare array. Loader surfaces
`?before=<cursor>` on a "Load older" link at the bottom of the list,
shown only while `nextCursor !== null`. Default page size 50, capped
at 100. Malformed cursors fall back to "start from top" rather than
400ing — opaque cursors should not be a client validation surface.
Spec drift: delta spec adds three pagination scenarios (cursor pages
forward, tie-stable on identical `created_at`, malformed-cursor
graceful fallback). Design doc gets a new decision section explaining
the cursor choice over page-offset and why we don't compute totals.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| activity-photos | ||
| archive | ||
| changelog | ||
| configurable-demo-persona | ||
| demo-activity-bot | ||
| e2e-test-reorganization | ||
| journal-poi-details | ||
| komoot-import | ||
| local-dev-stack | ||
| mobile-app | ||
| notifications | ||
| pg-boss-background-jobs | ||
| route-discovery | ||
| route-features | ||
| route-sharing | ||
| social-federation | ||
| staging-environments | ||
| visual-redesign | ||
| waypoint-notes | ||