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

Posts that arrive live gather behind one "N new posts" button at the top of the timeline, so what you are reading never moves #5849

Closed opened this has it
opened this

Like X. Today a live update can push the post you are reading down the page.

Done when:

  • [ ] While the viewer is scrolled past the first post, posts the live update brings are held back. A N new posts button appears at the top of the timeline. Pressing it inserts them and scrolls to the top.
  • [ ] When the viewer is at the top, posts insert as today.
  • [ ] The button is a §5 btn, takes no layout space until shown, and causes no layout shift (CLS 0 in a browser test). The client stays under 1 KB more script, with no inline script.
  • [ ] A browser test scrolls, delivers 3 live posts, checks that the reading position has not moved and the button says 3 new posts, then presses it and finds the posts at the top.
commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #5855 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Re-planned into three smaller issues: #6692 adds the pure new-post diff and label with no wiring, #6693 makes the client hold a data-live-hold region when the reader has scrolled into it, and #6694 adds the button to the home feed. What is different: the real-browser CLS test that stayed red twice is gone. Each part is now proved with pure-JS tests against a fake region, and a hidden slot that takes no space keeps the layout still.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs