Keep group/friend state synchronized without callbacks under locks.
Bound member/role/message collections.
Validation
Friends/groups/offline-message tests pass with fake-grid fixtures.
Concurrent updates and session teardown are deterministic.
No sensitive chat/group capability data is logged.
Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
Project constraints
New native Rust behavior only; no bridge or C# fallback.
Preserve fixed APIs and translated assertions; reuse completed lower layers and keep privileged live actions opt-in.
Validate bounded untrusted inputs, cancellation, task cleanup, docs, and coverage in the same change.
## Objective
Implement FriendsManager, GroupManager, group chat/session state, rights/presence, invitations/notices, roles/members, offline-message retrieval, and events.
## Deliverables
- Preserve rights/flags, session IDs, request correlation, UDP/caps routing, event ordering, duplicate handling, permissions, cancellation, and redaction.
- Keep group/friend state synchronized without callbacks under locks.
- Bound member/role/message collections.
## Validation
- Friends/groups/offline-message tests pass with fake-grid fixtures.
- Concurrent updates and session teardown are deterministic.
- No sensitive chat/group capability data is logged.
## Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
## Project constraints
- New native Rust behavior only; no bridge or C# fallback.
- Preserve fixed APIs and translated assertions; reuse completed lower layers and keep privileged live actions opt-in.
- Validate bounded untrusted inputs, cancellation, task cleanup, docs, and coverage in the same change.
hugo
added this to the 09 - World vertical slices milestone 2026-08-08 08:21:45 +00:00
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.