From bf558b0dc17e14f96eea624ea5591315a2909154 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 4 Dec 2025 17:49:05 +0000 Subject: feat(sync): Phase 2 - multi-relay and complete filters - Add relay discovery from stored announcements - Implement FilterService with three-layer strategy - Support multiple simultaneous relay connections - Filter batching for large tag sets --- src/main.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 21b351f..31e7cf6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,21 +51,25 @@ async fn main() -> Result<()> { config.domain ); - // Start SyncManager if sync_relay_url is configured - if let Some(ref sync_url) = config.sync_relay_url { - info!("Starting proactive sync from: {}", sync_url); - let sync_manager = SyncManager::new( - sync_url.clone(), - relay_with_db.database.clone(), - relay_with_db.write_policy.clone(), - ); - tokio::spawn(async move { - sync_manager.run().await; - }); + // Start SyncManager for proactive sync (Phase 2: multi-relay support) + // Even without initial sync_relay_url, SyncManager can discover relays from stored announcements + let sync_manager = SyncManager::new( + config.sync_relay_url.clone(), + config.domain.clone(), + relay_with_db.database.clone(), + relay_with_db.write_policy.clone(), + ); + + if config.sync_relay_url.is_some() { + info!("Starting proactive sync from: {:?}", config.sync_relay_url); } else { - info!("Proactive sync disabled (no NGIT_SYNC_RELAY_URL configured)"); + info!("Proactive sync enabled (will discover relays from stored announcements)"); } + tokio::spawn(async move { + sync_manager.run().await; + }); + // Start HTTP server with integrated relay and database info!("Starting HTTP server on {}", config.bind_address); http::run_server(config, relay_with_db.relay, relay_with_db.database, metrics).await?; -- cgit v1.2.3