Social: implement friends, groups, offline messaging, and communication state #72
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement FriendsManager, GroupManager, group chat/session state, rights/presence, invitations/notices, roles/members, offline-message retrieval, and events.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
Project constraints
Implemented in
c22eef5. Added client-owned native FriendsManager and GroupManager implementations covering friendship offers/acceptance/decline, presence, rights, calling cards, map tracking, current groups, profiles, members, roles and role-member mappings, titles, notices, invitations, proposals, account summaries, bans, and membership/role mutations. Requests are bounded and correlated, fragmented replies are deduplicated, state is committed before callbacks, CAPS calls honor cancellation, and teardown releases subscriptions and pending state. Existing AgentManager group-chat sessions and offline-message delivery were reviewed and verified as the session/message owners. Verification: strict libremetaverse Clippy with -D warnings; API mapping/shim/coverage checks; isolated API consumer compile; 2 friend tests; 3 group tests; group-chat lifecycle test; social_message_semantics (4); world_manager_shims (2); social_constructor_semantics (2). Added docs/social.md. The red-suite audit was not applicable because the post-clean controlled-suite log contained no libtest summaries.