Overview
useFetchWorkspaceMembers returns a callable for the unified roster: one entry per distinct user, each with a reasons array. Always returned in full (never paginated). With countOnly, the shape is WorkspaceRosterCountsResponse instead.
Usage Example
Parameters
string
required
The workspace UUID.
string
Comma-separated add-on buckets:
ancestorOwners, reachHolders, descendants.boolean
Return per-reason counts + a distinct-user total instead of the array.
Returns
WorkspaceRosterResponse ({ data, total }), or WorkspaceRosterCountsResponse ({ counts, total, distinctUsers }) when countOnly is set.
Each WorkspaceRosterEntry is { user, reasons }, where a reason is { type, ...detail } — member carries rank / capabilities / permissions / title / metadata, ancestor-owner and reach-holder carry viaWorkspaceId (reach-holder also capabilities), and descendant-member carries workspaceId / rank / capabilities.

