diff --git a/Cargo.lock b/Cargo.lock index 8b6b290..4bfae38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,9 +27,9 @@ dependencies = [ [[package]] name = "alkcall" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6af1e4af1460480849adf959c972d65deeafc36f4101064ced1ce6d1adfd5b" +checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84" dependencies = [ "async-trait", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 8e47a37..05f159f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,7 +46,7 @@ h2 = ["server", "dep:hyper", "hyper-util/http2", "hyper/http2"] http1 = ["server", "dep:hyper", "hyper-util/http1", "hyper/http1"] [dependencies] -alkcall = { version = "0.8.1", features = ["gateway"] } +alkcall = { version = "0.9", features = ["gateway"] } arc-swap = { version = "1", optional = true } axum = { version = "0.8", optional = true, features = ["ws"] } bytes = "1" diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 1f64131..d785040 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -27,9 +27,9 @@ dependencies = [ [[package]] name = "alkcall" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6af1e4af1460480849adf959c972d65deeafc36f4101064ced1ce6d1adfd5b" +checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84" dependencies = [ "async-trait", "bytes", @@ -1405,7 +1405,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -1756,7 +1756,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2513,7 +2513,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/fuzz/shared/Cargo.toml b/fuzz/shared/Cargo.toml index fc1466c..51e4fba 100644 --- a/fuzz/shared/Cargo.toml +++ b/fuzz/shared/Cargo.toml @@ -14,7 +14,7 @@ mcp = ["alkhttp/mcp"] [dependencies] alkhttp = { path = "../.." } -alkcall = "0.8.1" +alkcall = "0.9" serde_json = "1" bytes = "1" futures = "0.3" diff --git a/tests/ws_overlay_ops.rs b/tests/ws_overlay_ops.rs index 339d898..0e7ed61 100644 --- a/tests/ws_overlay_ops.rs +++ b/tests/ws_overlay_ops.rs @@ -212,7 +212,8 @@ async fn browser_registered_op_lands_in_overlay_not_peer_composite() { let overlay_env = conn.overlay_env(); assert!(!overlay_env.contains("ui/dragged")); - conn.register_imported(browser_registration("ui/dragged", AccessControl::default())); + conn.register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); assert!(overlay_env.contains("ui/dragged")); assert!( overlay_env.peer_ids().is_empty(), @@ -226,7 +227,8 @@ async fn hub_call_reaches_browser_op_through_overlay_env() { let dp = dispatcher(registry, provider_with(vec![])); let conn = Arc::new(CallConnection::new_overlay_only(identity("browser", &[]))); - conn.register_imported(browser_registration("ui/dragged", AccessControl::default())); + conn.register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); let ctx = hub_root_context( "hub-call-1", @@ -257,7 +259,8 @@ async fn peerref_specific_browser_x_routes_to_nothing() { let registry = echo_registry(); let dp = dispatcher(registry, provider_with(vec![])); let conn = Arc::new(CallConnection::new_overlay_only(identity("browser", &[]))); - conn.register_imported(browser_registration("ui/dragged", AccessControl::default())); + conn.register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); let composed_env = dp.compose_root_env( &conn, @@ -300,7 +303,8 @@ async fn access_control_on_browser_op_gates_hub_call() { required_scopes: vec!["ui:write".to_string()], ..Default::default() }, - )); + )) + .expect("register_imported must accept the unmarked spec"); let env = conn.overlay_env(); let ctx = hub_root_context( "hub-acl-ok", @@ -332,7 +336,9 @@ async fn access_control_on_browser_op_gates_hub_call() { #[tokio::test] async fn overlay_dropped_on_disconnect_no_leak_between_connections() { let conn1 = CallConnection::new_overlay_only(identity("browser-1", &[])); - conn1.register_imported(browser_registration("ui/dragged", AccessControl::default())); + conn1 + .register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); assert!(conn1.overlay_env().contains("ui/dragged")); drop(conn1); @@ -345,8 +351,12 @@ async fn overlay_dropped_on_disconnect_no_leak_between_connections() { // Connection-local isolation: each session's overlay is its own. let conn_a = CallConnection::new_overlay_only(identity("browser-a", &[])); let conn_b = CallConnection::new_overlay_only(identity("browser-b", &[])); - conn_a.register_imported(browser_registration("ui/dragged", AccessControl::default())); - conn_b.register_imported(browser_registration("ui/click", AccessControl::default())); + conn_a + .register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); + conn_b + .register_imported(browser_registration("ui/click", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); assert!(conn_a.overlay_env().contains("ui/dragged")); assert!(!conn_a.overlay_env().contains("ui/click")); assert!(conn_b.overlay_env().contains("ui/click")); @@ -356,7 +366,8 @@ async fn overlay_dropped_on_disconnect_no_leak_between_connections() { #[tokio::test] async fn ws_close_mid_call_to_browser_op_aborts_call() { let conn = Arc::new(CallConnection::new_overlay_only(identity("browser", &[]))); - conn.register_imported(browser_registration("ui/dragged", AccessControl::default())); + conn.register_imported(browser_registration("ui/dragged", AccessControl::default())) + .expect("register_imported must accept the unmarked spec"); let rx = { let mut pending = conn.pending().lock();