fix: don't render dead-end "+1" / "+2" tiles in avatar stacks (#1308)
Clicking "+1" to reveal a single extra avatar expanded a strip that
scrolled nowhere — pointless. Skip the "+N" tile when the overflow
would be smaller than minOverflow (default 3) AND we have enough
users loaded to show everyone inline.
- backend `get_top_likers` default limit: 3 -> 5. tracks with 4 or 5
total likes now ship everyone in the preview, so the frontend can
render them all inline without a dead-end tile. cost per EXPLAIN
ANALYZE is still sub-millisecond on production.
- frontend `AvatarStack` gains `minOverflow` prop (default 3). only
skips "+N" when the overflow is small AND users.length >= total
(i.e. we have everyone loaded), so partial-data surfaces fall back
safely to the regular "+N" affordance.
Behavior:
- total <= 5: shows everyone inline, no "+N"
- total >= 6: shows 3 + "+N>=3" (expansion reveals meaningfully more)
Co-authored-by: Claude Opus 4 (1M context) <noreply@anthropic.com>
authored by