From 876635b0b346183f67e38893bbea368293a88e65 Mon Sep 17 00:00:00 2001 From: harald Date: Wed, 25 Feb 2026 17:11:49 +0100 Subject: [PATCH] fix: resolve all cargo clippy warnings - daemon: Box::pin large future in heartbeat worker - wizard: remove redundant match arms with identical bodies, fix stale test that expected venice to be unsupported - proxy_config: allow clippy::option_option on intentional partial-update return type - matrix: use String::new() instead of "".to_string() - reliable: return expression directly instead of let-and-return Co-Authored-By: Claude Opus 4.6 --- src/channels/matrix.rs | 2 +- src/daemon/mod.rs | 2 +- src/onboard/wizard.rs | 4 +--- src/providers/reliable.rs | 6 ++---- src/tools/proxy_config.rs | 1 + 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/channels/matrix.rs b/src/channels/matrix.rs index 0b063c5..0216a21 100644 --- a/src/channels/matrix.rs +++ b/src/channels/matrix.rs @@ -726,7 +726,7 @@ mod tests { "!r:m".to_string(), vec![], Some(" ".to_string()), - Some("".to_string()), + Some(String::new()), ); assert!(ch.session_user_id_hint.is_none()); diff --git a/src/daemon/mod.rs b/src/daemon/mod.rs index ca0834b..aea2b08 100644 --- a/src/daemon/mod.rs +++ b/src/daemon/mod.rs @@ -66,7 +66,7 @@ pub async fn run(config: Config, host: String, port: u16) -> Result<()> { max_backoff, move || { let cfg = heartbeat_cfg.clone(); - async move { run_heartbeat_worker(cfg).await } + async move { Box::pin(run_heartbeat_worker(cfg)).await } }, )); } diff --git a/src/onboard/wizard.rs b/src/onboard/wizard.rs index d7aed97..dc20177 100644 --- a/src/onboard/wizard.rs +++ b/src/onboard/wizard.rs @@ -500,7 +500,6 @@ const MINIMAX_ONBOARD_MODELS: [(&str, &str); 5] = [ fn default_model_for_provider(provider: &str) -> String { match canonical_provider_name(provider) { "anthropic" => "claude-sonnet-4-5-20250929".into(), - "openrouter" => "anthropic/claude-sonnet-4.6".into(), "openai" => "gpt-5.2".into(), "openai-codex" => "gpt-5-codex".into(), "venice" => "zai-org-glm-5".into(), @@ -520,7 +519,6 @@ fn default_model_for_provider(provider: &str) -> String { "gemini" => "gemini-2.5-pro".into(), "kimi-code" => "kimi-for-coding".into(), "nvidia" => "meta/llama-3.3-70b-instruct".into(), - "astrai" => "anthropic/claude-sonnet-4.6".into(), _ => "anthropic/claude-sonnet-4.6".into(), } } @@ -5190,7 +5188,7 @@ mod tests { let config = Config { workspace_dir: tmp.path().to_path_buf(), - default_provider: Some("venice".to_string()), + default_provider: Some("unknown-provider".to_string()), ..Config::default() }; diff --git a/src/providers/reliable.rs b/src/providers/reliable.rs index 85f9019..82b7d83 100644 --- a/src/providers/reliable.rs +++ b/src/providers/reliable.rs @@ -45,14 +45,12 @@ fn is_non_retryable(err: &anyhow::Error) -> bool { return true; } - let model_catalog_mismatch = msg_lower.contains("model") + msg_lower.contains("model") && (msg_lower.contains("not found") || msg_lower.contains("unknown") || msg_lower.contains("unsupported") || msg_lower.contains("does not exist") - || msg_lower.contains("invalid")); - - model_catalog_mismatch + || msg_lower.contains("invalid")) } /// Check if an error is a rate-limit (429) error. diff --git a/src/tools/proxy_config.rs b/src/tools/proxy_config.rs index 3ddde9e..5b8b259 100644 --- a/src/tools/proxy_config.rs +++ b/src/tools/proxy_config.rs @@ -93,6 +93,7 @@ impl ProxyConfigTool { anyhow::bail!("'{field}' must be a string or string[]") } + #[allow(clippy::option_option)] // Outer=field present, inner=value-or-null (partial update) fn parse_optional_string_update( args: &Value, field: &str,