upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/lib/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/client.rs')
-rw-r--r--src/lib/client.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 9c49653..89fcaf7 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -1577,7 +1577,14 @@ async fn create_relays_request(
1577 }; 1577 };
1578 1578
1579 let relays = { 1579 let relays = {
1580 let mut relays = fallback_relays; 1580 // Only use fallback relays for bootstrapping (no repo context).
1581 // When we have a repo coordinate, rely on repo relays and coordinate
1582 // hint relays instead of always merging in the default set.
1583 let mut relays = if trusted_maintainer_coordinate.is_none() {
1584 fallback_relays
1585 } else {
1586 HashSet::new()
1587 };
1581 if let Some(repo_ref) = &repo_ref { 1588 if let Some(repo_ref) = &repo_ref {
1582 for r in repo_ref.relays.clone() { 1589 for r in repo_ref.relays.clone() {
1583 relays.insert(r); 1590 relays.insert(r);
@@ -1588,6 +1595,8 @@ async fn create_relays_request(
1588 relays.insert(r.clone()); 1595 relays.insert(r.clone());
1589 } 1596 }
1590 } 1597 }
1598 // When bootstrapping with no repo context and no coordinate hints,
1599 // we need at least the fallback relays to discover the user profile.
1591 relays 1600 relays
1592 }; 1601 };
1593 1602
@@ -2238,8 +2247,15 @@ pub async fn send_events(
2238 animate: bool, 2247 animate: bool,
2239 silent: bool, 2248 silent: bool,
2240) -> Result<()> { 2249) -> Result<()> {
2250 // Only include default relays as fallback when there are no repo relays
2251 // (bootstrapping case, e.g. new account signup). When repo relays exist,
2252 // trust the repo and user relay configuration.
2241 let fallback = [ 2253 let fallback = [
2242 client.get_relay_default_set().clone(), 2254 if repo_read_relays.is_empty() && my_write_relays.is_empty() {
2255 client.get_relay_default_set().clone()
2256 } else {
2257 vec![]
2258 },
2243 if events.iter().any(|e| e.kind.eq(&Kind::GitRepoAnnouncement)) { 2259 if events.iter().any(|e| e.kind.eq(&Kind::GitRepoAnnouncement)) {
2244 client.get_blaster_relays().clone() 2260 client.get_blaster_relays().clone()
2245 } else { 2261 } else {