From 4d38f6640a93811339133b0127d19a29802ece88 Mon Sep 17 00:00:00 2001 From: ddidderr Date: Thu, 13 Nov 2025 21:09:52 +0100 Subject: [PATCH] peer count fix --- .../src-tauri/src/lib.rs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs index 03a2a3b..ba476a9 100644 --- a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs +++ b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs @@ -464,8 +464,26 @@ async fn update_game_db(games: Vec, app: AppHandle) { let state = app.state::(); - // Store games list - *state.games.write().await = GameDB::from(games); + { + let mut game_db = state.games.write().await; + + // Reset peer counts up front. Presence/metadata stay anchored to the baked game.db. + for game in game_db.games.values_mut() { + game.peer_count = 0; + } + + for peer_game in games { + if let Some(existing) = game_db.get_mut_game_by_id(&peer_game.id) { + existing.peer_count = peer_game.peer_count; + } else { + log::debug!( + "Peer advertised unknown game {id}; ignoring because game.db is ground truth", + id = peer_game.id + ); + } + } + } + refresh_games_list(&app).await; }