With "Show all profiles" on, each messaging platform section listed rows by
source only, so a Telegram thread gave no hint which profile it belonged to.
Rework the cherry-picked idea onto the current owner model:
- Extract buildGatewaySessionGroups() from useGatewaySessionGroups (now a thin
useMemo wrapper) so recents and messaging share one resolver keyed by
[connectionId, profile]. Drop the profile-only profile-groups.ts.
- Under profile grouping, group each platform's rows after the visible cap, so
the platform's load-more count and footer stay coherent. Render through
GatewayProfileGroups in a new embedded mode: flat owner groups, no nested
paging, no new-session button, header slot or profile-wide totals.
- scopeGatewaySessionGroups() namespaces group ids per platform so collapse,
alias and order preferences never collide with the recents groups, and keeps
the gateway in the label only when a platform mixes gateways.
- Under any other grouping, messaging rows carry profile tags like the pinned
and search sections.
Co-authored-by: webtecnica <75556242+webtecnica@users.noreply.github.com>