lib

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

commit e13ca0e9e5862ab81a83c49ea85be73c8c3b6790
parent cea9597aa28d34ad5240836b1b2009905937d699
Author: triesap <tyson@radroots.org>
Date:   Tue,  7 Jul 2026 09:14:28 +0000

transport: use shared proxy kind

- Model proxy profile target sets with RadrootsTransportKind::Proxy.
- Match delegated proxy targets by enum instead of custom labels.
- Guard SDK sources against the removed proxy transport literal.
- Validate with SDK check, tests, generators, and xtask check.

Diffstat:
Mcrates/sdk/src/sync_runtime.rs | 2+-
Mcrates/sdk/src/transport.rs | 2+-
Mcrates/sdk/tests/source_boundary.rs | 13+++++++++++++
3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/crates/sdk/src/sync_runtime.rs b/crates/sdk/src/sync_runtime.rs @@ -942,7 +942,7 @@ fn proxy_target_matches_outcome( #[cfg(all(feature = "runtime", feature = "radrootsd-proxy"))] fn is_proxy_delegate_target(target: &RadrootsOutboxDeliveryTargetRecord) -> bool { - target.transport_kind.canonical_label() == "radrootsd_proxy" + target.transport_kind == RadrootsTransportKind::Proxy } #[cfg(all(feature = "runtime", feature = "radrootsd-proxy"))] diff --git a/crates/sdk/src/transport.rs b/crates/sdk/src/transport.rs @@ -444,7 +444,7 @@ impl ProxyProfile { pub(crate) fn target_set(&self) -> Result<TargetSet, RadrootsSdkError> { TargetSet::transport_targets(vec![RadrootsTransportTarget::new( - RadrootsTransportKind::custom("radrootsd_proxy")?, + RadrootsTransportKind::Proxy, self.endpoint_url.as_str(), )?]) } diff --git a/crates/sdk/tests/source_boundary.rs b/crates/sdk/tests/source_boundary.rs @@ -107,6 +107,7 @@ const FORBIDDEN_SDK_ROOT_TRADE_ALIAS_NAMES: &[&str] = &[ ]; const FORBIDDEN_DAEMON_PUBLISH_PROXY_IDENTIFIERS: &[&str] = &[ + "\"radrootsd_proxy\"", "radrootsd.publish_proxy.v1", "radroots_publish_proxy_protocol", "publish_proxy_protocol", @@ -1309,6 +1310,18 @@ fn sdk_proxy_surfaces_reject_removed_daemon_publish_proxy_identifiers() { ); } } + + let transport_source = read_source(manifest_dir.join("src/transport.rs").as_path()); + assert!( + transport_source.contains("RadrootsTransportKind::Proxy"), + "src/transport.rs must model SDK proxy targets with RadrootsTransportKind::Proxy" + ); + + let sync_runtime_source = read_source(manifest_dir.join("src/sync_runtime.rs").as_path()); + assert!( + sync_runtime_source.contains("target.transport_kind == RadrootsTransportKind::Proxy"), + "src/sync_runtime.rs must identify proxy delegate targets with RadrootsTransportKind::Proxy" + ); } #[test]