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:
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}");