[INFO] cloning repository https://github.com/kart-io/ai-c [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kart-io/ai-c" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkart-io%2Fai-c", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkart-io%2Fai-c'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 34cf582fd7dac5fba837a877556de2b1a727269e [INFO] checking kart-io/ai-c against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkart-io%2Fai-c" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kart-io/ai-c [INFO] finished tweaking git repo https://github.com/kart-io/ai-c [INFO] tweaked toml for git repo https://github.com/kart-io/ai-c written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kart-io/ai-c on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kart-io/ai-c already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pest_derive v2.8.2 [INFO] [stderr] Downloaded pest_meta v2.8.2 [INFO] [stderr] Downloaded ordered-multimap v0.6.0 [INFO] [stderr] Downloaded config v0.14.0 [INFO] [stderr] Downloaded pest_generator v2.8.2 [INFO] [stderr] Downloaded rust-ini v0.19.0 [INFO] [stderr] Downloaded toml v0.8.8 [INFO] [stderr] Downloaded metrics v0.22.0 [INFO] [stderr] Downloaded tokio-test v0.4.3 [INFO] [stderr] Downloaded git2 v0.18.1 [INFO] [stderr] Downloaded libgit2-sys v0.16.2+1.7.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c61ca73b504a2f5bbecfed6b3ed0fa54751fa635e3862acf66f5c63711637598 [INFO] running `Command { std: "docker" "start" "-a" "c61ca73b504a2f5bbecfed6b3ed0fa54751fa635e3862acf66f5c63711637598", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c61ca73b504a2f5bbecfed6b3ed0fa54751fa635e3862acf66f5c63711637598", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c61ca73b504a2f5bbecfed6b3ed0fa54751fa635e3862acf66f5c63711637598", kill_on_drop: false }` [INFO] [stdout] c61ca73b504a2f5bbecfed6b3ed0fa54751fa635e3862acf66f5c63711637598 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f2fb3d82b8bf1dff45f020cada07869893deeed3192e22ddfa7938c635632993 [INFO] running `Command { std: "docker" "start" "-a" "f2fb3d82b8bf1dff45f020cada07869893deeed3192e22ddfa7938c635632993", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.195 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling serde_json v1.0.111 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling cc v1.2.37 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking pxfm v0.1.23 [INFO] [stderr] Checking base64 v0.21.5 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking winnow v0.5.40 [INFO] [stderr] Compiling async-trait v0.1.77 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling anyhow v1.0.79 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking bytemuck v1.23.2 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking convert_case v0.6.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking url v2.4.1 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking dlv-list v0.5.2 [INFO] [stderr] Checking pathdiff v0.2.3 [INFO] [stderr] Checking iana-time-zone v0.1.64 [INFO] [stderr] Checking clap_builder v4.5.47 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking regex-automata v0.4.10 [INFO] [stderr] Checking ordered-multimap v0.6.0 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking predicates v3.1.3 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.16.2+1.7.2 [INFO] [stderr] Checking rust-ini v0.19.0 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking clap v4.5.47 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking moxcms v0.7.5 [INFO] [stderr] Compiling stability v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.195 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking tokio v1.35.1 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling pest v2.8.2 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking mockall v0.12.1 [INFO] [stderr] Compiling pest_meta v2.8.2 [INFO] [stderr] Compiling pest_generator v2.8.2 [INFO] [stderr] Compiling pest_derive v2.8.2 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking tokio-test v0.4.3 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking chrono v0.4.31 [INFO] [stderr] Checking uuid v1.6.1 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking git2 v0.18.1 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Checking toml_edit v0.21.1 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking ratatui v0.25.0 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking image v0.25.8 [INFO] [stderr] Checking toml v0.8.8 [INFO] [stderr] Checking tempfile v3.8.1 [INFO] [stderr] Checking config v0.14.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking gethostname v1.0.2 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.23 [INFO] [stderr] Checking ai-c v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/ai/recovery.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use tracing::{error, info, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Branch`, `Oid`, `Reference`, `Repository`, and `Tag` [INFO] [stdout] --> src/git/workflow.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | use git2::{Branch, BranchType, Oid, Reference, Repository, Tag}; [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/git/workflow.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ui/components/sidebar.rs:242:29 [INFO] [stdout] | [INFO] [stdout] 242 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/tabs.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/ui/components/tabs.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SelectionMode` and `TextPosition` [INFO] [stdout] --> src/ui/components/tabs.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | selection::{TextPosition, SelectionMode}, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/modals/confirmation.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/components/modals/input.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `app::state::AppState` [INFO] [stdout] --> src/ui/components/modals/mod.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::{app::state::AppState, error::AppResult, ui::theme::Theme}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/search.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Text` [INFO] [stdout] --> src/ui/components/search.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ui/components/search.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Text` and `Wrap` [INFO] [stdout] --> src/ui/components/filter.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout` [INFO] [stdout] --> src/ui/components/global_search.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Constraint`, `Direction`, `Layout`, and `Paragraph` [INFO] [stdout] --> src/ui/components/context_menu.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/ui/components/search_index.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/ui/components/search_index.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment` and `Text` [INFO] [stdout] --> src/ui/components/git_operations.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 6 | style::{Color, Modifier, Style}, [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ui/components/git_operations.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/agent_manager.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BarChart` and `Text` [INFO] [stdout] --> src/ui/components/agent_manager.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, Gauge, List, ListItem, ListState, Paragraph, Tabs, Wrap, BarChart}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `ListItem`, `List`, `Modifier`, `Span`, and `Style` [INFO] [stdout] --> src/ui/components/help.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | style::{Color, Modifier, Style}, [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] 9 | text::{Line, Span}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Tabs, Wrap}, [INFO] [stdout] | ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActionKey` and `NavigationKey` [INFO] [stdout] --> src/ui/components/help.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | keyboard::{ActionKey, NavigationKey, ShortcutManager}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/keyboard.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/ai/recovery.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use tracing::{error, info, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ui/diff/utils.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Clear`, `Constraint`, `Direction`, `Layout`, `Modifier`, `Text`, and `Wrap` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] 8 | style::{Color, Modifier, Style}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 9 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Wrap}, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `max` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | cmp::{max, min}, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/ui/diff.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Clear`, `Line`, `ScrollbarOrientation`, `ScrollbarState`, `Scrollbar`, and `Text` [INFO] [stdout] --> src/ui/diff.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] 15 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, Wrap}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/ui/selection.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | use tracing::{debug, error, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `style::Style` [INFO] [stdout] --> src/ui/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | style::Style, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SelectionMode` and `TextPosition` [INFO] [stdout] --> src/ui/mod.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | use selection::{TextPosition, SelectionMode}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Branch`, `Oid`, `Reference`, `Repository`, and `Tag` [INFO] [stdout] --> src/git/workflow.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | use git2::{Branch, BranchType, Oid, Reference, Repository, Tag}; [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/git/workflow.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ui/components/sidebar.rs:242:29 [INFO] [stdout] | [INFO] [stdout] 242 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/tabs.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/ui/components/tabs.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SelectionMode` and `TextPosition` [INFO] [stdout] --> src/ui/components/tabs.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | selection::{TextPosition, SelectionMode}, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/modals/confirmation.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/components/modals/input.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `app::state::AppState` [INFO] [stdout] --> src/ui/components/modals/mod.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::{app::state::AppState, error::AppResult, ui::theme::Theme}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/search.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Text` [INFO] [stdout] --> src/ui/components/search.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ui/components/search.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Text` and `Wrap` [INFO] [stdout] --> src/ui/components/filter.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout` [INFO] [stdout] --> src/ui/components/global_search.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Constraint`, `Direction`, `Layout`, and `Paragraph` [INFO] [stdout] --> src/ui/components/context_menu.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/ui/components/search_index.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/ui/components/search_index.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment` and `Text` [INFO] [stdout] --> src/ui/components/git_operations.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 6 | style::{Color, Modifier, Style}, [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ui/components/git_operations.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/components/agent_manager.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BarChart` and `Text` [INFO] [stdout] --> src/ui/components/agent_manager.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, Clear, Gauge, List, ListItem, ListState, Paragraph, Tabs, Wrap, BarChart}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `ListItem`, `List`, `Modifier`, `Span`, and `Style` [INFO] [stdout] --> src/ui/components/help.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | style::{Color, Modifier, Style}, [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] 9 | text::{Line, Span}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Tabs, Wrap}, [INFO] [stdout] | ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActionKey` and `NavigationKey` [INFO] [stdout] --> src/ui/components/help.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | keyboard::{ActionKey, NavigationKey, ShortcutManager}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyModifiers` [INFO] [stdout] --> src/ui/keyboard.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ui/diff/utils.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Clear`, `Constraint`, `Direction`, `Layout`, `Modifier`, `Text`, and `Wrap` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] 8 | style::{Color, Modifier, Style}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 9 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Wrap}, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `max` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | cmp::{max, min}, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/ui/diff.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Clear`, `Line`, `ScrollbarOrientation`, `ScrollbarState`, `Scrollbar`, and `Text` [INFO] [stdout] --> src/ui/diff.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | text::{Line, Span, Text}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] 15 | widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, Wrap}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/ui/selection.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | use tracing::{debug, error, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `style::Style` [INFO] [stdout] --> src/ui/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | style::Style, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SelectionMode` and `TextPosition` [INFO] [stdout] --> src/ui/mod.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | use selection::{TextPosition, SelectionMode}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Component` [INFO] [stdout] --> src/ui/components/tabs.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | components::{Component, DiffViewerComponent, modals::{InputModal, Modal, ModalResult}}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Component` [INFO] [stdout] --> src/ui/components/tabs.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | components::{Component, DiffViewerComponent, modals::{InputModal, Modal, ModalResult}}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/ai/agents/commit_agent.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | request: &CommitGenerationRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/ai/agents/commit_agent.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | request: &CommitGenerationRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_data` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | file_data: &HashMap, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_data` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | file_data: &HashMap, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:766:13 [INFO] [stdout] | [INFO] [stdout] 766 | let request = CodeAnalysisRequest { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:783:13 [INFO] [stdout] | [INFO] [stdout] 783 | let config = CodeAnalysisConfig::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_cases` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:787:13 [INFO] [stdout] | [INFO] [stdout] 787 | let test_cases = vec![ [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_cases` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent_id` [INFO] [stdout] --> src/ai/health.rs:198:27 [INFO] [stdout] | [INFO] [stdout] 198 | async fn check(&self, agent_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent_id` [INFO] [stdout] --> src/ai/health.rs:198:27 [INFO] [stdout] | [INFO] [stdout] 198 | async fn check(&self, agent_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `branch` [INFO] [stdout] --> src/git/operations.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let branch = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_id` [INFO] [stdout] --> src/git/operations.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | let tag_id = if let Some(msg) = message { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `repo_guard` [INFO] [stdout] --> src/git/service.rs:1180:13 [INFO] [stdout] | [INFO] [stdout] 1180 | let repo_guard = tokio::task::block_in_place(|| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repo_guard` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `branch` [INFO] [stdout] --> src/git/operations.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let branch = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_id` [INFO] [stdout] --> src/git/operations.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | let tag_id = if let Some(msg) = message { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `repo_guard` [INFO] [stdout] --> src/git/service.rs:1180:13 [INFO] [stdout] | [INFO] [stdout] 1180 | let repo_guard = tokio::task::block_in_place(|| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repo_guard` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `upstream` [INFO] [stdout] --> src/ui/components/sidebar.rs:173:48 [INFO] [stdout] | [INFO] [stdout] 173 | ... } else if let Some(ref upstream) = branch.upstream { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upstream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff.rs:765:103 [INFO] [stdout] | [INFO] [stdout] 765 | async fn render_side(&mut self, frame: &mut Frame<'_>, area: Rect, diff: &FileDiff, is_old: bool, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff.rs:818:92 [INFO] [stdout] | [INFO] [stdout] 818 | async fn render_unified(&mut self, frame: &mut Frame<'_>, area: Rect, diff: &FileDiff, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:366:98 [INFO] [stdout] | [INFO] [stdout] 366 | async fn render_stats_overlay(&self, frame: &mut Frame<'_>, area: Rect, viewer: &DiffViewer, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `upstream` [INFO] [stdout] --> src/ui/components/sidebar.rs:173:48 [INFO] [stdout] | [INFO] [stdout] 173 | ... } else if let Some(ref upstream) = branch.upstream { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upstream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff.rs:765:103 [INFO] [stdout] | [INFO] [stdout] 765 | async fn render_side(&mut self, frame: &mut Frame<'_>, area: Rect, diff: &FileDiff, is_old: bool, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff.rs:818:92 [INFO] [stdout] | [INFO] [stdout] 818 | async fn render_unified(&mut self, frame: &mut Frame<'_>, area: Rect, diff: &FileDiff, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:366:98 [INFO] [stdout] | [INFO] [stdout] 366 | async fn render_stats_overlay(&self, frame: &mut Frame<'_>, area: Rect, viewer: &DiffViewer, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:284:65 [INFO] [stdout] | [INFO] [stdout] 284 | fn render_loading(&self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:308:76 [INFO] [stdout] | [INFO] [stdout] 308 | fn render_error(&self, frame: &mut Frame<'_>, area: Rect, error: &str, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:324:70 [INFO] [stdout] | [INFO] [stdout] 324 | fn render_help_overlay(&self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:426:13 [INFO] [stdout] | [INFO] [stdout] 426 | let viewer = self.viewer.read().await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:434:13 [INFO] [stdout] | [INFO] [stdout] 434 | let viewer = self.viewer.read().await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/search.rs:491:65 [INFO] [stdout] | [INFO] [stdout] 491 | fn render_results(&mut self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/ui/components/filter.rs:427:35 [INFO] [stdout] | [INFO] [stdout] 427 | fn matches_size_filter(&self, size: u64, filter: &str) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filter` [INFO] [stdout] --> src/ui/components/filter.rs:427:46 [INFO] [stdout] | [INFO] [stdout] 427 | fn matches_size_filter(&self, size: u64, filter: &str) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/filter.rs:531:72 [INFO] [stdout] | [INFO] [stdout] 531 | fn render_type_selection(&mut self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit` [INFO] [stdout] --> src/ui/components/commit_history.rs:350:66 [INFO] [stdout] | [INFO] [stdout] 350 | fn render_commit_files(&self, frame: &mut Frame, area: Rect, commit: &CommitInfo, theme: &Theme) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/commit_history.rs:378:84 [INFO] [stdout] | [INFO] [stdout] 378 | fn render_footer(&self, frame: &mut Frame, area: Rect, commits: &[CommitInfo], theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/components/commit_history.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | let mut filtered: Vec = all_commits.into_iter() [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/components/commit_history.rs:548:59 [INFO] [stdout] | [INFO] [stdout] 548 | fn handle_details_key_event(&mut self, key: KeyEvent, state: &mut AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit` [INFO] [stdout] --> src/ui/components/commit_history.rs:572:36 [INFO] [stdout] | [INFO] [stdout] 572 | fn load_commit_diff(&mut self, commit: &CommitInfo, _state: &AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/ui/components/context_menu.rs:236:51 [INFO] [stdout] | [INFO] [stdout] 236 | fn get_context_menu_items_for_position(&self, position: (u16, u16), area: Rect) -> Vec { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/context_menu.rs:236:73 [INFO] [stdout] | [INFO] [stdout] 236 | fn get_context_menu_items_for_position(&self, position: (u16, u16), area: Rect) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_path` [INFO] [stdout] --> src/ui/components/context_menu.rs:278:41 [INFO] [stdout] | [INFO] [stdout] 278 | pub fn get_file_context_menu(&self, file_path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit_hash` [INFO] [stdout] --> src/ui/components/context_menu.rs:328:43 [INFO] [stdout] | [INFO] [stdout] 328 | pub fn get_commit_context_menu(&self, commit_hash: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `branch_name` [INFO] [stdout] --> src/ui/components/context_menu.rs:361:43 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn get_branch_context_menu(&self, branch_name: &str, is_current: bool) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_name` [INFO] [stdout] --> src/ui/components/context_manager.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | let tag_name = context.get_data("tag_name").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remote_name` [INFO] [stdout] --> src/ui/components/context_manager.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | let remote_name = context.get_data("remote_name").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stash_index` [INFO] [stdout] --> src/ui/components/context_manager.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let stash_index = context.get_data("stash_index").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stash_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:197:36 [INFO] [stdout] | [INFO] [stdout] 197 | fn generate_search_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:226:34 [INFO] [stdout] | [INFO] [stdout] 226 | fn generate_diff_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:260:37 [INFO] [stdout] | [INFO] [stdout] 260 | fn generate_general_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/components/context_manager.rs:319:58 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn execute_action(&mut self, action: MenuAction, state: &mut AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/components/shortcuts.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut key_part = parts[parts.len() - 1]; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/ui/components/search_cache.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | let now = Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/ui/components/search_cache.rs:222:17 [INFO] [stdout] | [INFO] [stdout] 222 | let key = CacheKey::new(query, scope.clone(), &FilterCriteria::default()); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/git_operations.rs:707:62 [INFO] [stdout] | [INFO] [stdout] 707 | fn render_help_bar(&self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:910:37 [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:932:36 [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:976:36 [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:1016:34 [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:284:65 [INFO] [stdout] | [INFO] [stdout] 284 | fn render_loading(&self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:308:76 [INFO] [stdout] | [INFO] [stdout] 308 | fn render_error(&self, frame: &mut Frame<'_>, area: Rect, error: &str, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:324:70 [INFO] [stdout] | [INFO] [stdout] 324 | fn render_help_overlay(&self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:426:13 [INFO] [stdout] | [INFO] [stdout] 426 | let viewer = self.viewer.read().await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer` [INFO] [stdout] --> src/ui/components/diff_viewer.rs:434:13 [INFO] [stdout] | [INFO] [stdout] 434 | let viewer = self.viewer.read().await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/ui/components/git_operations.rs:1489:33 [INFO] [stdout] | [INFO] [stdout] 1489 | ... let len = self.history_commits.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/ui/components/git_operations.rs:1500:33 [INFO] [stdout] | [INFO] [stdout] 1500 | ... let len = self.history_commits.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/search.rs:491:65 [INFO] [stdout] | [INFO] [stdout] 491 | fn render_results(&mut self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `old_lines` [INFO] [stdout] --> src/ui/diff/utils.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let (old_start, old_lines) = Self::parse_range(old_part.trim_start_matches('-'))?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_lines` [INFO] [stdout] --> src/ui/diff/utils.rs:111:25 [INFO] [stdout] | [INFO] [stdout] 111 | let (new_start, new_lines) = Self::parse_range(new_part.trim_start_matches('+'))?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `temp_new_pos` is assigned to, but never used [INFO] [stdout] --> src/ui/diff/utils.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | let mut temp_new_pos = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_temp_new_pos` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `temp_new_pos` is never read [INFO] [stdout] --> src/ui/diff/utils.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | temp_new_pos += new_word.len() + 1; // +1 for space [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/ui/components/filter.rs:427:35 [INFO] [stdout] | [INFO] [stdout] 427 | fn matches_size_filter(&self, size: u64, filter: &str) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filter` [INFO] [stdout] --> src/ui/components/filter.rs:427:46 [INFO] [stdout] | [INFO] [stdout] 427 | fn matches_size_filter(&self, size: u64, filter: &str) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/filter.rs:531:72 [INFO] [stdout] | [INFO] [stdout] 531 | fn render_type_selection(&mut self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit` [INFO] [stdout] --> src/ui/components/commit_history.rs:350:66 [INFO] [stdout] | [INFO] [stdout] 350 | fn render_commit_files(&self, frame: &mut Frame, area: Rect, commit: &CommitInfo, theme: &Theme) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/commit_history.rs:378:84 [INFO] [stdout] | [INFO] [stdout] 378 | fn render_footer(&self, frame: &mut Frame, area: Rect, commits: &[CommitInfo], theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/components/commit_history.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | let mut filtered: Vec = all_commits.into_iter() [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/components/commit_history.rs:548:59 [INFO] [stdout] | [INFO] [stdout] 548 | fn handle_details_key_event(&mut self, key: KeyEvent, state: &mut AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit` [INFO] [stdout] --> src/ui/components/commit_history.rs:572:36 [INFO] [stdout] | [INFO] [stdout] 572 | fn load_commit_diff(&mut self, commit: &CommitInfo, _state: &AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/ui/components/context_menu.rs:236:51 [INFO] [stdout] | [INFO] [stdout] 236 | fn get_context_menu_items_for_position(&self, position: (u16, u16), area: Rect) -> Vec { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/context_menu.rs:236:73 [INFO] [stdout] | [INFO] [stdout] 236 | fn get_context_menu_items_for_position(&self, position: (u16, u16), area: Rect) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_path` [INFO] [stdout] --> src/ui/components/context_menu.rs:278:41 [INFO] [stdout] | [INFO] [stdout] 278 | pub fn get_file_context_menu(&self, file_path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commit_hash` [INFO] [stdout] --> src/ui/components/context_menu.rs:328:43 [INFO] [stdout] | [INFO] [stdout] 328 | pub fn get_commit_context_menu(&self, commit_hash: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commit_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `branch_name` [INFO] [stdout] --> src/ui/components/context_menu.rs:361:43 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn get_branch_context_menu(&self, branch_name: &str, is_current: bool) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_name` [INFO] [stdout] --> src/ui/components/context_manager.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | let tag_name = context.get_data("tag_name").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remote_name` [INFO] [stdout] --> src/ui/components/context_manager.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | let remote_name = context.get_data("remote_name").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stash_index` [INFO] [stdout] --> src/ui/components/context_manager.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let stash_index = context.get_data("stash_index").unwrap_or(&String::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stash_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:197:36 [INFO] [stdout] | [INFO] [stdout] 197 | fn generate_search_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:226:34 [INFO] [stdout] | [INFO] [stdout] 226 | fn generate_diff_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/ui/components/context_manager.rs:260:37 [INFO] [stdout] | [INFO] [stdout] 260 | fn generate_general_menu(&self, context: &ContextInfo) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/components/context_manager.rs:319:58 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn execute_action(&mut self, action: MenuAction, state: &mut AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selection` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:684:21 [INFO] [stdout] | [INFO] [stdout] 684 | if let Some(selection) = self.selection { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selection` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:721:74 [INFO] [stdout] | [INFO] [stdout] 721 | fn render_text_content(&mut self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:725:14 [INFO] [stdout] | [INFO] [stdout] 725 | for (i, line_idx) in (self.scroll_offset..end_line).enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:760:87 [INFO] [stdout] | [INFO] [stdout] 760 | fn render_status_message(&self, frame: &mut Frame<'_>, area: Rect, message: &str, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/components/shortcuts.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut key_part = parts[parts.len() - 1]; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/ui/components/search_cache.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | let now = Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/ui/components/search_cache.rs:222:17 [INFO] [stdout] | [INFO] [stdout] 222 | let key = CacheKey::new(query, scope.clone(), &FilterCriteria::default()); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/components/git_operations.rs:707:62 [INFO] [stdout] | [INFO] [stdout] 707 | fn render_help_bar(&self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:910:37 [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:932:36 [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:976:36 [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:1016:34 [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/ui/components/git_operations.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/ui/components/git_operations.rs:1489:33 [INFO] [stdout] | [INFO] [stdout] 1489 | ... let len = self.history_commits.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/ui/components/git_operations.rs:1500:33 [INFO] [stdout] | [INFO] [stdout] 1500 | ... let len = self.history_commits.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:511:71 [INFO] [stdout] | [INFO] [stdout] 511 | fn render_file_tree_section(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:595:64 [INFO] [stdout] | [INFO] [stdout] 595 | fn render_commit_log(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:625:67 [INFO] [stdout] | [INFO] [stdout] 625 | fn render_details_panel(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `old_lines` [INFO] [stdout] --> src/ui/diff/utils.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let (old_start, old_lines) = Self::parse_range(old_part.trim_start_matches('-'))?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_lines` [INFO] [stdout] --> src/ui/diff/utils.rs:111:25 [INFO] [stdout] | [INFO] [stdout] 111 | let (new_start, new_lines) = Self::parse_range(new_part.trim_start_matches('+'))?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/mod.rs:728:12 [INFO] [stdout] | [INFO] [stdout] 728 | fn new(theme: &Theme) -> Self { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `temp_new_pos` is assigned to, but never used [INFO] [stdout] --> src/ui/diff/utils.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | let mut temp_new_pos = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_temp_new_pos` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `temp_new_pos` is never read [INFO] [stdout] --> src/ui/diff/utils.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | temp_new_pos += new_word.len() + 1; // +1 for space [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `AgentStats` is more private than the item `CodeAnalysisAgent::stats` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:719:5 [INFO] [stdout] | [INFO] [stdout] 719 | pub fn stats(&self) -> &AgentStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `CodeAnalysisAgent::stats` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `AgentStats` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:278:1 [INFO] [stdout] | [INFO] [stdout] 278 | struct AgentStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `ClientStats` is more private than the item `HttpAIClient::stats` [INFO] [stdout] --> src/ai/client.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | pub fn stats(&self) -> &ClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `HttpAIClient::stats` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `ClientStats` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/ai/client.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | struct ClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prompt_templates` and `git_service` are never read [INFO] [stdout] --> src/ai/agents/commit_agent.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct CommitAgent { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 106 | prompt_templates: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 107 | /// Git service for analysis [INFO] [stdout] 108 | git_service: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache_hits` is never read [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 278 | struct AgentStats { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 282 | cache_hits: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AgentStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_cache_key` is never used [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:689:8 [INFO] [stdout] | [INFO] [stdout] 289 | impl CodeAnalysisAgent { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 689 | fn generate_cache_key(&self, request: &CodeAnalysisRequest) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `size` is never read [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:745:5 [INFO] [stdout] | [INFO] [stdout] 742 | struct FileData { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 745 | size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `failed_requests` and `last_request_time` are never read [INFO] [stdout] --> src/ai/client.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 204 | struct ClientStats { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 207 | failed_requests: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 208 | total_response_time: Duration, [INFO] [stdout] 209 | last_request_time: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `update_stats` is never used [INFO] [stdout] --> src/ai/client.rs:410:8 [INFO] [stdout] | [INFO] [stdout] 212 | impl HttpAIClient { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 410 | fn update_stats(&mut self, success: bool, response_time: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/health.rs:305:5 [INFO] [stdout] | [INFO] [stdout] 297 | pub struct HealthMonitor { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 305 | config: HealthMonitorConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `message_receiver` and `last_health_check` are never read [INFO] [stdout] --> src/ai/manager.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 75 | struct ManagedAgent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 83 | message_receiver: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 84 | /// Last health check timestamp [INFO] [stdout] 85 | last_health_check: DateTime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `task_counter` is never read [INFO] [stdout] --> src/ai/manager.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct AgentManager { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | task_counter: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_tasks_failed` is never read [INFO] [stdout] --> src/ai/manager.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 106 | struct SystemMetrics { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 109 | pub total_tasks_failed: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemMetrics` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/metrics_collector.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 470 | pub struct MetricsCollector { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 476 | config: MetricsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/recovery.rs:440:5 [INFO] [stdout] | [INFO] [stdout] 439 | pub struct FailureDetector { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 440 | config: FailureDetectionConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FailureDetector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/app/mod.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | config: Config, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `git_service` is never read [INFO] [stdout] --> src/git/workflow.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct GitWorkflowManager { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 140 | git_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ui/mod.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct UI { [INFO] [stdout] | -- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | config: UIConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render_main_content`, `render_sync_status`, `render_center_content`, `render_commit_log`, and `render_details_panel` are never used [INFO] [stdout] --> src/ui/mod.rs:392:8 [INFO] [stdout] | [INFO] [stdout] 41 | impl UI { [INFO] [stdout] | ------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 392 | fn render_main_content(&mut self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn render_sync_status(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 577 | fn render_center_content(&mut self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 595 | fn render_commit_log(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | fn render_details_panel(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sidebar` is never read [INFO] [stdout] --> src/ui/mod.rs:716:9 [INFO] [stdout] | [INFO] [stdout] 715 | struct UIComponents { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 716 | pub sidebar: SidebarComponent, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `render_empty_list` is never used [INFO] [stdout] --> src/ui/components/sidebar.rs:696:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl SidebarComponent { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 696 | fn render_empty_list(&self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `loaded_count` and `should_load_more` are never used [INFO] [stdout] --> src/ui/components/tabs.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl CommitsPagination { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | fn loaded_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn should_load_more(&self, current_index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_file_diff` is never used [INFO] [stdout] --> src/ui/components/tabs.rs:297:14 [INFO] [stdout] | [INFO] [stdout] 295 | impl StatusTabComponent { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 296 | /// 加载文件差异到差异查看器 [INFO] [stdout] 297 | async fn load_file_diff(&mut self, file_status: &crate::git::FileStatus, state: &AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Actions` is never constructed [INFO] [stdout] --> src/ui/components/tabs.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 323 | enum BranchViewMode { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 326 | Actions, // Focus on action buttons [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BranchViewMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `search_sender` is never read [INFO] [stdout] --> src/ui/components/search.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct SearchComponent { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 101 | search_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `branch_colors` is never read [INFO] [stdout] --> src/ui/components/commit_history.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct CommitHistoryComponent { [INFO] [stdout] | ---------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 46 | branch_colors: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render_operation_details`, `render_rebase_details`, `render_merge_details`, `render_stash_details`, `render_tag_details`, and `render_remote_details` are never used [INFO] [stdout] --> src/ui/components/git_operations.rs:885:8 [INFO] [stdout] | [INFO] [stdout] 334 | impl GitOperationsComponent { [INFO] [stdout] | --------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 885 | fn render_operation_details(&self, frame: &mut Frame, area: Rect, operation: &GitOperation, theme: &Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `logs_scroll` and `metrics_history` are never read [INFO] [stdout] --> src/ui/components/agent_manager.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct AgentManagerComponent { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 161 | logs_scroll: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 162 | metrics_history: Vec<(Instant, HashMap)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `shortcut_manager` and `selected_index` are never read [INFO] [stdout] --> src/ui/components/help.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct HelpComponent { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | shortcut_manager: ShortcutManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | /// Selected help item index [INFO] [stdout] 33 | selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `language_cache` is never read [INFO] [stdout] --> src/ui/diff.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct SyntaxHighlighter { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 168 | config: SyntaxHighlighterConfig, [INFO] [stdout] 169 | language_cache: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `highlighter` is never read [INFO] [stdout] --> src/ui/diff.rs:631:5 [INFO] [stdout] | [INFO] [stdout] 628 | pub struct DiffViewer { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 631 | highlighter: SyntaxHighlighter, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `viewport_start`, `viewport_end`, `total_lines`, and `line_height` are never read [INFO] [stdout] --> src/ui/diff.rs:642:5 [INFO] [stdout] | [INFO] [stdout] 640 | struct VirtualScrollState { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 641 | /// 可见区域开始行 [INFO] [stdout] 642 | viewport_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 643 | /// 可见区域结束行 [INFO] [stdout] 644 | viewport_end: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 645 | /// 总行数 [INFO] [stdout] 646 | total_lines: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 647 | /// 每行高度(字符单位) [INFO] [stdout] 648 | line_height: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VirtualScrollState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `search_query`, `search_results`, and `current_search_index` are never read [INFO] [stdout] --> src/ui/diff/inline_editor.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct InlineEditor { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 174 | search_query: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 175 | /// 搜索结果 [INFO] [stdout] 176 | search_results: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 177 | /// 当前搜索结果索引 [INFO] [stdout] 178 | current_search_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selection` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:684:21 [INFO] [stdout] | [INFO] [stdout] 684 | if let Some(selection) = self.selection { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selection` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:721:74 [INFO] [stdout] | [INFO] [stdout] 721 | fn render_text_content(&mut self, frame: &mut Frame<'_>, area: Rect, theme: &Theme) -> AppResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:725:14 [INFO] [stdout] | [INFO] [stdout] 725 | for (i, line_idx) in (self.scroll_offset..end_line).enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/diff/inline_editor.rs:760:87 [INFO] [stdout] | [INFO] [stdout] 760 | fn render_status_message(&self, frame: &mut Frame<'_>, area: Rect, message: &str, theme: &Theme) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:910:30 [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:932:29 [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:976:29 [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:1016:27 [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:1060:30 [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/diff.rs:210:33 [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn highlight_line(&self, line: &str, language: &str) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn highlight_line(&self, line: &str, language: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/diff.rs:221:31 [INFO] [stdout] | [INFO] [stdout] 221 | async fn simple_highlight(&self, line: &str, language: &str) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 221 | async fn simple_highlight(&self, line: &str, language: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:511:71 [INFO] [stdout] | [INFO] [stdout] 511 | fn render_file_tree_section(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:595:64 [INFO] [stdout] | [INFO] [stdout] 595 | fn render_commit_log(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/ui/mod.rs:625:67 [INFO] [stdout] | [INFO] [stdout] 625 | fn render_details_panel(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/mod.rs:728:12 [INFO] [stdout] | [INFO] [stdout] 728 | fn new(theme: &Theme) -> Self { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `AgentStats` is more private than the item `CodeAnalysisAgent::stats` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:719:5 [INFO] [stdout] | [INFO] [stdout] 719 | pub fn stats(&self) -> &AgentStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `CodeAnalysisAgent::stats` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `AgentStats` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:278:1 [INFO] [stdout] | [INFO] [stdout] 278 | struct AgentStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `ClientStats` is more private than the item `HttpAIClient::stats` [INFO] [stdout] --> src/ai/client.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | pub fn stats(&self) -> &ClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `HttpAIClient::stats` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `ClientStats` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/ai/client.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | struct ClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prompt_templates` and `git_service` are never read [INFO] [stdout] --> src/ai/agents/commit_agent.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct CommitAgent { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 106 | prompt_templates: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 107 | /// Git service for analysis [INFO] [stdout] 108 | git_service: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache_hits` is never read [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 278 | struct AgentStats { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 282 | cache_hits: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AgentStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_cache_key` is never used [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:689:8 [INFO] [stdout] | [INFO] [stdout] 289 | impl CodeAnalysisAgent { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 689 | fn generate_cache_key(&self, request: &CodeAnalysisRequest) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `size` is never read [INFO] [stdout] --> src/ai/agents/code_analysis_agent.rs:745:5 [INFO] [stdout] | [INFO] [stdout] 742 | struct FileData { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 745 | size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `failed_requests` and `last_request_time` are never read [INFO] [stdout] --> src/ai/client.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 204 | struct ClientStats { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 207 | failed_requests: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 208 | total_response_time: Duration, [INFO] [stdout] 209 | last_request_time: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `update_stats` is never used [INFO] [stdout] --> src/ai/client.rs:410:8 [INFO] [stdout] | [INFO] [stdout] 212 | impl HttpAIClient { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 410 | fn update_stats(&mut self, success: bool, response_time: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/health.rs:305:5 [INFO] [stdout] | [INFO] [stdout] 297 | pub struct HealthMonitor { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 305 | config: HealthMonitorConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `message_receiver` and `last_health_check` are never read [INFO] [stdout] --> src/ai/manager.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 75 | struct ManagedAgent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 83 | message_receiver: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 84 | /// Last health check timestamp [INFO] [stdout] 85 | last_health_check: DateTime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `task_counter` is never read [INFO] [stdout] --> src/ai/manager.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct AgentManager { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | task_counter: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_tasks_failed` is never read [INFO] [stdout] --> src/ai/manager.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 106 | struct SystemMetrics { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 109 | pub total_tasks_failed: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemMetrics` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/metrics_collector.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 470 | pub struct MetricsCollector { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 476 | config: MetricsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ai/recovery.rs:440:5 [INFO] [stdout] | [INFO] [stdout] 439 | pub struct FailureDetector { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 440 | config: FailureDetectionConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FailureDetector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/app/mod.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | config: Config, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `git_service` is never read [INFO] [stdout] --> src/git/workflow.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct GitWorkflowManager { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 140 | git_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/ui/mod.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct UI { [INFO] [stdout] | -- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | config: UIConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render_main_content`, `render_sync_status`, `render_center_content`, `render_commit_log`, and `render_details_panel` are never used [INFO] [stdout] --> src/ui/mod.rs:392:8 [INFO] [stdout] | [INFO] [stdout] 41 | impl UI { [INFO] [stdout] | ------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 392 | fn render_main_content(&mut self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn render_sync_status(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 577 | fn render_center_content(&mut self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 595 | fn render_commit_log(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | fn render_details_panel(&self, frame: &mut Frame, area: Rect, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sidebar` is never read [INFO] [stdout] --> src/ui/mod.rs:716:9 [INFO] [stdout] | [INFO] [stdout] 715 | struct UIComponents { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 716 | pub sidebar: SidebarComponent, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `render_empty_list` is never used [INFO] [stdout] --> src/ui/components/sidebar.rs:696:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl SidebarComponent { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 696 | fn render_empty_list(&self, frame: &mut Frame, area: Rect, theme: &Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `loaded_count` and `should_load_more` are never used [INFO] [stdout] --> src/ui/components/tabs.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl CommitsPagination { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | fn loaded_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn should_load_more(&self, current_index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_file_diff` is never used [INFO] [stdout] --> src/ui/components/tabs.rs:297:14 [INFO] [stdout] | [INFO] [stdout] 295 | impl StatusTabComponent { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 296 | /// 加载文件差异到差异查看器 [INFO] [stdout] 297 | async fn load_file_diff(&mut self, file_status: &crate::git::FileStatus, state: &AppState) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Actions` is never constructed [INFO] [stdout] --> src/ui/components/tabs.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 323 | enum BranchViewMode { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 326 | Actions, // Focus on action buttons [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BranchViewMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `search_sender` is never read [INFO] [stdout] --> src/ui/components/search.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct SearchComponent { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 101 | search_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `branch_colors` is never read [INFO] [stdout] --> src/ui/components/commit_history.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct CommitHistoryComponent { [INFO] [stdout] | ---------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 46 | branch_colors: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render_operation_details`, `render_rebase_details`, `render_merge_details`, `render_stash_details`, `render_tag_details`, and `render_remote_details` are never used [INFO] [stdout] --> src/ui/components/git_operations.rs:885:8 [INFO] [stdout] | [INFO] [stdout] 334 | impl GitOperationsComponent { [INFO] [stdout] | --------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 885 | fn render_operation_details(&self, frame: &mut Frame, area: Rect, operation: &GitOperation, theme: &Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `logs_scroll` and `metrics_history` are never read [INFO] [stdout] --> src/ui/components/agent_manager.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct AgentManagerComponent { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 161 | logs_scroll: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 162 | metrics_history: Vec<(Instant, HashMap)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `shortcut_manager` and `selected_index` are never read [INFO] [stdout] --> src/ui/components/help.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct HelpComponent { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | shortcut_manager: ShortcutManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | /// Selected help item index [INFO] [stdout] 33 | selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `language_cache` is never read [INFO] [stdout] --> src/ui/diff.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct SyntaxHighlighter { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 168 | config: SyntaxHighlighterConfig, [INFO] [stdout] 169 | language_cache: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `highlighter` is never read [INFO] [stdout] --> src/ui/diff.rs:631:5 [INFO] [stdout] | [INFO] [stdout] 628 | pub struct DiffViewer { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 631 | highlighter: SyntaxHighlighter, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `viewport_start`, `viewport_end`, `total_lines`, and `line_height` are never read [INFO] [stdout] --> src/ui/diff.rs:642:5 [INFO] [stdout] | [INFO] [stdout] 640 | struct VirtualScrollState { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 641 | /// 可见区域开始行 [INFO] [stdout] 642 | viewport_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 643 | /// 可见区域结束行 [INFO] [stdout] 644 | viewport_end: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 645 | /// 总行数 [INFO] [stdout] 646 | total_lines: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 647 | /// 每行高度(字符单位) [INFO] [stdout] 648 | line_height: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VirtualScrollState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `search_query`, `search_results`, and `current_search_index` are never read [INFO] [stdout] --> src/ui/diff/inline_editor.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct InlineEditor { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 174 | search_query: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 175 | /// 搜索结果 [INFO] [stdout] 176 | search_results: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 177 | /// 当前搜索结果索引 [INFO] [stdout] 178 | current_search_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:910:30 [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 910 | fn render_rebase_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:932:29 [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 932 | fn render_merge_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:976:29 [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 976 | fn render_stash_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:1016:27 [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1016 | fn render_tag_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/components/git_operations.rs:1060:30 [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1060 | fn render_remote_details(&self, area: Rect, theme: &Theme) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/diff.rs:210:33 [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn highlight_line(&self, line: &str, language: &str) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn highlight_line(&self, line: &str, language: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/diff.rs:221:31 [INFO] [stdout] | [INFO] [stdout] 221 | async fn simple_highlight(&self, line: &str, language: &str) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 221 | async fn simple_highlight(&self, line: &str, language: &str) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BranchInfo` and `CommitInfo` [INFO] [stdout] --> tests/git_tests.rs:7:38 [INFO] [stdout] | [INFO] [stdout] 7 | git::{find_git_root, GitService, BranchInfo, CommitInfo}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path::Path` [INFO] [stdout] --> tests/git_tests.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | use std::{path::Path, time::{Duration, Instant}}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ai`, `app`, `git`, and `ui` [INFO] [stdout] --> tests/integration_tests.rs:251:16 [INFO] [stdout] | [INFO] [stdout] 251 | use ai_c::{ai, app, config, error, git, ui}; [INFO] [stdout] | ^^ ^^^ ^^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AppConfig`, `GitConfig`, and `UIConfig` [INFO] [stdout] --> tests/core_test.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | use ai_c::config::{AppConfig, Config, GitConfig, UIConfig}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_bus` [INFO] [stdout] --> tests/basic_tests.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | let message_bus = MessageBus::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_bus` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> tests/integration_tests.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | let app = App::new().await.expect("Failed to create application"); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commits` [INFO] [stdout] --> tests/git_tests.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | let commits = git_service.get_commit_history(10).await?; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commits` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.02s [INFO] running `Command { std: "docker" "inspect" "f2fb3d82b8bf1dff45f020cada07869893deeed3192e22ddfa7938c635632993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2fb3d82b8bf1dff45f020cada07869893deeed3192e22ddfa7938c635632993", kill_on_drop: false }` [INFO] [stdout] f2fb3d82b8bf1dff45f020cada07869893deeed3192e22ddfa7938c635632993