From bceba665c0f7a1d5c45bbc3c6c0ad6f7970f067c Mon Sep 17 00:00:00 2001 From: asepharyana Date: Mon, 20 Jul 2026 07:02:55 +0700 Subject: [PATCH] refactor: remove unused tracing imports across multiple files --- .../src/app/subagent/auto/mod.rs | 93 +++++++++---------- .../zesdex-backend/src/app/subagent/engine.rs | 7 +- .../zesdex-backend/src/app/subagent/spawn.rs | 6 -- crates/zesdex-backend/src/attach.rs | 1 - crates/zesdex-backend/src/bin/migrate.rs | 1 - crates/zesdex-backend/src/bin/seed.rs | 1 - crates/zesdex-backend/src/daemon.rs | 1 - crates/zesdex-backend/src/event_loop.rs | 1 - crates/zesdex-backend/src/main.rs | 1 - crates/zesdex-backend/src/session.rs | 1 - crates/zesdex-backend/src/tool/mod.rs | 1 - crates/zesdex-backend/src/tool/workflow.rs | 1 - crates/zesdex-backend/src/view/mod.rs | 1 - 13 files changed, 48 insertions(+), 68 deletions(-) diff --git a/crates/zesdex-backend/src/app/subagent/auto/mod.rs b/crates/zesdex-backend/src/app/subagent/auto/mod.rs index 0fdb40d..8a9adc3 100644 --- a/crates/zesdex-backend/src/app/subagent/auto/mod.rs +++ b/crates/zesdex-backend/src/app/subagent/auto/mod.rs @@ -62,7 +62,7 @@ impl Drop for RunningGuard { } /// ─── Helpers ─── - +/// /// Derive a human-readable message prefix from the internal kind label. /// /// Production callers always pass one of the three known labels @@ -237,20 +237,46 @@ fn run_subagent_with_retry( /// b. Creates an `AgentDefinition` and calls `run_subagent_with_retry`. /// c. Formats the result as a `SystemNote` message. /// d. Pushes the note onto `turn_events` for TUI consumption. +/// +/// Shared configuration for a background review subagent. +/// +/// Bundles arguments common across all review kinds into a single struct +/// so `spawn_background_review` stays under the clippy argument-count limit. +struct BackgroundReviewCfg { + file_paths: Vec, + session_dir: std::path::PathBuf, + workspaces: Vec, + turn_events: Arc>>, + abort_flag: Arc, +} + +impl BackgroundReviewCfg { + fn new( + file_paths: &[String], + session_dir: &Path, + workspaces: &[std::path::PathBuf], + turn_events: &Arc>>, + abort_flag: Arc, + ) -> Self { + Self { + file_paths: file_paths.to_vec(), + session_dir: session_dir.to_path_buf(), + workspaces: workspaces.to_vec(), + turn_events: turn_events.clone(), + abort_flag, + } + } +} + fn spawn_background_review( kind: &str, running_flag: &'static AtomicBool, prompt_constant: &str, agent_name: &str, agent_role: &str, - file_paths: Vec, - session_dir: std::path::PathBuf, - workspaces: Vec, - turn_events: Arc>>, - abort_flag: Arc, + cfg: BackgroundReviewCfg, ) { - // Early return: no files to review or another run of this kind is active. - if file_paths.is_empty() { + if cfg.file_paths.is_empty() { return; } if running_flag @@ -261,34 +287,26 @@ fn spawn_background_review( return; } - // Copy arguments into owned values for the spawned thread. - let sd = session_dir; - let ws = workspaces; - let events = turn_events; let prompt_text = format!( "{}\n\nModified files:\n{}", prompt_constant, - file_paths.join("\n"), + cfg.file_paths.join("\n"), ); let label = kind.to_string(); let agent_name = agent_name.to_string(); let agent_role = agent_role.to_string(); let prefix = message_prefix(kind); - // Spawn a dedicated OS thread for the background review. std::thread::spawn(move || { - // RunningGuard resets the flag on drop (including panic unwind). let _running_guard = RunningGuard(running_flag); - tracing::info!("[{label}] spawning for {} file(s)", file_paths.len()); + tracing::info!("[{label}] spawning for {} file(s)", cfg.file_paths.len()); let def = AgentDefinition::new(agent_name, agent_role).with_system_prompt(prompt_text); - // Run the subagent with a single retry on failure. - let result = run_subagent_with_retry(&def, &sd, &ws, &label, Some(&abort_flag)); + let result = run_subagent_with_retry( + &def, &cfg.session_dir, &cfg.workspaces, &label, Some(&cfg.abort_flag), + ); - // Format the result as a user-facing SystemNote message. - // Errors that mention "aborted" get a soft "cancelled" prefix; - // other errors get an "ESCALATED:" prefix to catch the user's eye. let message = match &result { Ok(output) => { let first = output.lines().next().unwrap_or(output); @@ -298,8 +316,7 @@ fn spawn_background_review( Err(e) => format!("ESCALATED: {prefix} {e}"), }; - // Push the SystemNote onto the shared turn_events queue. - if let Ok(mut q) = events.lock() { + if let Ok(mut q) = cfg.turn_events.lock() { q.push_back(TurnEvent::SystemNote { kind: label.clone(), message, @@ -311,24 +328,6 @@ fn spawn_background_review( }); } -/// Collect the trailing arguments shared by all background-review spawners -/// into owned values, reducing boilerplate in each individual spawner function. -fn review_args<'a>( - file_paths: &'a [String], - session_dir: &'a Path, - workspaces: &'a [std::path::PathBuf], - turn_events: &'a Arc>>, - abort_flag: Arc, -) -> (Vec, std::path::PathBuf, Vec, Arc>>, Arc) { - ( - file_paths.to_vec(), - session_dir.to_path_buf(), - workspaces.to_vec(), - turn_events.clone(), - abort_flag, - ) -} - /// Spawn a background subagent that generates tests for modified files. /// /// Only fires for production source files (non-test, non-config). @@ -341,11 +340,11 @@ pub fn spawn_background_test_gen( abort_flag: Arc, ) { tracing::debug!("[auto] spawn_background_test_gen: {} file(s)", file_paths.len()); - let (fps, sd, ws, te, af) = review_args(file_paths, session_dir, workspaces, turn_events, abort_flag); + let cfg = BackgroundReviewCfg::new(file_paths, session_dir, workspaces, turn_events, abort_flag); spawn_background_review( "bg-test-gen", &TEST_GEN_RUNNING, crate::prompts::TEST_GENERATOR_PROMPT, "test-generator", "coder", - fps, sd, ws, te, af, + cfg, ); } @@ -361,11 +360,11 @@ pub fn spawn_background_arch_review( abort_flag: Arc, ) { tracing::debug!("[auto] spawn_background_arch_review: {} file(s)", file_paths.len()); - let (fps, sd, ws, te, af) = review_args(file_paths, session_dir, workspaces, turn_events, abort_flag); + let cfg = BackgroundReviewCfg::new(file_paths, session_dir, workspaces, turn_events, abort_flag); spawn_background_review( "bg-arch-review", &ARCH_REVIEW_RUNNING, crate::prompts::ARCH_REVIEWER_PROMPT, "arch-reviewer", "reviewer", - fps, sd, ws, te, af, + cfg, ); } @@ -384,16 +383,16 @@ pub fn spawn_background_security_review( tracing::debug!("[auto] spawn_background_security_review: {} file(s)", file_paths.len()); // Security review only applies to production code, not tests or config. - let (_, sd, ws, te, af) = review_args(file_paths, session_dir, workspaces, turn_events, abort_flag); let prod_paths: Vec = file_paths .iter() .filter(|p| is_production_code(p)) .cloned() .collect(); + let cfg = BackgroundReviewCfg::new(&prod_paths, session_dir, workspaces, turn_events, abort_flag); spawn_background_review( "bg-security-review", &SECURITY_REVIEW_RUNNING, crate::prompts::SECURITY_REVIEWER_PROMPT, "security-reviewer", "reviewer", - prod_paths, sd, ws, te, af, + cfg, ); } diff --git a/crates/zesdex-backend/src/app/subagent/engine.rs b/crates/zesdex-backend/src/app/subagent/engine.rs index 8dd4040..3e43e21 100644 --- a/crates/zesdex-backend/src/app/subagent/engine.rs +++ b/crates/zesdex-backend/src/app/subagent/engine.rs @@ -99,12 +99,9 @@ fn format_subagent_progress(prefix: &str, text: &str) -> String { /// 5. Fail fast if no API key is configured. /// 6. For each step (up to `max_steps`): /// a. Check abort flag. -/// b. Call LLM via `chat_with_tools_streaming` with per-SSE-event -/// abort checking and up to 3 step-level retries. +/// b. Call LLM via `chat_with_tools_streaming`, per-SSE-event abort checking and up to 3 step-level retries. /// c. Emit progress / usage / step events on the mpsc channel. -/// d. Execute tool calls in parallel via `std::thread::scope`, -/// each gated by the three-layer pipeline (allowlist → risky → -/// content-safety). +/// d. Execute tool calls in parallel via `std::thread::scope`, each gated by the three-layer pipeline (allowlist → risky → content-safety). /// e. Auto-share read-only tool results to `workflow_findings`. /// f. Break on first text-only (non-empty) response. /// 7. Send `Completed` event and return the accumulated output. diff --git a/crates/zesdex-backend/src/app/subagent/spawn.rs b/crates/zesdex-backend/src/app/subagent/spawn.rs index f2d462c..abf357a 100644 --- a/crates/zesdex-backend/src/app/subagent/spawn.rs +++ b/crates/zesdex-backend/src/app/subagent/spawn.rs @@ -67,12 +67,6 @@ impl AgentDefinition { self } - /// Builder method: set the temperature override for this agent's LLM calls. - pub fn with_temperature(mut self, temperature: f32) -> Self { - tracing::debug!("[subagent] AgentDefinition::with_temperature({temperature})"); - self.temperature = Some(temperature); - self - } } /// Shared subagent spawning utility: creates an mpsc channel and spawns a diff --git a/crates/zesdex-backend/src/attach.rs b/crates/zesdex-backend/src/attach.rs index 0066ee2..f7a6873 100644 --- a/crates/zesdex-backend/src/attach.rs +++ b/crates/zesdex-backend/src/attach.rs @@ -13,7 +13,6 @@ //! The client has no agent logic — it is a pure render frontend. use anyhow::Result; -use tracing; use app::state::rest::AppStateRest; use app::state::types::{Overlay, Toast, ToastKind}; use crossterm::execute; diff --git a/crates/zesdex-backend/src/bin/migrate.rs b/crates/zesdex-backend/src/bin/migrate.rs index 1cd1168..74b04e9 100644 --- a/crates/zesdex-backend/src/bin/migrate.rs +++ b/crates/zesdex-backend/src/bin/migrate.rs @@ -23,7 +23,6 @@ use std::path::Path; -use tracing; /// Entry point: migrate all session databases. /// diff --git a/crates/zesdex-backend/src/bin/seed.rs b/crates/zesdex-backend/src/bin/seed.rs index c0ff6fc..7b42c19 100644 --- a/crates/zesdex-backend/src/bin/seed.rs +++ b/crates/zesdex-backend/src/bin/seed.rs @@ -15,7 +15,6 @@ //! All file writes use an atomic temp-file + rename pattern to prevent //! partial writes from corrupting configuration files during crashes. -use tracing; /// Entry point: initialise the store and create seed data. /// diff --git a/crates/zesdex-backend/src/daemon.rs b/crates/zesdex-backend/src/daemon.rs index 4a5b185..2c7379d 100644 --- a/crates/zesdex-backend/src/daemon.rs +++ b/crates/zesdex-backend/src/daemon.rs @@ -9,7 +9,6 @@ use app::runtime::actions::{apply_action, Action}; use app::state::rest::AppStateRest; use crossterm::event::KeyCode; use ipc::protocol::{ClientRequest, DaemonFrame, MessageEntry, StatePayload, ToastEntry}; -use tracing; use zesdex_cms::domain::repository::SettingsRepository; use zesdex_utils::CastOr; diff --git a/crates/zesdex-backend/src/event_loop.rs b/crates/zesdex-backend/src/event_loop.rs index fd5bb10..9a1925c 100644 --- a/crates/zesdex-backend/src/event_loop.rs +++ b/crates/zesdex-backend/src/event_loop.rs @@ -14,7 +14,6 @@ //! iteration (drives streaming/background progress) → on quit, clear. use anyhow::Result; -use tracing; use app::runtime::actions::{apply_action, Action}; use app::state::rest::AppStateRest; use controller::input::handle_key; diff --git a/crates/zesdex-backend/src/main.rs b/crates/zesdex-backend/src/main.rs index a9b0565..c0c7602 100644 --- a/crates/zesdex-backend/src/main.rs +++ b/crates/zesdex-backend/src/main.rs @@ -7,7 +7,6 @@ use anyhow::Result; use std::sync::Mutex; -use tracing; use zesdex_iam::domain::repository::{SessionLockRepository, SessionRepository}; diff --git a/crates/zesdex-backend/src/session.rs b/crates/zesdex-backend/src/session.rs index cd8d076..14123a9 100644 --- a/crates/zesdex-backend/src/session.rs +++ b/crates/zesdex-backend/src/session.rs @@ -10,7 +10,6 @@ //! the session lock is cleaned up. use std::path::PathBuf; -use tracing; /// RAII guard that releases a session lock on drop, restoring the /// panic-safety net the old `entities::SessionLock`'s `Drop` impl provided diff --git a/crates/zesdex-backend/src/tool/mod.rs b/crates/zesdex-backend/src/tool/mod.rs index 747977e..b7494bc 100644 --- a/crates/zesdex-backend/src/tool/mod.rs +++ b/crates/zesdex-backend/src/tool/mod.rs @@ -12,7 +12,6 @@ use sha2::Digest; use std::path::PathBuf; use std::sync::atomic::AtomicBool; use std::sync::{Arc, Mutex}; -use tracing; pub mod bash_tools; pub mod fs; diff --git a/crates/zesdex-backend/src/tool/workflow.rs b/crates/zesdex-backend/src/tool/workflow.rs index 638a29e..34f6b9b 100644 --- a/crates/zesdex-backend/src/tool/workflow.rs +++ b/crates/zesdex-backend/src/tool/workflow.rs @@ -15,7 +15,6 @@ use super::Tool; use super::ToolCtx; use anyhow::{anyhow, Result}; use serde_json::{json, Value}; -use tracing; /// Tool that parses and executes a JSON-encoded workflow script (Agent/Parallel/Pipeline/Phase). pub struct WorkflowRun; diff --git a/crates/zesdex-backend/src/view/mod.rs b/crates/zesdex-backend/src/view/mod.rs index 2a94d19..2dd4fab 100644 --- a/crates/zesdex-backend/src/view/mod.rs +++ b/crates/zesdex-backend/src/view/mod.rs @@ -21,7 +21,6 @@ use ratatui::widgets::{Block, Borders, Clear, Paragraph, Wrap}; use ratatui::Frame; use theme::Theme; use zesdex_utils::CastOr; -use tracing; /// Minimum terminal width (columns) at which the persistent dashboard /// sidebar is shown; below this, chat reclaims the full width.