radrootsd

JSON-RPC bridge for Radroots event publishing
git clone https://radroots.dev/git/radrootsd.git
Log | Files | Refs | README | LICENSE

commit c04d907f26aca84c1d0403b820780676bec7739c
parent d06a2c4434a46f301bf94e22ca7687b689a3ce14
Author: triesap <triesap@radroots.dev>
Date:   Wed,  7 Jan 2026 17:38:01 +0000

nip89: pass relay metadata into radrootsd announcement

- add nostrconnect_url to nip46 config
- forward relay list into handler spec
- publish handler announcement via shared helper
- keep startup publish flow intact

Diffstat:
Msrc/app/config.rs | 3+++
Msrc/app/runtime.rs | 4++++
2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/app/config.rs b/src/app/config.rs @@ -39,6 +39,8 @@ pub struct Nip46Config { pub session_ttl_secs: u64, #[serde(default = "default_nip46_perms")] pub perms: Vec<String>, + #[serde(default)] + pub nostrconnect_url: Option<String>, } impl Default for Nip46Config { @@ -46,6 +48,7 @@ impl Default for Nip46Config { Self { session_ttl_secs: default_nip46_session_ttl_secs(), perms: default_nip46_perms(), + nostrconnect_url: None, } } } diff --git a/src/app/runtime.rs b/src/app/runtime.rs @@ -48,6 +48,8 @@ pub async fn run() -> Result<()> { let client = radrootsd.client.clone(); let md = settings.metadata.clone(); let identity = identity.clone(); + let nip46_config = settings.config.nip46.clone(); + let relays = settings.config.relays.clone(); let has_metadata = serde_json::to_value(&md) .ok() .and_then(|v| v.as_object().cloned()) @@ -97,6 +99,8 @@ pub async fn run() -> Result<()> { identifier: None, metadata: Some(md.clone()), extra_tags: Vec::new(), + relays, + nostrconnect_url: nip46_config.nostrconnect_url.clone(), }; if let Err(e) = radroots_nostr_publish_application_handler(&client, &handler_spec).await { tracing::warn!("Failed to publish NIP-89 announcement: {e}");