diff --git a/warzone/crates/warzone-server/src/routes/groups.rs b/warzone/crates/warzone-server/src/routes/groups.rs index 03123c9..ca93f2c 100644 --- a/warzone/crates/warzone-server/src/routes/groups.rs +++ b/warzone/crates/warzone-server/src/routes/groups.rs @@ -184,8 +184,13 @@ async fn send_to_group( for msg in &req.messages { let to = normalize_fp(&msg.to); if group.members.contains(&to) { - let key = format!("queue:{}:{}", to, uuid::Uuid::new_v4()); - state.db.messages.insert(key.as_bytes(), msg.message.as_slice())?; + // Try WebSocket push first (instant), fall back to DB queue + if state.push_to_client(&to, &msg.message).await { + tracing::debug!("Group '{}': pushed to {} via WS", name, to); + } else { + let key = format!("queue:{}:{}", to, uuid::Uuid::new_v4()); + state.db.messages.insert(key.as_bytes(), msg.message.as_slice())?; + } delivered += 1; } }