Skip to content

Chathistory seeding and scroll-back paging #33

Description

@zealsprince

draft/chathistory is requested and tracked, but the runtime never issues a CHATHISTORY command: a channel renders only what arrives live after join. Opening a channel should seed from history, and scrolling up should page further back.

Spec

Acceptance criteria

  • Opening a channel issues CHATHISTORY LATEST and renders the batch
  • Scrolling to the top issues CHATHISTORY BEFORE the oldest rendered msgid and prepends
    • This is already intermingled with the actual UI; we should seek to test this in isolation so as to not have a dependency on a full UI implementation.
    • There are more considerations to this implementation case as the UI matures and evolves (images, media, etc)
    • We should have an example case of a list of messages in a scrollable container, where scrolling up issues CHATHISTORY BEFORE and pull the next batch of messages.
  • Replayed batches produce no notification or unread side effects
  • Without the cap, channels degrade to live-only with no error surfaced

Out of scope

  • Cache-first paging and prefill (Clients: local history cache #10)
  • Reconnect catch-up (its own ticket)
  • Calculating media heights and various other nuanced aspects of scrollback behavior ([FLAG] MISSING TICKET)

Blocks reconnection catch-up and the local history cache epic (#10). Blocked by nothing.

([FLAG] MISSING UI TICKET)

Metadata

Metadata

Assignees

Labels

uplinkThe IRC layer: protocol, caps, messaging, metadata

Fields

Start date

None yet

Target date

None yet

Size

None yet

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions