collections.userVisibleLibraryIDs keeps its identity adapter and delegates; the router's visibleLibraryIDsFor likewise (its identity source is the session user_id string, the site-specific part it keeps). The SSR site made the unification slog-proof: resolveLibrary — the SSR one-of-a-kind (active selection + switcher rows + offline detection) — stays untouched per the semantic diff.