From 9c93baaa39af4003ca27bb59e9cbf6049951c6d6 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Thu, 28 May 2026 02:26:57 +0200 Subject: [PATCH] fix(bootstrap,worker): pass shared federation_repo to ApFederationAdapter --- crates/bootstrap/src/factory.rs | 9 +++++++-- crates/worker/src/factory.rs | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/bootstrap/src/factory.rs b/crates/bootstrap/src/factory.rs index e2a6e51..3b8616c 100644 --- a/crates/bootstrap/src/factory.rs +++ b/crates/bootstrap/src/factory.rs @@ -76,9 +76,10 @@ pub async fn build(cfg: &Config) -> Infrastructure { // 3. ActivityPub federation let connections_repo = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone())); + let federation_repo = Arc::new(PostgresFederationRepository::new(pool.clone())); let raw_ap_service = Arc::new( ActivityPubService::builder( - Arc::new(PostgresFederationRepository::new(pool.clone())), + federation_repo.clone(), Arc::new(PostgresApUserRepository::new( pool.clone(), cfg.base_url.clone(), @@ -98,7 +99,11 @@ pub async fn build(cfg: &Config) -> Infrastructure { .await .expect("Failed to build ActivityPubService"), ); - let ap_service = Arc::new(ApFederationAdapter::new(raw_ap_service, connections_repo)); + let ap_service = Arc::new(ApFederationAdapter::new( + raw_ap_service, + connections_repo, + federation_repo, + )); // 4. Storage adapter let storage_cfg = StorageConfig { diff --git a/crates/worker/src/factory.rs b/crates/worker/src/factory.rs index 597bb40..b78ca9a 100644 --- a/crates/worker/src/factory.rs +++ b/crates/worker/src/factory.rs @@ -40,9 +40,10 @@ pub async fn build(database_url: &str, base_url: &str, nats_url: &str) -> Worker // ActivityPub service (for federation fan-out) let connections_repo_worker = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone())); + let federation_repo_worker = Arc::new(PostgresFederationRepository::new(pool.clone())); let raw_ap_service = Arc::new( ActivityPubService::builder( - Arc::new(PostgresFederationRepository::new(pool.clone())), + federation_repo_worker.clone(), Arc::new(PostgresApUserRepository::new( pool.clone(), base_url.to_string(), @@ -63,6 +64,7 @@ pub async fn build(database_url: &str, base_url: &str, nats_url: &str) -> Worker let ap_service = Arc::new(ApFederationAdapter::new( raw_ap_service, connections_repo_worker, + federation_repo_worker, )); let ap_outbound = ap_service.clone() as Arc; let ap_repo_worker =