FA-75919 / Chat ordering and read receipts / Member archive
Summarize group delivery and read receipts for one message: late joiner exclusion · case 04
A member who joined after a message was sent can never read it, so the message stays "delivered" forever.
Case contract
Recipients are members other than the sender whose joined_at (first visible seq, default 0) is <= sent_seq. A recipient has read the message when read[u] (their read marker) >= sent_seq; reading implies delivery. Status is "sent" with no recipients, "read" when every recipient read, "delivered" when every recipient got it, else "sent". Result {status, read_by (sorted), recipients (count)}.
Why this case matters
Group tick marks summarise many receipts; wrong membership or thresholds show false "read" states.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| late joiner does not block read | {"read_by": ["bo"], "recipients": 2, "status": "sent"} | {"read_by": ["bo"], "recipients": 1, "status": "read"} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗