feat: roster sorting strategies + max-rows cap with +N pill - #19
Merged
Merged
Conversation
New roster-order config key (Layout group, wire grammar + GUI chip row) with a join-order | name | recent-speakers picker. The overlay stamps a runtime-only last-spoke tick per speaker (cleared on stop and on channel switch, never serialized) and sorts the filtered roster before rendering; every strategy is a stable sort, so ties keep join order.
New max-rows config key (0 = unlimited, clamped 0..=200, GUI number row). Truncation happens after sort and filters and before the desired-size math, so the surface shrinks to the capped rows plus one pill row; the pill counts exactly the rows the cap hides, in the glyphs' muted grey. Presentation-only: cache and wire format are untouched.
Release PreviewNext version: 0.3.2 (2026-09-11)Overlay
|
5 tasks
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
roster-orderconfig key: join-order (default, today's behavior) | name (case-insensitive A→Z) | recent-speakers (most recent bubbles up, sinks back on stop); stable sorts, ties keep join ordermax-rowsconfig key (0 = unlimited, clamp 0..=200): overflow rows are hidden and a "+N" pill row counts exactly the filtered-hidden participants; surface height = capped rows + pill row; no inner scrollTest plan