From 29ec6da87272995dd2a7e0d47b7039b9602c8531 Mon Sep 17 00:00:00 2001 From: reya Date: Tue, 25 Feb 2025 18:21:10 +0700 Subject: [PATCH] chore: fix the issue when new user cannot see their messages --- Cargo.lock | 70 +++++++++++++++++----------------- crates/app/src/views/relays.rs | 29 +++++++++++++- 2 files changed, 63 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7bc5dce..4d765ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -450,9 +450,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" +checksum = "98922d6a4cfbcb08820c69d8eeccc05bb1f29bfa06b4f5b1dbfe9a868bd7608e" dependencies = [ "arrayvec", ] @@ -989,9 +989,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" dependencies = [ "clap_builder", "clap_derive", @@ -999,9 +999,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" dependencies = [ "anstream", "anstyle", @@ -1109,7 +1109,7 @@ dependencies = [ [[package]] name = "collections" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "indexmap", "rustc-hash 2.1.1", @@ -1434,7 +1434,7 @@ dependencies = [ [[package]] name = "derive_refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "proc-macro2", "quote", @@ -1554,9 +1554,9 @@ checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" [[package]] name = "embed-resource" @@ -1736,9 +1736,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -2153,7 +2153,7 @@ dependencies = [ [[package]] name = "gpui" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "as-raw-xcb-connection", @@ -2240,7 +2240,7 @@ dependencies = [ [[package]] name = "gpui_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "proc-macro2", "quote", @@ -2463,7 +2463,7 @@ dependencies = [ [[package]] name = "http_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "bytes", @@ -2962,9 +2962,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libfuzzer-sys" @@ -3150,7 +3150,7 @@ dependencies = [ [[package]] name = "media" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "bindgen 0.70.1", @@ -3329,7 +3329,7 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "nostr" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "aes", "base64", @@ -3353,7 +3353,7 @@ dependencies = [ [[package]] name = "nostr-connect" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "async-utility", "nostr", @@ -3365,7 +3365,7 @@ dependencies = [ [[package]] name = "nostr-database" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "flatbuffers", "lru", @@ -3376,7 +3376,7 @@ dependencies = [ [[package]] name = "nostr-lmdb" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "async-utility", "heed", @@ -3389,7 +3389,7 @@ dependencies = [ [[package]] name = "nostr-relay-pool" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "async-utility", "async-wsocket", @@ -3406,7 +3406,7 @@ dependencies = [ [[package]] name = "nostr-sdk" version = "0.39.0" -source = "git+https://github.com/rust-nostr/nostr#75d56eebc45d2160c54b8d134e845708496d266c" +source = "git+https://github.com/rust-nostr/nostr#16ad5e1190733f6e20d84891165e54d30f917e6d" dependencies = [ "async-utility", "nostr", @@ -4284,7 +4284,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", + "rand_core 0.9.2", "zerocopy 0.8.20", ] @@ -4305,7 +4305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.2", ] [[package]] @@ -4319,9 +4319,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" dependencies = [ "getrandom 0.3.1", "zerocopy 0.8.20", @@ -4471,7 +4471,7 @@ dependencies = [ [[package]] name = "refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "derive_refineable", ] @@ -4600,7 +4600,7 @@ dependencies = [ [[package]] name = "reqwest_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "bytes", @@ -4639,9 +4639,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.10" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34b5020fcdea098ef7d95e9f89ec15952123a4a039badd09fabebe9e963e839" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", @@ -4980,7 +4980,7 @@ checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" [[package]] name = "semantic_version" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "serde", @@ -5304,7 +5304,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sum_tree" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "arrayvec", "log", @@ -6129,7 +6129,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#83513bab59c9b387b80211f44f392ae9dc2bcad7" +source = "git+https://github.com/zed-industries/zed#3a041cac72a81187c796245ee7f8f0fb20e97d71" dependencies = [ "anyhow", "async-fs", diff --git a/crates/app/src/views/relays.rs b/crates/app/src/views/relays.rs index 94be776..c4f0701 100644 --- a/crates/app/src/views/relays.rs +++ b/crates/app/src/views/relays.rs @@ -1,3 +1,4 @@ +use common::constants::NEW_MESSAGE_SUB_ID; use gpui::{ div, prelude::FluentBuilder, px, uniform_list, AppContext, Context, Entity, FocusHandle, InteractiveElement, IntoElement, ParentElement, Render, Styled, Task, TextAlign, Window, @@ -84,13 +85,39 @@ impl Relays { } let tags: Vec = relays - .into_iter() + .iter() .map(|relay| Tag::custom(TagKind::Relay, vec![relay.to_string()])) .collect(); let builder = EventBuilder::new(Kind::InboxRelays, "").tags(tags); let output = client.send_event_builder(builder).await?; + // Connect to messaging relays + for relay in relays.into_iter() { + _ = client.add_relay(&relay).await; + _ = client.connect_relay(&relay).await; + } + + let sub_id = SubscriptionId::new(NEW_MESSAGE_SUB_ID); + + // Close old subscription + client.unsubscribe(&sub_id).await; + + // Subscribe to new messages + if let Err(e) = client + .subscribe_with_id( + sub_id, + Filter::new() + .kind(Kind::GiftWrap) + .pubkey(public_key) + .limit(0), + None, + ) + .await + { + log::error!("Failed to subscribe to new messages: {}", e); + } + Ok(output.val) });