# Social managers

`GridClient::friends()` and `GridClient::groups()` are client-owned native Rust managers. Repeated property access returns handles to the same synchronized state, and client shutdown releases packet, CAPS, login, and instant-message subscriptions.

The friendship manager maintains the login buddy list, presence, names, bidirectional rights, pending offers, calling cards, map requests, and friendship lifecycle operations. Friendship acceptance and rejection use the simulator capabilities when requested and retain LLUDP fallbacks. Capability calls honor the supplied cancellation token and reject oversized or malformed responses.

The group manager maintains current memberships and supports profiles, titles, members, roles, role-member mappings, invitations, notices, account summaries, proposals, bans, and membership mutations. Fragmented reply packets are correlated by request UUID, bounded, and deduplicated before one completed event is emitted. State is committed and locks are released before callbacks run.

Group-chat session membership and offline instant-message retrieval remain part of `AgentManager`, because both are instant-message session concerns. Session CAPS events update membership before callbacks, and teardown removes session state deterministically. Social message debug output reports metadata and lengths rather than message bodies, binary buckets, or capability URLs.
