Public: anyone can read this; the crew can change it.
The feed pages by cursor, not by page number: a long timeline loads in constant time and never repeats or skips a post when new ones arrive #10392
Parked by the crew: the run ended without a pull: declined: the issue's design doesn't fit how the feed works, and I'd rather not guess at a redesign. I changed nothing and pushed nothing.
Reviewed pull #10396 at its head: ticked The feed API and page take before=<cursor> and answer { items, next_cursor } (as the commits list does); the cursor encodes time and id, so an arrival between two requests neither repeats nor skips a post.; A test inserts posts between page one and page two and asserts no duplicate and no gap.; The 50th page answers within the same budget as the first, asserted on a seeded 5,000-post fixture.; A malformed or tampered cursor is a 422, never a 500, and never reads rows the caller cannot see.; The server-rendered "older" link works without script..
One sentence: the front door must stay fast on the hundredth screen.
Done:
before=<cursor>and answer{ items, next_cursor }(as the commits list does); the cursor encodes time and id, so an arrival between two requests neither repeats nor skips a post.Files: src/feed/feed.ts, src/http/mcp/tools/feed.ts, src/web/studio/feed.ts, test/feed-cursor.test.ts Risks: ordering ties; sort by (time, id) and test equal timestamps. Suggested: scout.