From 7473878136b855a2cb57a445d4caccb69a9c649e Mon Sep 17 00:00:00 2001 From: Edison Jwa Date: Wed, 20 May 2026 09:32:58 +0900 Subject: [PATCH] fix(core): emit voice state from snapshots --- core/chanora_core/src/lib.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/chanora_core/src/lib.rs b/core/chanora_core/src/lib.rs index cf6335d..bec9344 100644 --- a/core/chanora_core/src/lib.rs +++ b/core/chanora_core/src/lib.rs @@ -666,6 +666,7 @@ impl ChanoraSession { .await .map(|(_, channel)| JoinChannelId(channel)); let epoch = state.join_state.authoritative.confirmed_epoch; + let before = channel_join::project(&state.join_state); let _ = channel_join::reduce( &mut state.join_state, ChannelJoinEvent::SnapshotReady { @@ -674,6 +675,14 @@ impl ChanoraSession { now: std::time::Instant::now(), }, ); + let projection = channel_join::project(&state.join_state); + let should_emit_voice_state = projection != before; + self.voice_selector + .set_in_channel(projection.current_channel.is_some()); + drop(guard); + if should_emit_voice_state { + self.emit_voice_state(projection).await; + } Ok(snap) }