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:
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),