feat: federated presence — RoomUpdate includes remote participants
GlobalRoomActive signal now carries participant list from the announcing relay. When received, the relay: 1. Stores remote participants per peer link 2. Broadcasts merged RoomUpdate to local clients (local + all remote) This means clients on different relays can now SEE each other in the participant list. Also fixes build: removed non-existent metric field references that were added by linter. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -304,6 +304,13 @@ impl RoomManager {
|
||||
self.rooms.keys().cloned().collect()
|
||||
}
|
||||
|
||||
/// Get participant list for a room (fingerprint + alias).
|
||||
pub fn local_participant_list(&self, room_name: &str) -> Vec<wzp_proto::packet::RoomParticipant> {
|
||||
self.rooms.get(room_name)
|
||||
.map(|room| room.participant_list())
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
/// Get all senders for participants in a room (for federation inbound media delivery).
|
||||
pub fn local_senders(&self, room_name: &str) -> Vec<ParticipantSender> {
|
||||
self.rooms.get(room_name)
|
||||
|
||||
Reference in New Issue
Block a user