lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit 89577853c46e58a4f0d519bb7612b42802a2b279
parent bface7702c4c08216bcca1dadd689dfb94a2dca3
Author: triesap <tyson@radroots.org>
Date:   Tue,  7 Jul 2026 05:35:40 +0000

transport: align Reticulum preview SDK defaults

- default SDK Reticulum preview profiles to reticulum:preview-unavailable
- map SDK workflow policies onto accepted-level shared transport policies
- update proxy policy tests for the new shared satisfaction constructors
- validate SDK fmt, check, and transport-filtered test lanes

Diffstat:
Mcrates/sdk/src/sync_runtime.rs | 6+++---
Mcrates/sdk/src/transport.rs | 13+++++++++----
Mcrates/sdk/src/workflow_runtime.rs | 6+++---
Mcrates/sdk/tests/sync_runtime.rs | 2+-
Mcrates/sdk/tests/unit/adapters_radrootsd_tests.rs | 6+++---
Mcrates/sdk/tests/unit/sync_runtime_tests.rs | 11+++++++----
Mcrates/sdk/tests/unit/workflow_runtime_tests.rs | 2+-
7 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/crates/sdk/src/sync_runtime.rs b/crates/sdk/src/sync_runtime.rs @@ -787,9 +787,9 @@ fn proxy_delivery_policy_from_satisfaction( } let required = satisfaction_policy.required_target_count(target_count)?; Ok(match satisfaction_policy { - RadrootsTransportSatisfactionPolicy::AnyTarget => TransportPublishDeliveryPolicy::Any, - RadrootsTransportSatisfactionPolicy::AllTargets => TransportPublishDeliveryPolicy::All, - RadrootsTransportSatisfactionPolicy::AtLeast(_) => { + RadrootsTransportSatisfactionPolicy::Any { .. } => TransportPublishDeliveryPolicy::Any, + RadrootsTransportSatisfactionPolicy::All { .. } => TransportPublishDeliveryPolicy::All, + RadrootsTransportSatisfactionPolicy::Quorum { .. } => { TransportPublishDeliveryPolicy::Quorum { quorum: required } } }) diff --git a/crates/sdk/src/transport.rs b/crates/sdk/src/transport.rs @@ -1,7 +1,8 @@ use crate::RadrootsSdkError; use radroots_transport::{ - RadrootsTransportDeliveryReceipt, RadrootsTransportKind, RadrootsTransportTarget, - RadrootsTransportTargetFingerprint, RadrootsTransportTargetReceipt, RadrootsTransportTargetSet, + RadrootsTransportDeliveryReceipt, RadrootsTransportKind, RadrootsTransportSatisfactionClass, + RadrootsTransportTarget, RadrootsTransportTargetFingerprint, RadrootsTransportTargetReceipt, + RadrootsTransportTargetSet, }; use radroots_transport_nostr::{RadrootsRelayUrl, RadrootsRelayUrlPolicy}; use serde::ser::{SerializeStruct, Serializer}; @@ -295,7 +296,7 @@ pub struct ReticulumPreviewProfile { impl ReticulumPreviewProfile { pub fn preview_unavailable() -> Self { Self { - endpoint_uri: "reticulum:preview".to_owned(), + endpoint_uri: "reticulum:preview-unavailable".to_owned(), behavior: ReticulumPreviewBehavior::RejectDeliveryAttempts, } } @@ -522,7 +523,11 @@ impl TransportReceipt { pub fn satisfied_target_count(&self) -> usize { self.target_receipts .iter() - .filter(|receipt| receipt.status.counts_as_satisfied()) + .filter(|receipt| { + receipt + .status + .counts_as_satisfied(RadrootsTransportSatisfactionClass::Accepted) + }) .count() } } diff --git a/crates/sdk/src/workflow_runtime.rs b/crates/sdk/src/workflow_runtime.rs @@ -203,11 +203,11 @@ fn transport_satisfaction_policy( ) -> RadrootsTransportSatisfactionPolicy { match satisfaction_policy { SatisfactionPolicy::NoWait | SatisfactionPolicy::AllTargets => { - RadrootsTransportSatisfactionPolicy::AllTargets + RadrootsTransportSatisfactionPolicy::all_accepted() } - SatisfactionPolicy::AtLeastOneTarget => RadrootsTransportSatisfactionPolicy::AnyTarget, + SatisfactionPolicy::AtLeastOneTarget => RadrootsTransportSatisfactionPolicy::any_accepted(), SatisfactionPolicy::AtLeast { required } => { - RadrootsTransportSatisfactionPolicy::AtLeast(required) + RadrootsTransportSatisfactionPolicy::quorum_accepted(required) } } } diff --git a/crates/sdk/tests/sync_runtime.rs b/crates/sdk/tests/sync_runtime.rs @@ -484,7 +484,7 @@ where radroots_outbox::RadrootsOutboxDeliveryPlanInput::new( "explicit", 1, - radroots_transport::RadrootsTransportSatisfactionPolicy::AllTargets, + radroots_transport::RadrootsTransportSatisfactionPolicy::all_accepted(), target_set.into_targets(), ) } diff --git a/crates/sdk/tests/unit/adapters_radrootsd_tests.rs b/crates/sdk/tests/unit/adapters_radrootsd_tests.rs @@ -529,17 +529,17 @@ async fn relay_publish_adapter_derives_delivery_policy_and_timeout() { for (target_count, satisfaction_policy, expected_policy) in [ ( 2, - radroots_transport::RadrootsTransportSatisfactionPolicy::AllTargets, + radroots_transport::RadrootsTransportSatisfactionPolicy::all_accepted(), TransportPublishDeliveryPolicy::All, ), ( 2, - radroots_transport::RadrootsTransportSatisfactionPolicy::AnyTarget, + radroots_transport::RadrootsTransportSatisfactionPolicy::any_accepted(), TransportPublishDeliveryPolicy::Any, ), ( 3, - radroots_transport::RadrootsTransportSatisfactionPolicy::AtLeast(2), + radroots_transport::RadrootsTransportSatisfactionPolicy::quorum_accepted(2), TransportPublishDeliveryPolicy::Quorum { quorum: 2 }, ), ] { diff --git a/crates/sdk/tests/unit/sync_runtime_tests.rs b/crates/sdk/tests/unit/sync_runtime_tests.rs @@ -554,7 +554,7 @@ async fn proxy_push_empty_queue_and_private_helpers_are_deterministic() { assert_eq!( proxy_delivery_policy_from_satisfaction( 0, - &RadrootsTransportSatisfactionPolicy::AllTargets + &RadrootsTransportSatisfactionPolicy::all_accepted() ) .expect("zero-target proxy policy"), TransportPublishDeliveryPolicy::Any @@ -562,14 +562,17 @@ async fn proxy_push_empty_queue_and_private_helpers_are_deterministic() { assert_eq!( proxy_delivery_policy_from_satisfaction( 2, - &RadrootsTransportSatisfactionPolicy::AllTargets + &RadrootsTransportSatisfactionPolicy::all_accepted() ) .expect("all-target proxy policy"), TransportPublishDeliveryPolicy::All ); assert_eq!( - proxy_delivery_policy_from_satisfaction(2, &RadrootsTransportSatisfactionPolicy::AnyTarget) - .expect("any-target proxy policy"), + proxy_delivery_policy_from_satisfaction( + 2, + &RadrootsTransportSatisfactionPolicy::any_accepted() + ) + .expect("any-target proxy policy"), TransportPublishDeliveryPolicy::Any ); assert_eq!( diff --git a/crates/sdk/tests/unit/workflow_runtime_tests.rs b/crates/sdk/tests/unit/workflow_runtime_tests.rs @@ -100,7 +100,7 @@ fn workflow_delivery_plan() -> radroots_outbox::RadrootsOutboxDeliveryPlanInput radroots_outbox::RadrootsOutboxDeliveryPlanInput::new( "explicit", 1, - radroots_transport::RadrootsTransportSatisfactionPolicy::AllTargets, + radroots_transport::RadrootsTransportSatisfactionPolicy::all_accepted(), target_set.into_targets(), ) }