Skip to content

[client] plumb state.members per ServerEntry for multi-grove shared-groves intersection #563

@intendednull

Description

@intendednull

Tracking issue for the multi-grove TODO at crates/client/src/views.rs:95. The doc-comment at views.rs:87-93 already explains the situation: ServerRegistry::shared_groves needs to walk every ServerEntry's state.members map to compute the intersection of grove memberships between two peers (per profile-card.md §Data dependencies). Today v1 of the client tracks one active grove at a time, and ServerEntry does not carry per-grove state.members, so the helper returns Vec::new().

Scope

  1. Extend ServerEntry (in crates/client/src/state.rs or wherever it lives — confirm) to expose the materialized members map for that grove.
  2. Update ServerRegistry::shared_groves to walk every entry and intersect — drop the always-empty fallback at views.rs:95-103.
  3. Wire the UI side (profile card "shared groves" section) to show real names.

Why this matters

Spec edge case "no shared groves → omit section" is handled today by the always-empty return, which means the "shared groves" section currently never renders even when peers do share groves. Once the registry tracks more than one grove, this becomes user-visible incorrectness.

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions