From 2ddbe49cb89583bdf746be52eb7ff5dd7547dd96 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 22 Apr 2026 21:48:20 -0400 Subject: [PATCH] lint: fix clippy absolute_paths & disallowed_methods after merge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Import serde::de::Error trait so the `custom` fn pointer uses `D::Error` instead of the absolute `serde::de::Error::custom` path. - Import `fabro_api::types::ServerSettings` / `fabro_config::UserSettings` directly rather than through absolute paths. - Gate sync `std::fs::write` fixture setup in new config resolver tests with a file-level `#![expect(clippy::disallowed_methods, …)]`. Co-Authored-By: Claude Opus 4.7 (1M context) --- lib/crates/fabro-cli/src/commands/config/mod.rs | 6 ++++-- lib/crates/fabro-client/src/client.rs | 6 ++---- lib/crates/fabro-config/tests/resolve_cli.rs | 5 +++++ lib/crates/fabro-config/tests/resolve_server.rs | 5 +++++ lib/crates/fabro-types/src/settings/server.rs | 3 ++- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/crates/fabro-cli/src/commands/config/mod.rs b/lib/crates/fabro-cli/src/commands/config/mod.rs index 670cca826..1535bfa0e 100644 --- a/lib/crates/fabro-cli/src/commands/config/mod.rs +++ b/lib/crates/fabro-cli/src/commands/config/mod.rs @@ -9,6 +9,8 @@ use std::io::Write; +use fabro_api::types::ServerSettings; +use fabro_config::UserSettings; use fabro_types::settings::CliNamespace; use fabro_types::settings::cli::{CliLayer, OutputFormat}; use fabro_util::printer::Printer; @@ -20,8 +22,8 @@ use crate::shared::print_json_pretty; #[derive(Serialize)] struct RenderedConfig { - user: fabro_config::UserSettings, - server: fabro_api::types::ServerSettings, + user: UserSettings, + server: ServerSettings, } async fn rendered_config( diff --git a/lib/crates/fabro-client/src/client.rs b/lib/crates/fabro-client/src/client.rs index f674ee474..582426a00 100644 --- a/lib/crates/fabro-client/src/client.rs +++ b/lib/crates/fabro-client/src/client.rs @@ -490,16 +490,14 @@ impl Client { } } - pub async fn retrieve_resolved_server_settings( - &self, - ) -> Result { + pub async fn retrieve_resolved_server_settings(&self) -> Result { let url = format!("{}/api/v1/settings", self.base_url()); let response = self .send_http(|http_client| async move { http_client.get(&url).send().await }) .await?; response - .json::() + .json::() .await .context("server returned invalid JSON for server settings") } diff --git a/lib/crates/fabro-config/tests/resolve_cli.rs b/lib/crates/fabro-config/tests/resolve_cli.rs index f6dc06005..01c05b60a 100644 --- a/lib/crates/fabro-config/tests/resolve_cli.rs +++ b/lib/crates/fabro-config/tests/resolve_cli.rs @@ -1,3 +1,8 @@ +#![expect( + clippy::disallowed_methods, + reason = "sync test fixture setup; not on a Tokio path" +)] + use fabro_config::{parse_settings_layer, resolve_cli_from_file}; use fabro_types::settings::cli::{CliTargetSettings, OutputFormat, OutputVerbosity}; use fabro_types::settings::run::AgentPermissions; diff --git a/lib/crates/fabro-config/tests/resolve_server.rs b/lib/crates/fabro-config/tests/resolve_server.rs index 11681904d..445fb834f 100644 --- a/lib/crates/fabro-config/tests/resolve_server.rs +++ b/lib/crates/fabro-config/tests/resolve_server.rs @@ -1,3 +1,8 @@ +#![expect( + clippy::disallowed_methods, + reason = "sync test fixture setup; not on a Tokio path" +)] + use fabro_config::parse_settings_layer; use fabro_config::user::default_storage_dir; use fabro_types::settings::server::{ diff --git a/lib/crates/fabro-types/src/settings/server.rs b/lib/crates/fabro-types/src/settings/server.rs index ef10b7b3b..9e4d300e7 100644 --- a/lib/crates/fabro-types/src/settings/server.rs +++ b/lib/crates/fabro-types/src/settings/server.rs @@ -10,6 +10,7 @@ use std::net::SocketAddr; use std::time::Duration as StdDuration; use ipnet::IpNet; +use serde::de::Error as _; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use super::duration::Duration as DurationLayer; @@ -287,7 +288,7 @@ where D: Deserializer<'de>, { let value = String::deserialize(deserializer)?; - value.parse().map_err(serde::de::Error::custom) + value.parse().map_err(D::Error::custom) } fn serialize_std_duration(value: &StdDuration, serializer: S) -> Result