From 0c6bb59d260309b1703d8a3833c30ed00df0101c Mon Sep 17 00:00:00 2001 From: Dale Seo Date: Thu, 11 Dec 2025 19:53:23 -0500 Subject: [PATCH] fix: update process-wrap to v9.0 --- crates/rmcp/Cargo.toml | 2 +- crates/rmcp/src/transport/child_process.rs | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/rmcp/Cargo.toml b/crates/rmcp/Cargo.toml index 098287da..4703c667 100644 --- a/crates/rmcp/Cargo.toml +++ b/crates/rmcp/Cargo.toml @@ -48,7 +48,7 @@ url = { version = "2.4", optional = true } tower-service = { version = "0.3", optional = true } # for child process transport -process-wrap = { version = "8.2", features = ["tokio1"], optional = true } +process-wrap = { version = "9.0", features = ["tokio1"], optional = true } # for ws transport # tokio-tungstenite ={ version = "0.26", optional = true } diff --git a/crates/rmcp/src/transport/child_process.rs b/crates/rmcp/src/transport/child_process.rs index d117c09d..e33800b1 100644 --- a/crates/rmcp/src/transport/child_process.rs +++ b/crates/rmcp/src/transport/child_process.rs @@ -1,7 +1,7 @@ use std::process::Stdio; use futures::future::Future; -use process_wrap::tokio::{TokioChildWrapper, TokioCommandWrap}; +use process_wrap::tokio::{ChildWrapper, CommandWrap}; use tokio::{ io::AsyncRead, process::{ChildStderr, ChildStdin, ChildStdout}, @@ -13,7 +13,7 @@ use crate::RoleClient; const MAX_WAIT_ON_DROP_SECS: u64 = 3; /// The parts of a child process. type ChildProcessParts = ( - Box, + Box, ChildStdout, ChildStdin, Option, @@ -23,7 +23,7 @@ type ChildProcessParts = ( /// Returns `(child, stdout, stdin, stderr)` where `stderr` is `Some` only /// if the process was spawned with `Stdio::piped()`. #[inline] -fn child_process(mut child: Box) -> std::io::Result { +fn child_process(mut child: Box) -> std::io::Result { let child_stdin = match child.inner_mut().stdin().take() { Some(stdin) => stdin, None => return Err(std::io::Error::other("stdin was already taken")), @@ -42,7 +42,7 @@ pub struct TokioChildProcess { } pub struct ChildWithCleanup { - inner: Option>, + inner: Option>, } impl Drop for ChildWithCleanup { @@ -87,13 +87,13 @@ impl AsyncRead for TokioChildProcessOut { impl TokioChildProcess { /// Convenience: spawn with default `piped` stdio - pub fn new(command: impl Into) -> std::io::Result { + pub fn new(command: impl Into) -> std::io::Result { let (proc, _ignored) = TokioChildProcessBuilder::new(command).spawn()?; Ok(proc) } /// Builder entry-point allowing fine-grained stdio control. - pub fn builder(command: impl Into) -> TokioChildProcessBuilder { + pub fn builder(command: impl Into) -> TokioChildProcessBuilder { TokioChildProcessBuilder::new(command) } @@ -111,7 +111,7 @@ impl TokioChildProcess { if let Some(mut child) = self.child.inner.take() { self.transport.close().await?; - let wait_fut = Box::into_pin(child.wait()); + let wait_fut = child.wait(); tokio::select! { _ = tokio::time::sleep(std::time::Duration::from_secs(MAX_WAIT_ON_DROP_SECS)) => { if let Err(e) = Box::into_pin(child.kill()).await { @@ -136,7 +136,7 @@ impl TokioChildProcess { } /// Take ownership of the inner child process - pub fn into_inner(mut self) -> Option> { + pub fn into_inner(mut self) -> Option> { self.child.inner.take() } @@ -152,14 +152,14 @@ impl TokioChildProcess { /// Builder for `TokioChildProcess` allowing custom `Stdio` configuration. pub struct TokioChildProcessBuilder { - cmd: TokioCommandWrap, + cmd: CommandWrap, stdin: Stdio, stdout: Stdio, stderr: Stdio, } impl TokioChildProcessBuilder { - fn new(cmd: impl Into) -> Self { + fn new(cmd: impl Into) -> Self { Self { cmd: cmd.into(), stdin: Stdio::piped(),