diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index c4cb75e7..a9121a34 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -26,7 +26,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@1.86 + with: + components: rustfmt - name: cargo fmt run: cargo fmt -- --config imports_granularity=Item --check @@ -58,9 +60,10 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@1.86 with: targets: ${{ matrix.target }} + components: clippy - uses: actions/cache@v4 with: diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index 96c2f1a0..7e9e4b46 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -74,7 +74,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@1.86 with: targets: ${{ matrix.target }} diff --git a/codex-rs/core/src/exec.rs b/codex-rs/core/src/exec.rs index af09ded0..158a0da9 100644 --- a/codex-rs/core/src/exec.rs +++ b/codex-rs/core/src/exec.rs @@ -349,14 +349,12 @@ pub(crate) async fn consume_truncated_output( // we treat it as an exceptional I/O error let stdout_reader = child.stdout.take().ok_or_else(|| { - CodexErr::Io(io::Error::new( - io::ErrorKind::Other, + CodexErr::Io(io::Error::other( "stdout pipe was unexpectedly not available", )) })?; let stderr_reader = child.stderr.take().ok_or_else(|| { - CodexErr::Io(io::Error::new( - io::ErrorKind::Other, + CodexErr::Io(io::Error::other( "stderr pipe was unexpectedly not available", )) })?; diff --git a/codex-rs/core/src/exec_linux.rs b/codex-rs/core/src/exec_linux.rs index 22e97ea4..e74c5621 100644 --- a/codex-rs/core/src/exec_linux.rs +++ b/codex-rs/core/src/exec_linux.rs @@ -51,10 +51,9 @@ pub fn exec_linux( match tool_call_output { Ok(Ok(output)) => Ok(output), Ok(Err(e)) => Err(e), - Err(e) => Err(CodexErr::Io(io::Error::new( - io::ErrorKind::Other, - format!("thread join failed: {e:?}"), - ))), + Err(e) => Err(CodexErr::Io(io::Error::other(format!( + "thread join failed: {e:?}" + )))), } } diff --git a/codex-rs/core/src/rollout.rs b/codex-rs/core/src/rollout.rs index 80b1f0a3..4127b603 100644 --- a/codex-rs/core/src/rollout.rs +++ b/codex-rs/core/src/rollout.rs @@ -6,7 +6,6 @@ use std::fs::File; use std::fs::{self}; use std::io::Error as IoError; -use std::io::ErrorKind; use serde::Serialize; use time::OffsetDateTime; @@ -64,9 +63,9 @@ impl RolloutRecorder { let timestamp_format: &[FormatItem] = format_description!( "[year]-[month]-[day]T[hour]:[minute]:[second].[subsecond digits:3]Z" ); - let timestamp = timestamp.format(timestamp_format).map_err(|e| { - IoError::new(ErrorKind::Other, format!("failed to format timestamp: {e}")) - })?; + let timestamp = timestamp + .format(timestamp_format) + .map_err(|e| IoError::other(format!("failed to format timestamp: {e}")))?; let meta = SessionMeta { timestamp, @@ -131,19 +130,13 @@ impl RolloutRecorder { async fn record_item(&self, item: &impl Serialize) -> std::io::Result<()> { // Serialize the item to JSON first so that the writer thread only has // to perform the actual write. - let json = serde_json::to_string(item).map_err(|e| { - IoError::new( - ErrorKind::Other, - format!("failed to serialize response items: {e}"), - ) - })?; + let json = serde_json::to_string(item) + .map_err(|e| IoError::other(format!("failed to serialize response items: {e}")))?; - self.tx.send(json).await.map_err(|e| { - IoError::new( - ErrorKind::Other, - format!("failed to queue rollout item: {e}"), - ) - }) + self.tx + .send(json) + .await + .map_err(|e| IoError::other(format!("failed to queue rollout item: {e}"))) } } @@ -165,7 +158,7 @@ fn create_log_file(config: &Config, session_id: Uuid) -> std::io::Result std::io::Result(CHANNEL_CAPACITY); let pending: Arc>> = Arc::new(Mutex::new(HashMap::new()));