radrootsd

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

commit 519c9f2e74760a2bac06bb28d57ba43dcff78f8f
parent 70824a09a7c8fcb8a3df64f1c564eefcd6c7c40a
Author: triesap <tyson@radroots.org>
Date:   Tue,  7 Jul 2026 09:27:21 +0000

transport: guard preview capability copy

- Add the exact Reticulum unavailable message witness to capabilities tests.
- Extend daemon source-boundary coverage for the removed proxy transport literal.
- Guard protocol capability fields and message copy.
- Validate with daemon fmt, check, and focused transport tests.

Diffstat:
Msrc/transport/jsonrpc/methods/mod.rs | 10++++++++++
Mtests/source_boundary.rs | 8++++++++
2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/transport/jsonrpc/methods/mod.rs b/src/transport/jsonrpc/methods/mod.rs @@ -34,6 +34,11 @@ mod tests { use crate::transport::jsonrpc::auth::TransportPublishAuthorization; use crate::transport::jsonrpc::{MethodRegistry, RpcContext}; + const APPROVED_RETICULUM_UNAVAILABLE_MESSAGE: &str = concat!( + "Reticulum transport is configured for future compatibility, ", + "but this build does not implement Reticulum delivery." + ); + mod removed_surface_fixtures { pub const BRIDGE_STATUS_METHOD: &str = "bridge.status"; } @@ -145,5 +150,10 @@ mod tests { .contains("\"implementation_state\":\"preview_unavailable\"") ); assert!(response.get().contains("\"usable_for_delivery\":false")); + assert!( + response + .get() + .contains(APPROVED_RETICULUM_UNAVAILABLE_MESSAGE) + ); } } diff --git a/tests/source_boundary.rs b/tests/source_boundary.rs @@ -10,6 +10,10 @@ struct ForbiddenConcept { const FORBIDDEN_DAEMON_TRANSPORT_CONCEPTS: &[ForbiddenConcept] = &[ ForbiddenConcept { + pattern: "\"radrootsd_proxy\"", + reason: "proxy targets must use first-class shared proxy transport modeling", + }, + ForbiddenConcept { pattern: "radrootsd.publish_proxy.v1", reason: "daemon publish proxy v1 is removed", }, @@ -92,6 +96,9 @@ fn transport_publish_capabilities_expose_per_transport_readiness() { r#"\"transport_kind\":\"reticulum\""#, r#"\"implementation_state\":\"preview_unavailable\""#, r#"\"usable_for_delivery\":false"#, + "APPROVED_RETICULUM_UNAVAILABLE_MESSAGE", + "Reticulum transport is configured for future compatibility, ", + "but this build does not implement Reticulum delivery.", ] { assert!( methods_source.contains(required), @@ -107,6 +114,7 @@ fn transport_publish_capabilities_expose_per_transport_readiness() { for required in [ "pub implementation_state: TransportPublishImplementationState,", "pub usable_for_delivery: bool,", + "Reticulum transport is configured for future compatibility, but this build does not implement Reticulum delivery.", ] { assert!( protocol_source.contains(required),