commit 0bd19a81a23ee794481e684555a9175f18deb753
parent 5811685dc028eee45e1e0087b06ecd1a0b59fb1e
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:
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]