Social: implement friends, groups, offline messaging, and communication state #72

Closed
opened 2026-08-08 08:21:45 +00:00 by hugo · 1 comment
Owner

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.
## 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
hugo added the enhancement label 2026-08-08 08:21:45 +00:00
Author
Owner

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.
hugo closed this issue 2026-08-10 18:35:49 +00:00
Sign in to join this conversation.