commit 514d65efbc7f26bd80e723de617db558b8cb972d
parent da9af49ed74d64ca3f419493976cda1eb15c9773
Author: triesap <tyson@radroots.org>
Date: Sat, 18 Jul 2026 11:27:26 +0000
build: bind Myc to alpha event contract
- exact-pin every direct Radroots dependency to the 1.0.0-alpha.1 public contract
- refresh the lockfile for the shared Blossom, event, identity, signer, and runtime graph
- replace implicit SDK dereferencing with explicit notification and relay-probe interoperability
- preserve NIP-46 custody behavior through strict checks, Clippy, and the deterministic full suite
Diffstat:
5 files changed, 54 insertions(+), 25 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -1282,6 +1282,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
+name = "jiff-tzdb"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e"
+
+[[package]]
name = "js-sys"
version = "0.3.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1419,6 +1425,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"
[[package]]
+name = "mediatype"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "120fa187be19d9962f0926633453784691731018a2bf936ddb4e29101b79c4a7"
+
+[[package]]
name = "memchr"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1866,8 +1878,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
[[package]]
+name = "radroots_blossom"
+version = "1.0.0-alpha.1"
+dependencies = [
+ "mediatype",
+ "serde",
+ "sha2",
+ "url",
+]
+
+[[package]]
name = "radroots_core"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"rust_decimal",
"rust_decimal_macros",
@@ -1876,18 +1898,21 @@ dependencies = [
[[package]]
name = "radroots_event"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"hex",
+ "jiff-tzdb",
+ "radroots_blossom",
"radroots_core",
"serde",
"serde_json",
"sha2",
+ "url",
]
[[package]]
name = "radroots_event_codec"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"radroots_core",
"radroots_event",
@@ -1895,10 +1920,9 @@ dependencies = [
[[package]]
name = "radroots_identity"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"nostr",
- "radroots_event",
"radroots_protected_store",
"radroots_runtime",
"radroots_runtime_paths",
@@ -1911,7 +1935,7 @@ dependencies = [
[[package]]
name = "radroots_log"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"chrono",
"serde_json",
@@ -1923,7 +1947,7 @@ dependencies = [
[[package]]
name = "radroots_nostr"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"nostr",
"nostr-sdk",
@@ -1937,7 +1961,7 @@ dependencies = [
[[package]]
name = "radroots_nostr_accounts"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"radroots_identity",
"radroots_nostr_signer",
@@ -1952,7 +1976,7 @@ dependencies = [
[[package]]
name = "radroots_nostr_connect"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"nostr",
"serde",
@@ -1963,7 +1987,7 @@ dependencies = [
[[package]]
name = "radroots_nostr_signer"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"hex",
"nostr",
@@ -1982,7 +2006,7 @@ dependencies = [
[[package]]
name = "radroots_protected_store"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"chacha20poly1305",
"getrandom 0.2.17",
@@ -1994,7 +2018,7 @@ dependencies = [
[[package]]
name = "radroots_runtime"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"anyhow",
"chacha20poly1305",
@@ -2016,7 +2040,7 @@ dependencies = [
[[package]]
name = "radroots_runtime_paths"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"serde",
"thiserror 1.0.69",
@@ -2024,14 +2048,14 @@ dependencies = [
[[package]]
name = "radroots_secret_vault"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"keyring",
]
[[package]]
name = "radroots_sql_core"
-version = "0.1.0-alpha.2"
+version = "1.0.0-alpha.1"
dependencies = [
"chrono",
"futures-executor",
diff --git a/Cargo.toml b/Cargo.toml
@@ -19,15 +19,15 @@ chacha20poly1305 = "0.10"
clap = { version = "4.5", features = ["derive"] }
getrandom = "0.2"
nostr = { version = "0.44.2", features = ["nip04", "nip44", "nip46"] }
-radroots_identity = { path = "../lib/crates/identity" }
-radroots_log = { path = "../lib/crates/log" }
-radroots_nostr_accounts = { path = "../lib/crates/nostr_accounts", default-features = false, features = ["std", "memory-vault", "os-keyring"] }
-radroots_nostr = { path = "../lib/crates/nostr", features = ["client", "events"] }
-radroots_nostr_connect = { path = "../lib/crates/nostr_connect" }
-radroots_nostr_signer = { path = "../lib/crates/nostr_signer", features = ["native"] }
-radroots_runtime_paths = { path = "../lib/crates/runtime_paths" }
-radroots_secret_vault = { path = "../lib/crates/secret_vault", features = ["std", "os-keyring"] }
-radroots_sql_core = { path = "../lib/crates/sql_core", features = ["native"] }
+radroots_identity = { version = "=1.0.0-alpha.1", path = "../lib/crates/identity" }
+radroots_log = { version = "=1.0.0-alpha.1", path = "../lib/crates/log" }
+radroots_nostr_accounts = { version = "=1.0.0-alpha.1", path = "../lib/crates/nostr_accounts", default-features = false, features = ["std", "memory-vault", "os-keyring"] }
+radroots_nostr = { version = "=1.0.0-alpha.1", path = "../lib/crates/nostr", features = ["client", "events"] }
+radroots_nostr_connect = { version = "=1.0.0-alpha.1", path = "../lib/crates/nostr_connect" }
+radroots_nostr_signer = { version = "=1.0.0-alpha.1", path = "../lib/crates/nostr_signer", features = ["native"] }
+radroots_runtime_paths = { version = "=1.0.0-alpha.1", path = "../lib/crates/runtime_paths" }
+radroots_secret_vault = { version = "=1.0.0-alpha.1", path = "../lib/crates/secret_vault", features = ["std", "os-keyring"] }
+radroots_sql_core = { version = "=1.0.0-alpha.1", path = "../lib/crates/sql_core", features = ["native"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
diff --git a/src/discovery.rs b/src/discovery.rs
@@ -1436,6 +1436,8 @@ async fn fetch_live_nip89_events_for_relay(
let client = context.app_identity().nostr_client();
let _ = client.add_relay(relay.as_str()).await?;
client
+ .clone()
+ .into_inner()
.try_connect_relay(
relay.as_str(),
Duration::from_secs(context.connect_timeout_secs()),
diff --git a/src/operability/mod.rs b/src/operability/mod.rs
@@ -1382,6 +1382,8 @@ async fn probe_relay(
.map_err(MycError::from)?;
match client
+ .clone()
+ .into_inner()
.try_connect_relay(relay.as_str(), Duration::from_secs(connect_timeout_secs))
.await
{
diff --git a/src/transport/nip46.rs b/src/transport/nip46.rs
@@ -374,7 +374,8 @@ impl MycNip46Service {
self.transport.connect().await?;
let filter = self.handler.filter()?;
- let mut notifications = self.transport.client().notifications();
+ let sdk_client = self.transport.client().clone().into_inner();
+ let mut notifications = sdk_client.notifications();
let subscription = self.transport.client().subscribe(filter, None).await?;
let mut replay_guard = MycNip46ReplayGuard::new(NIP46_REPLAY_CACHE_CAPACITY);
tracing::info!(