commit c9e133e76e58062989113571fdcdf6dcd060bd37
parent ee1ea144fa3814c2e15db3a71621dda02169492c
Author: triesap <tyson@radroots.org>
Date: Wed, 8 Jul 2026 05:30:58 +0000
transport: guard publish job egress validation
Add a source-boundary witness for validated transport publish job egress so get, list, dedupe, and recovered-state paths keep routing through the shared TransportPublishJobView validator.
Diffstat:
1 file changed, 22 insertions(+), 0 deletions(-)
diff --git a/tests/source_boundary.rs b/tests/source_boundary.rs
@@ -132,6 +132,28 @@ fn transport_publish_sources_require_principal_explicit_kind_scope() {
}
#[test]
+fn transport_publish_store_egress_requires_protocol_validation() {
+ let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR"));
+ let daemon_source = read_source(manifest_dir.join("src/core/transport_publish.rs").as_path());
+
+ for required in [
+ "fn finalize_job_row_for_egress",
+ "job.view.targets = self.target_outcomes(job.view.job_id.as_str())?;",
+ "finalize_job_view(&mut job.view);",
+ "job.view\n .validate()",
+ "TransportPublishError::InvalidPublishJobState",
+ "store_egress_rejects_malformed_target_counts_for_get_list_and_dedupe",
+ "store_egress_rejects_explicit_target_outcome_drift",
+ "store_egress_rejects_recovered_explicit_target_snapshot_drift",
+ ] {
+ assert!(
+ daemon_source.contains(required),
+ "daemon transport publish store must retain validated public egress witness `{required}`"
+ );
+ }
+}
+
+#[test]
fn transport_publish_capabilities_expose_per_transport_readiness() {
let methods_source = read_source(
Path::new(env!("CARGO_MANIFEST_DIR"))