From eb3860359cfc2f2bab95a546bd6003091584b918 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 18 Feb 2026 10:12:45 +0000 Subject: fix: preserve grasp server order in relay hint for nostr url apply_grasp_infrastructure was inserting each grasp relay at index 0, causing later servers to displace earlier ones. the last server in the list ended up as relays[0] and thus the url relay hint, reversing the intended priority order. --- src/bin/ngit/sub_commands/init.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs index 8513f18..1b577ed 100644 --- a/src/bin/ngit/sub_commands/init.rs +++ b/src/bin/ngit/sub_commands/init.rs @@ -274,6 +274,7 @@ fn apply_grasp_infrastructure( public_key: &PublicKey, identifier: &str, ) -> Result<()> { + let mut grasp_relay_insert_idx = 0; for grasp_server in grasp_servers { // Always add grasp-derived clone URL let clone_url = format_grasp_server_url_as_clone_url(grasp_server, public_key, identifier)?; @@ -305,11 +306,13 @@ fn apply_grasp_infrastructure( } } - // Always add grasp-derived relay at the beginning (for relay hint) + // Prepend grasp-derived relay in order (for relay hint) so that the + // first grasp server in the list ends up at relays[0]. let relay_url = format_grasp_server_url_as_relay_url(grasp_server)?; if !relays.contains(&relay_url) { - relays.insert(0, relay_url); + relays.insert(grasp_relay_insert_idx, relay_url); } + grasp_relay_insert_idx += 1; } Ok(()) } -- cgit v1.2.3