From ac49112e442d30cf368ca6b433e30b2508896e9b Mon Sep 17 00:00:00 2001 From: Austin Wang <38676809+austinywang@users.noreply.github.com> Date: Fri, 2 Oct 2026 01:13:47 -0700 Subject: [PATCH 1/4] fix(cmux-tui): satisfy reconnect clippy lint --- cmux-tui/crates/cmux-remote/src/connection.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmux-tui/crates/cmux-remote/src/connection.rs b/cmux-tui/crates/cmux-remote/src/connection.rs index 62ba574de4d0..84ef69d971b2 100644 --- a/cmux-tui/crates/cmux-remote/src/connection.rs +++ b/cmux-tui/crates/cmux-remote/src/connection.rs @@ -779,10 +779,10 @@ impl ClientConnection { biased; _ = close_state.changed() => return Err(ConnectionError::Closed), next = async { - if let Some(deadline) = recovery_deadline { - if tokio::time::Instant::now() >= deadline { - return None; - } + if let Some(deadline) = recovery_deadline + && tokio::time::Instant::now() >= deadline + { + return None; } let timeout = recovery_deadline .map(|deadline| self.config.reconnect.attempt_timeout.min(deadline.saturating_duration_since(tokio::time::Instant::now()))) From 33b46ccb12c1e0bf742d3cd9c5e984b604ef2501 Mon Sep 17 00:00:00 2001 From: Austin Wang <38676809+austinywang@users.noreply.github.com> Date: Fri, 2 Oct 2026 01:20:36 -0700 Subject: [PATCH 2/4] docs(cmux-tui): document WireGuard route FFI safety --- cmux-tui/crates/cmux-terminal-client/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmux-tui/crates/cmux-terminal-client/src/lib.rs b/cmux-tui/crates/cmux-terminal-client/src/lib.rs index bf2b467b3a45..312624107d86 100644 --- a/cmux-tui/crates/cmux-terminal-client/src/lib.rs +++ b/cmux-tui/crates/cmux-terminal-client/src/lib.rs @@ -2587,6 +2587,12 @@ pub unsafe extern "C" fn cmux_wireguard_net_start( /// Checks whether a trusted-carrier route is a literal WebSocket IP covered /// by the tunnel's AllowedIPs without opening a connection. +/// +/// # Safety +/// +/// The caller must pass pointers that are valid for reads for the duration of +/// this call, or null where the API permits it. The output buffer must be +/// valid for writes of up to `error_capacity` bytes when an error is reported. #[unsafe(no_mangle)] pub unsafe extern "C" fn cmux_wireguard_net_route_is_allowed( net: *const CmuxWireGuardNet, From 3b38bc4675184dd277bb41fd437a5bafd8e936f9 Mon Sep 17 00:00:00 2001 From: Austin Wang <38676809+austinywang@users.noreply.github.com> Date: Fri, 2 Oct 2026 01:26:01 -0700 Subject: [PATCH 3/4] fix(cmux-tui): complete reconnect policy fixtures --- cmux-tui/crates/cmux-tui/src/remote_runtime.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmux-tui/crates/cmux-tui/src/remote_runtime.rs b/cmux-tui/crates/cmux-tui/src/remote_runtime.rs index 6496038e4b00..1e0055237d12 100644 --- a/cmux-tui/crates/cmux-tui/src/remote_runtime.rs +++ b/cmux-tui/crates/cmux-tui/src/remote_runtime.rs @@ -5233,6 +5233,7 @@ mod tests { heartbeat_interval: None, heartbeat_timeout: Duration::from_secs(1), maximum_attempts: None, + maximum_duration: None, }, startup_timeout: instrumented_test_timeout(Duration::from_secs(5)), state_dir: directory.path().join("client"), @@ -5396,6 +5397,7 @@ mod tests { heartbeat_interval: None, heartbeat_timeout: Duration::from_secs(1), maximum_attempts: Some(2), + maximum_duration: None, }, startup_timeout: Duration::from_secs(2), state_dir: directory.path().join("client"), @@ -5471,6 +5473,7 @@ mod tests { heartbeat_interval: None, heartbeat_timeout: Duration::from_secs(1), maximum_attempts: Some(2), + maximum_duration: None, }, startup_timeout: Duration::from_secs(1), state_dir: directory.path().join("client"), From 4909afb58b33403ed4f137cbc141507c0b2f568b Mon Sep 17 00:00:00 2001 From: Austin Wang <38676809+austinywang@users.noreply.github.com> Date: Fri, 2 Oct 2026 01:41:18 -0700 Subject: [PATCH 4/4] docs(cmux-tui): clarify route pointer safety --- cmux-tui/crates/cmux-terminal-client/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmux-tui/crates/cmux-terminal-client/src/lib.rs b/cmux-tui/crates/cmux-terminal-client/src/lib.rs index 312624107d86..85a25dcc7295 100644 --- a/cmux-tui/crates/cmux-terminal-client/src/lib.rs +++ b/cmux-tui/crates/cmux-terminal-client/src/lib.rs @@ -2591,8 +2591,10 @@ pub unsafe extern "C" fn cmux_wireguard_net_start( /// # Safety /// /// The caller must pass pointers that are valid for reads for the duration of -/// this call, or null where the API permits it. The output buffer must be -/// valid for writes of up to `error_capacity` bytes when an error is reported. +/// this call, or null where the API permits it. A non-null `route` must point +/// to a NUL-terminated C string, including its terminator, within one readable +/// allocation for the duration of the call. The output buffer must be valid +/// for writes of up to `error_capacity` bytes when an error is reported. #[unsafe(no_mangle)] pub unsafe extern "C" fn cmux_wireguard_net_route_is_allowed( net: *const CmuxWireGuardNet,