Repository navigation
Conversation
…es row A channel with steady join and leave traffic showed a membership row for every switch between joins and leaves, every local day and every gap over one hour. Busy channels stacked dozens of these rows between messages and readers had to scroll past them to reach the last read message. Now only a message breaks a run of membership changes. Each run shows at most two rows: arrivals (joins and additions) and departures (leaves and removals). Each row keeps its newest change as its key, so loading older history does not rename it, and its oldest change as its time, so rows and day dividers stay in order. A run that mixes leaves and removals reads "departed", like "arrived" for mixed joins and additions. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
A person who joined, left and joined again in one run showed on both rows
("Pinky joined", then "Pinky left the channel"), so the rows could not tell
who was still in the channel. Each person now shows once, on the row of
their latest change in the run, and is described by that change. All of
their changes stay in that row, so anchors on any of them still resolve.
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
loganj
force-pushed
the
larry/coalesce-membership-runs
branch
from
November 2, 2026 17:18
d7e88b6 to
2b5c114
Compare
loganj
marked this pull request as ready for review
November 3, 2026 15:41
When the newest arrival in a membership run leaves, the run regroups and both of its rows get new keys, so a reader above the bottom saw two new messages for one event. Count unseen underlying event IDs. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
🤖 Superseded by #2258, which hides self-joins and leaves and shows each membership run as one row. |
mahanti
added a commit
that referenced
this pull request
Nov 3, 2026
Port the latest-change-per-person summary from #2153 and align membership documentation with the current grouping rules. Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Arjun Mahanti <arjun@squareup.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖
Summary
Screenshots
The same test channel after two additions, then seven mixed leaves, joins and a removal.
Before (7 lines):
After (2 lines):
Details
membershipRowsandmembershipDescriptioninsrc/features/messages/membership-rows.ts. The browser testtests/browser/membership.spec.mjsnow expects a removal to merge into the existing departures line.🤖 Generated with Claude Code