diff --git a/codex-rs/cloud-tasks-client/src/api.rs b/codex-rs/cloud-tasks-client/src/api.rs index c5e92bb4a9..d301bcf6c5 100644 --- a/codex-rs/cloud-tasks-client/src/api.rs +++ b/codex-rs/cloud-tasks-client/src/api.rs @@ -49,22 +49,17 @@ pub struct TaskSummary { pub attempt_total: Option, } -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] pub enum AttemptStatus { Pending, InProgress, Completed, Failed, Cancelled, + #[default] Unknown, } -impl Default for AttemptStatus { - fn default() -> Self { - AttemptStatus::Unknown - } -} - #[derive(Clone, Debug, PartialEq, Eq)] pub struct TurnAttempt { pub turn_id: String, diff --git a/codex-rs/cloud-tasks-client/src/http.rs b/codex-rs/cloud-tasks-client/src/http.rs index 467fa98eb0..f4dab55d9e 100644 --- a/codex-rs/cloud-tasks-client/src/http.rs +++ b/codex-rs/cloud-tasks-client/src/http.rs @@ -271,7 +271,6 @@ impl CloudBackend for HttpClient { /// Best-effort extraction of assistant text messages from a raw `get_task_details` body. /// Falls back to worklog messages when structured turns are not present. - impl HttpClient { async fn apply_with_diff( &self, @@ -395,9 +394,8 @@ stderr_tail= let _ = writeln!( &mut log, "----- PATCH BEGIN ----- -{} ------ PATCH END -----", - diff +{diff} +----- PATCH END -----" ); append_error_log(&log); } @@ -491,10 +489,10 @@ fn extract_diff_from_turn(turn: &HashMap) -> Option { for item in items { match item.get("type").and_then(Value::as_str) { Some("output_diff") => { - if let Some(diff) = item.get("diff").and_then(Value::as_str) { - if !diff.is_empty() { - return Some(diff.to_string()); - } + if let Some(diff) = item.get("diff").and_then(Value::as_str) + && !diff.is_empty() + { + return Some(diff.to_string()); } } Some("pr") => { @@ -503,10 +501,9 @@ fn extract_diff_from_turn(turn: &HashMap) -> Option { .and_then(Value::as_object) .and_then(|od| od.get("diff")) .and_then(Value::as_str) + && !diff.is_empty() { - if !diff.is_empty() { - return Some(diff.to_string()); - } + return Some(diff.to_string()); } } _ => {} @@ -526,29 +523,28 @@ fn extract_assistant_messages_from_turn(turn: &HashMap) -> Vec TaskSummary { is_review: src .pull_requests .as_ref() - .map_or(false, |prs| !prs.is_empty()), + .is_some_and(|prs| !prs.is_empty()), attempt_total: attempt_total_from_status_display(src.task_status_display.as_ref()), } } diff --git a/codex-rs/cloud-tasks-client/src/lib.rs b/codex-rs/cloud-tasks-client/src/lib.rs index 6f13fc26cb..ba830e72f0 100644 --- a/codex-rs/cloud-tasks-client/src/lib.rs +++ b/codex-rs/cloud-tasks-client/src/lib.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - mod api; pub use api::ApplyOutcome; diff --git a/codex-rs/cloud-tasks/src/app.rs b/codex-rs/cloud-tasks/src/app.rs index 1223bb17f5..07f4c221b9 100644 --- a/codex-rs/cloud-tasks/src/app.rs +++ b/codex-rs/cloud-tasks/src/app.rs @@ -187,7 +187,7 @@ impl DiffOverlay { if self.attempts.is_empty() { self.attempts.push(AttemptView::default()); } - self.attempts.get_mut(0).expect("base attempt present") + &mut self.attempts[0] } pub fn set_view(&mut self, view: DetailView) { diff --git a/codex-rs/cloud-tasks/src/bin/conncheck.rs b/codex-rs/cloud-tasks/src/bin/conncheck.rs index 411b7908d0..44817891b2 100644 --- a/codex-rs/cloud-tasks/src/bin/conncheck.rs +++ b/codex-rs/cloud-tasks/src/bin/conncheck.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use codex_backend_client::Client as BackendClient; use codex_cloud_tasks::util::extract_chatgpt_account_id; use codex_cloud_tasks::util::normalize_base_url; diff --git a/codex-rs/cloud-tasks/src/bin/detailcheck.rs b/codex-rs/cloud-tasks/src/bin/detailcheck.rs index a392b55f68..a62a8f150b 100644 --- a/codex-rs/cloud-tasks/src/bin/detailcheck.rs +++ b/codex-rs/cloud-tasks/src/bin/detailcheck.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use codex_backend_client::Client as BackendClient; use codex_core::config::find_codex_home; use codex_core::default_client::get_codex_user_agent; diff --git a/codex-rs/cloud-tasks/src/bin/envcheck.rs b/codex-rs/cloud-tasks/src/bin/envcheck.rs index 911267204d..30218944e1 100644 --- a/codex-rs/cloud-tasks/src/bin/envcheck.rs +++ b/codex-rs/cloud-tasks/src/bin/envcheck.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use base64::Engine; use clap::Parser; use codex_core::config::find_codex_home; diff --git a/codex-rs/cloud-tasks/src/bin/newtask.rs b/codex-rs/cloud-tasks/src/bin/newtask.rs index be6a0c5667..c44703d7ea 100644 --- a/codex-rs/cloud-tasks/src/bin/newtask.rs +++ b/codex-rs/cloud-tasks/src/bin/newtask.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use base64::Engine; use clap::Parser; use codex_core::config::find_codex_home; diff --git a/codex-rs/cloud-tasks/src/lib.rs b/codex-rs/cloud-tasks/src/lib.rs index 2257e6672c..45c553212d 100644 --- a/codex-rs/cloud-tasks/src/lib.rs +++ b/codex-rs/cloud-tasks/src/lib.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - mod app; mod cli; pub mod env_detect; diff --git a/codex-rs/cloud-tasks/src/ui.rs b/codex-rs/cloud-tasks/src/ui.rs index ef9a270855..c369491bc8 100644 --- a/codex-rs/cloud-tasks/src/ui.rs +++ b/codex-rs/cloud-tasks/src/ui.rs @@ -343,8 +343,7 @@ fn draw_diff_overlay(frame: &mut Frame, area: Rect, app: &mut App) { let mut content_area = content_full; if let Some(ov) = app.diff_overlay.as_mut() { let has_text = ov.current_attempt().is_some_and(AttemptView::has_text); - let has_diff = - ov.current_attempt().is_some_and(AttemptView::has_diff) || ov.base_can_apply; + let has_diff = ov.current_attempt().is_some_and(AttemptView::has_diff) || ov.base_can_apply; if has_diff || has_text { let rows = Layout::default() .direction(Direction::Vertical) @@ -381,15 +380,15 @@ fn draw_diff_overlay(frame: &mut Frame, area: Rect, app: &mut App) { } else { Some(ov.attempts.len()) } - }) - && total > 1 { - spans.extend(vec![ - " ".into(), - format!("Attempt {}/{}", ov.selected_attempt + 1, total).dim(), - " ".into(), - "(Tab/Shift-Tab or [ ] to cycle attempts)".dim(), - ]); - } + }) && total > 1 + { + spans.extend(vec![ + " ".into(), + format!("Attempt {}/{}", ov.selected_attempt + 1, total).dim(), + " ".into(), + "(Tab/Shift-Tab or [ ] to cycle attempts)".dim(), + ]); + } frame.render_widget(Paragraph::new(Line::from(spans)), rows[0]); ov.sd.set_width(rows[1].width); ov.sd.set_viewport(rows[1].height); diff --git a/codex-rs/cloud-tasks/tests/env_filter.rs b/codex-rs/cloud-tasks/tests/env_filter.rs index 74908f915e..8c737c6c28 100644 --- a/codex-rs/cloud-tasks/tests/env_filter.rs +++ b/codex-rs/cloud-tasks/tests/env_filter.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use codex_cloud_tasks_client::CloudBackend; use codex_cloud_tasks_client::MockClient; diff --git a/codex-rs/git-apply/src/lib.rs b/codex-rs/git-apply/src/lib.rs index d4fac0f6f0..4db271ff1f 100644 --- a/codex-rs/git-apply/src/lib.rs +++ b/codex-rs/git-apply/src/lib.rs @@ -1,5 +1,3 @@ -#![deny(clippy::unwrap_used, clippy::expect_used)] - use once_cell::sync::Lazy; use regex::Regex; use std::ffi::OsStr;