From 08d8848346fa6a285f4c716d2a7e2672bc2d6d29 Mon Sep 17 00:00:00 2001 From: Gabriel Gordon-Hall Date: Mon, 8 Dec 2025 15:36:38 +0000 Subject: [PATCH] remove redundant or unused deps (#1462) --- Cargo.lock | 118 ++---------------- crates/executors/Cargo.toml | 2 - .../src/executors/acp/normalize_logs.rs | 9 +- .../src/executors/codex/normalize_logs.rs | 13 +- crates/executors/src/executors/opencode.rs | 12 +- crates/executors/src/profile.rs | 14 ++- crates/local-deployment/Cargo.toml | 2 - crates/remote/Cargo.toml | 2 - crates/server/Cargo.toml | 1 - crates/services/Cargo.toml | 2 - .../services/src/services/worktree_manager.rs | 8 +- crates/utils/Cargo.toml | 1 - 12 files changed, 36 insertions(+), 148 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 241cfe71..b556847a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -466,41 +466,13 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core 0.4.5", - "bytes", - "futures-util", - "http 1.3.1", - "http-body", - "http-body-util", - "itoa", - "matchit 0.7.3", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "axum" version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" dependencies = [ - "axum-core 0.5.5", + "axum-core", "axum-macros", "base64", "bytes", @@ -512,7 +484,7 @@ dependencies = [ "hyper", "hyper-util", "itoa", - "matchit 0.8.4", + "matchit", "memchr", "mime", "multer", @@ -532,27 +504,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.3.1", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "axum-core" version = "0.5.5" @@ -572,38 +523,14 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum-extra" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" -dependencies = [ - "axum 0.7.9", - "axum-core 0.4.5", - "bytes", - "fastrand", - "futures-util", - "headers", - "http 1.3.1", - "http-body", - "http-body-util", - "mime", - "multer", - "pin-project-lite", - "serde", - "tower", - "tower-layer", - "tower-service", -] - [[package]] name = "axum-extra" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9963ff19f40c6102c76756ef0a46004c0d58957d87259fc9208ff8441c12ab96" dependencies = [ - "axum 0.8.6", - "axum-core 0.5.5", + "axum", + "axum-core", "bytes", "futures-util", "headers", @@ -1285,7 +1212,7 @@ version = "0.0.131" dependencies = [ "anyhow", "async-trait", - "axum 0.8.6", + "axum", "db", "executors", "futures", @@ -1636,7 +1563,7 @@ version = "0.0.131" dependencies = [ "agent-client-protocol", "async-trait", - "axum 0.8.6", + "axum", "bon", "bytes", "chrono", @@ -1651,9 +1578,7 @@ dependencies = [ "fork_stream", "futures", "futures-io", - "icu_provider", "json-patch", - "lazy_static", "mcp-types", "os_pipe", "regex", @@ -2923,8 +2848,6 @@ dependencies = [ "globwalk", "json-patch", "nix 0.29.0", - "notify", - "notify-debouncer-full", "openssl-sys", "reqwest", "sentry", @@ -2997,12 +2920,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "matchit" version = "0.8.4" @@ -4021,12 +3938,11 @@ dependencies = [ "aes-gcm", "anyhow", "async-trait", - "axum 0.8.6", - "axum-extra 0.10.3", + "axum", + "axum-extra", "base64", "chrono", "futures", - "hmac", "jsonwebtoken 9.3.1", "rand 0.9.2", "reqwest", @@ -4037,7 +3953,6 @@ dependencies = [ "serde_json", "sha2", "sqlx", - "subtle", "thiserror 2.0.17", "tokio", "tokio-stream", @@ -4712,8 +4627,7 @@ name = "server" version = "0.0.131" dependencies = [ "anyhow", - "axum 0.8.6", - "axum-extra 0.9.6", + "axum", "chrono", "db", "deployment", @@ -4760,7 +4674,7 @@ version = "0.0.131" dependencies = [ "anyhow", "async-trait", - "axum 0.8.6", + "axum", "backon", "base64", "chrono", @@ -4775,7 +4689,6 @@ dependencies = [ "git2", "ignore", "json-patch", - "lazy_static", "moka", "notify", "notify-debouncer-full", @@ -4799,7 +4712,6 @@ dependencies = [ "thiserror 2.0.17", "tokio", "tokio-stream", - "tokio-tungstenite", "tokio-util", "tracing", "ts-rs 11.0.1", @@ -5497,12 +5409,8 @@ checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", - "rustls", - "rustls-pki-types", "tokio", - "tokio-rustls", "tungstenite", - "webpki-roots 0.26.11", ] [[package]] @@ -5812,11 +5720,8 @@ dependencies = [ "httparse", "log", "rand 0.9.2", - "rustls", - "rustls-pki-types", "sha1", "thiserror 2.0.17", - "url", "utf-8", ] @@ -5971,7 +5876,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" name = "utils" version = "0.0.131" dependencies = [ - "axum 0.8.6", + "axum", "bytes", "chrono", "directories", @@ -5996,7 +5901,6 @@ dependencies = [ "thiserror 2.0.17", "tokio", "tokio-stream", - "tokio-tungstenite", "tokio-util", "tracing", "tracing-subscriber", diff --git a/crates/executors/Cargo.toml b/crates/executors/Cargo.toml index 2cf898b0..46af093b 100644 --- a/crates/executors/Cargo.toml +++ b/crates/executors/Cargo.toml @@ -22,7 +22,6 @@ async-trait = { workspace = true } directories = "6.0.0" command-group = { version = "5.0", features = ["with-tokio"] } regex = "1.11.1" -lazy_static = "1.4" json-patch = "2.0" thiserror = { workspace = true } enum_dispatch = "0.3.13" @@ -45,7 +44,6 @@ codex-app-server-protocol = { git = "https://github.com/openai/codex.git", packa codex-mcp-types = { git = "https://github.com/openai/codex.git", package = "mcp-types", rev = "80d6a3868ef1414e0fb1c2e28a369f2ef4fa4dcc" } sha2 = "0.10" derivative = "2.2.0" -icu_provider = { version = "2.1.1", default-features = false, features = ["sync"] } [target.'cfg(windows)'.dependencies] winsplit = "0.1.0" diff --git a/crates/executors/src/executors/acp/normalize_logs.rs b/crates/executors/src/executors/acp/normalize_logs.rs index 8c68c88d..fbfcda88 100644 --- a/crates/executors/src/executors/acp/normalize_logs.rs +++ b/crates/executors/src/executors/acp/normalize_logs.rs @@ -1,12 +1,11 @@ use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::Arc, + sync::{Arc, LazyLock}, }; use agent_client_protocol::{self as acp, SessionNotification}; use futures::StreamExt; -use lazy_static::lazy_static; use regex::Regex; use serde::Deserialize; use tracing::debug; @@ -487,10 +486,8 @@ pub fn normalize_logs(msg_store: Arc, worktree_path: &Path) { fn extract_url_from_text(text: &str) -> Option { // Simple URL extractor - lazy_static! { - static ref URL_RE: Regex = - Regex::new(r#"https?://[^\s"')]+"#).expect("valid regex"); - } + static URL_RE: LazyLock = + LazyLock::new(|| Regex::new(r#"https?://[^\s"')]+"#).expect("valid regex")); URL_RE.find(text).map(|m| m.as_str().to_string()) } diff --git a/crates/executors/src/executors/codex/normalize_logs.rs b/crates/executors/src/executors/codex/normalize_logs.rs index 0084b0c9..180af776 100644 --- a/crates/executors/src/executors/codex/normalize_logs.rs +++ b/crates/executors/src/executors/codex/normalize_logs.rs @@ -1,7 +1,7 @@ use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::Arc, + sync::{Arc, LazyLock}, }; use codex_app_server_protocol::{ @@ -22,7 +22,6 @@ use codex_protocol::{ }, }; use futures::StreamExt; -use lazy_static::lazy_static; use regex::Regex; use serde::{Deserialize, Serialize}; use serde_json::Value; @@ -1074,12 +1073,10 @@ fn build_command_output(stdout: Option<&str>, stderr: Option<&str>) -> Option = LazyLock::new(|| { + Regex::new(r#"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})"#) + .expect("valid regex") +}); #[derive(Serialize, Deserialize, Debug)] pub enum Error { diff --git a/crates/executors/src/executors/opencode.rs b/crates/executors/src/executors/opencode.rs index 5ed30d12..3fb3cabd 100644 --- a/crates/executors/src/executors/opencode.rs +++ b/crates/executors/src/executors/opencode.rs @@ -3,14 +3,13 @@ mod share_bridge; use std::{ path::{Path, PathBuf}, process::Stdio, - sync::Arc, + sync::{Arc, LazyLock}, }; use async_trait::async_trait; use command_group::AsyncCommandGroup; use fork_stream::StreamExt as _; use futures::{StreamExt, future::ready, stream::BoxStream}; -use lazy_static::lazy_static; use regex::Regex; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -982,10 +981,11 @@ pub struct TodoInfo { // Log interpretation UTILITIES // ============================================================================= -lazy_static! { - // Accurate regex for OpenCode log lines: LEVEL timestamp +ms ... - static ref OPENCODE_LOG_REGEX: Regex = Regex::new(r"^(INFO|DEBUG|WARN|ERROR)\s+\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\s+\+\d+\s*ms.*").unwrap(); -} +// Accurate regex for OpenCode log lines: LEVEL timestamp +ms ... +static OPENCODE_LOG_REGEX: LazyLock = LazyLock::new(|| { + Regex::new(r"^(INFO|DEBUG|WARN|ERROR)\s+\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\s+\+\d+\s*ms.*") + .unwrap() +}); /// Log utilities for OpenCode processing pub struct LogUtils; diff --git a/crates/executors/src/profile.rs b/crates/executors/src/profile.rs index e3284562..1c247ad3 100644 --- a/crates/executors/src/profile.rs +++ b/crates/executors/src/profile.rs @@ -1,7 +1,11 @@ -use std::{collections::HashMap, fs, str::FromStr, sync::RwLock}; +use std::{ + collections::HashMap, + fs, + str::FromStr, + sync::{LazyLock, RwLock}, +}; use convert_case::{Case, Casing}; -use lazy_static::lazy_static; use serde::{Deserialize, Deserializer, Serialize, de::Error as DeError}; use thiserror::Error; use ts_rs::TS; @@ -47,10 +51,8 @@ pub enum ProfileError { NoAvailableExecutorProfile, } -lazy_static! { - static ref EXECUTOR_PROFILES_CACHE: RwLock = - RwLock::new(ExecutorConfigs::load()); -} +static EXECUTOR_PROFILES_CACHE: LazyLock> = + LazyLock::new(|| RwLock::new(ExecutorConfigs::load())); // New format default profiles (v3 - flattened) const DEFAULT_PROFILES_JSON: &str = include_str!("../default_profiles.json"); diff --git a/crates/local-deployment/Cargo.toml b/crates/local-deployment/Cargo.toml index 86c09ee8..d06c69fc 100644 --- a/crates/local-deployment/Cargo.toml +++ b/crates/local-deployment/Cargo.toml @@ -21,8 +21,6 @@ thiserror = { workspace = true } command-group = { version = "5.0", features = ["with-tokio"] } nix = { version = "0.29", features = ["signal", "process"] } openssl-sys = { workspace = true } -notify = "8.2.0" -notify-debouncer-full = "0.5.0" reqwest = { version = "0.12", features = ["json"] } sentry = { version = "0.41.0", features = ["anyhow", "backtrace", "panic", "debug-images"] } futures = "0.3" diff --git a/crates/remote/Cargo.toml b/crates/remote/Cargo.toml index 15d6801d..0ff234df 100644 --- a/crates/remote/Cargo.toml +++ b/crates/remote/Cargo.toml @@ -34,5 +34,3 @@ rand = "0.9" sha2 = "0.10" url = "2.5" base64 = "0.22" -hmac = "0.12" -subtle = "2.6" diff --git a/crates/server/Cargo.toml b/crates/server/Cargo.toml index bab06591..8b06e81d 100644 --- a/crates/server/Cargo.toml +++ b/crates/server/Cargo.toml @@ -43,7 +43,6 @@ ignore = "0.4" git2 = "0.18" mime_guess = "2.0" rust-embed = "8.2" -axum-extra = { version = "0.9", features = ["typed-header"] } url = "2.5" rand = { version = "0.8", features = ["std"] } sha2 = "0.10" diff --git a/crates/services/Cargo.toml b/crates/services/Cargo.toml index 4a4ff5f1..7f5bbca8 100644 --- a/crates/services/Cargo.toml +++ b/crates/services/Cargo.toml @@ -35,7 +35,6 @@ regex = "1.11.1" notify-rust = "4.11" os_info = "3.12.0" reqwest = { version = "0.12", features = ["json"] } -lazy_static = "1.4" futures-util = "0.3" json-patch = "2.0" backon = "1.5.1" @@ -47,7 +46,6 @@ strum_macros = "0.27.2" strum = "0.27.2" notify = "8.2.0" notify-debouncer-full = "0.5.0" -tokio-tungstenite = { version = "0.28.0", features = ["rustls-tls-webpki-roots"] } dunce = "1.0" dashmap = "6.1" once_cell = "1.20" diff --git a/crates/services/src/services/worktree_manager.rs b/crates/services/src/services/worktree_manager.rs index 6a7e8106..b8253428 100644 --- a/crates/services/src/services/worktree_manager.rs +++ b/crates/services/src/services/worktree_manager.rs @@ -1,7 +1,7 @@ use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::{Arc, Mutex}, + sync::{Arc, LazyLock, Mutex}, }; use git2::{Error as GitError, Repository}; @@ -12,10 +12,8 @@ use utils::shell::resolve_executable_path; use super::git::{GitService, GitServiceError}; // Global synchronization for worktree creation to prevent race conditions -lazy_static::lazy_static! { - static ref WORKTREE_CREATION_LOCKS: Arc>>>> = - Arc::new(Mutex::new(HashMap::new())); -} +static WORKTREE_CREATION_LOCKS: LazyLock>>>> = + LazyLock::new(|| Mutex::new(HashMap::new())); #[derive(Debug, Clone)] pub struct WorktreeCleanup { diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index e796cb84..99d9ddb6 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -27,7 +27,6 @@ jsonwebtoken = { version = "10.2.0", features = ["rust_crypto"] } tokio = { workspace = true } futures = "0.3.31" tokio-stream = { version = "0.1.17", features = ["sync"] } -tokio-tungstenite = { version = "0.28", features = ["rustls-tls-webpki-roots", "url"] } shellexpand = "3.1.1" which = "8.0.0" similar = "2"