[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#2aaa62b89d22b570e560731b03e3d2d6f5c3bbce for pr-139751-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkart-io%2Fai-c" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kart-io/ai-c on toolchain 2aaa62b89d22b570e560731b03e3d2d6f5c3bbce
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2aaa62b89d22b570e560731b03e3d2d6f5c3bbce" "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" "+2aaa62b89d22b570e560731b03e3d2d6f5c3bbce" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded async-stream-impl v0.3.6
[INFO] [stderr]   Downloaded stability v0.1.1
[INFO] [stderr]   Downloaded tokio-test v0.4.3
[INFO] [stderr]   Downloaded cpufeatures v0.2.17
[INFO] [stderr]   Downloaded md5 v0.7.0
[INFO] [stderr]   Downloaded anstyle v1.0.11
[INFO] [stderr]   Downloaded async-stream v0.3.6
[INFO] [stderr]   Downloaded serde_spanned v0.6.9
[INFO] [stderr]   Downloaded proc-macro2 v1.0.101
[INFO] [stderr]   Downloaded predicates-core v1.0.9
[INFO] [stderr]   Downloaded mockall v0.12.1
[INFO] [stderr]   Downloaded metrics v0.22.0
[INFO] [stderr]   Downloaded fragile v2.0.1
[INFO] [stderr]   Downloaded ahash v0.8.12
[INFO] [stderr]   Downloaded mockall_derive v0.12.1
[INFO] [stderr]   Downloaded plotters-svg v0.3.7
[INFO] [stderr]   Downloaded portable-atomic v1.11.1
[INFO] [stderr]   Downloaded either v1.15.0
[INFO] [stderr]   Downloaded tempfile v3.8.1
[INFO] [stderr]   Downloaded error-code v3.3.2
[INFO] [stderr]   Downloaded plotters-backend v0.3.7
[INFO] [stderr]   Downloaded termtree v0.5.1
[INFO] [stderr]   Downloaded dirs v5.0.1
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded thiserror-impl v2.0.16
[INFO] [stderr]   Downloaded dispatch2 v0.3.0
[INFO] [stderr]   Downloaded rust-ini v0.19.0
[INFO] [stderr]   Downloaded fax_derive v0.2.0
[INFO] [stderr]   Downloaded ordered-multimap v0.6.0
[INFO] [stderr]   Downloaded x11rb v0.13.2
[INFO] [stderr]   Downloaded fax v0.2.6
[INFO] [stderr]   Downloaded bytemuck v1.23.2
[INFO] [stderr]   Downloaded anyhow v1.0.79
[INFO] [stderr]   Downloaded arboard v3.6.1
[INFO] [stderr]   Downloaded pest v2.8.2
[INFO] [stderr]   Downloaded x11rb-protocol v0.13.2
[INFO] [stderr]   Downloaded rayon v1.11.0
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.1
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.27
[INFO] [stderr]   Downloaded objc2 v0.6.2
[INFO] [stderr]   Downloaded png v0.18.0
[INFO] [stderr]   Downloaded backtrace v0.3.75
[INFO] [stderr]   Downloaded cc v1.2.37
[INFO] [stderr]   Downloaded url v2.4.1
[INFO] [stderr]   Downloaded zune-jpeg v0.4.21
[INFO] [stderr]   Downloaded crossterm v0.27.0
[INFO] [stderr]   Downloaded objc2-foundation v0.3.1
[INFO] [stderr]   Downloaded hashbrown v0.15.5
[INFO] [stderr]   Downloaded image v0.25.8
[INFO] [stderr]   Downloaded h2 v0.3.27
[INFO] [stderr]   Downloaded serde_json v1.0.111
[INFO] [stderr]   Downloaded chrono v0.4.31
[INFO] [stderr]   Downloaded typenum v1.18.0
[INFO] [stderr]   Downloaded config v0.14.0
[INFO] [stderr]   Downloaded regex v1.10.2
[INFO] [stderr]   Downloaded openssl v0.10.73
[INFO] [stderr]   Downloaded idna v0.4.0
[INFO] [stderr]   Downloaded zerocopy v0.8.27
[INFO] [stderr]   Downloaded moxcms v0.7.5
[INFO] [stderr]   Downloaded ratatui v0.25.0
[INFO] [stderr]   Downloaded regex-syntax v0.8.6
[INFO] [stderr]   Downloaded rustix v0.38.44
[INFO] [stderr]   Downloaded syn v2.0.106
[INFO] [stderr]   Downloaded reqwest v0.11.23
[INFO] [stderr]   Downloaded wasip2 v1.0.0+wasi-0.2.4
[INFO] [stderr]   Downloaded objc2-core-foundation v0.3.1
[INFO] [stderr]   Downloaded memchr v2.7.5
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.51
[INFO] [stderr]   Downloaded libssh2-sys v0.3.1
[INFO] [stderr]   Downloaded web-sys v0.3.78
[INFO] [stderr]   Downloaded regex-automata v0.4.10
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.1
[INFO] [stderr]   Downloaded base64 v0.21.5
[INFO] [stderr]   Downloaded wit-bindgen v0.45.1
[INFO] [stderr]   Downloaded libc v0.2.175
[INFO] [stderr]   Downloaded tokio v1.35.1
[INFO] [stderr]   Downloaded openssl-sys v0.9.109
[INFO] [stderr]   Downloaded bumpalo v3.19.0
[INFO] [stderr]   Downloaded toml_edit v0.21.1
[INFO] [stderr]   Downloaded tiff v0.10.3
[INFO] [stderr]   Downloaded allocator-api2 v0.2.21
[INFO] [stderr]   Downloaded r-efi v5.3.0
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.4
[INFO] [stderr]   Downloaded js-sys v0.3.78
[INFO] [stderr]   Downloaded serde v1.0.195
[INFO] [stderr]   Downloaded socket2 v0.5.10
[INFO] [stderr]   Downloaded signal-hook v0.3.18
[INFO] [stderr]   Downloaded getrandom v0.3.3
[INFO] [stderr]   Downloaded jobserver v0.1.34
[INFO] [stderr]   Downloaded pxfm v0.1.23
[INFO] [stderr]   Downloaded schannel v0.1.28
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.101
[INFO] [stderr]   Downloaded tungstenite v0.21.0
[INFO] [stderr]   Downloaded unicode-bidi v0.3.18
[INFO] [stderr]   Downloaded serde_derive v1.0.195
[INFO] [stderr]   Downloaded indexmap v2.1.0
[INFO] [stderr]   Downloaded unicode-ident v1.0.19
[INFO] [stderr]   Downloaded clap_builder v4.5.47
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded libz-sys v1.1.22
[INFO] [stderr]   Downloaded toml v0.8.8
[INFO] [stderr]   Downloaded windows-interface v0.59.1
[INFO] [stderr]   Downloaded windows-strings v0.5.0
[INFO] [stderr]   Downloaded sha2 v0.10.9
[INFO] [stderr]   Downloaded half v2.6.0
[INFO] [stderr]   Downloaded rayon-core v1.13.0
[INFO] [stderr]   Downloaded wasi v0.14.5+wasi-0.2.4
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.101
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.101
[INFO] [stderr]   Downloaded clipboard-win v5.4.1
[INFO] [stderr]   Downloaded byteorder-lite v0.1.0
[INFO] [stderr]   Downloaded fdeflate v0.3.7
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.1
[INFO] [stderr]   Downloaded gethostname v1.0.2
[INFO] [stderr]   Downloaded async-trait v0.1.77
[INFO] [stderr]   Downloaded pest_meta v2.8.2
[INFO] [stderr]   Downloaded pest_derive v2.8.2
[INFO] [stderr]   Downloaded weezl v0.1.10
[INFO] [stderr]   Downloaded zune-core v0.4.12
[INFO] [stderr]   Downloaded windows-core v0.62.0
[INFO] [stderr]   Downloaded convert_case v0.6.0
[INFO] [stderr]   Downloaded thiserror v2.0.16
[INFO] [stderr]   Downloaded const-random v0.1.18
[INFO] [stderr]   Downloaded dlv-list v0.5.2
[INFO] [stderr]   Downloaded crunchy v0.2.4
[INFO] [stderr]   Downloaded is-terminal v0.4.16
[INFO] [stderr]   Downloaded tinytemplate v1.2.1
[INFO] [stderr]   Downloaded redox_users v0.4.6
[INFO] [stderr]   Downloaded tinyvec v1.10.0
[INFO] [stderr]   Downloaded flate2 v1.1.2
[INFO] [stderr]   Downloaded windows-implement v0.60.0
[INFO] [stderr]   Downloaded windows-result v0.4.0
[INFO] [stderr]   Downloaded json5 v0.4.1
[INFO] [stderr]   Downloaded tiny-keccak v2.0.2
[INFO] [stderr]   Downloaded libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]   Downloaded const-random-macro v0.1.16
[INFO] [stderr]   Downloaded clap_lex v0.7.5
[INFO] [stderr]   Downloaded winapi-util v0.1.11
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.1
[INFO] [stderr]   Downloaded bitflags v2.9.4
[INFO] [stderr]   Downloaded pathdiff v0.2.3
[INFO] [stderr]   Downloaded option-ext v0.2.0
[INFO] [stderr]   Downloaded redox_syscall v0.5.17
[INFO] [stderr]   Downloaded quick-error v2.0.1
[INFO] [stderr]   Downloaded ciborium-io v0.2.2
[INFO] [stderr]   Downloaded uuid v1.6.1
[INFO] [stderr]   Downloaded plotters v0.3.7
[INFO] [stderr]   Downloaded libredox v0.1.9
[INFO] [stderr]   Downloaded hermit-abi v0.5.2
[INFO] [stderr]   Downloaded lock_api v0.4.13
[INFO] [stderr]   Downloaded objc2-encode v4.1.0
[INFO] [stderr]   Downloaded pest_generator v2.8.2
[INFO] [stderr]   Downloaded ron v0.8.1
[INFO] [stderr]   Downloaded ciborium v0.2.2
[INFO] [stderr]   Downloaded clap v4.5.47
[INFO] [stderr]   Downloaded oorandom v11.1.5
[INFO] [stderr]   Downloaded dirs-sys v0.4.1
[INFO] [stderr]   Downloaded predicates-tree v1.0.12
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded ucd-trie v0.1.7
[INFO] [stderr]   Downloaded anes v0.1.6
[INFO] [stderr]   Downloaded ciborium-ll v0.2.2
[INFO] [stderr]   Downloaded cast v0.3.0
[INFO] [stderr]   Downloaded criterion-plot v0.5.0
[INFO] [stderr]   Downloaded indoc v2.0.6
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.101
[INFO] [stderr]   Downloaded git2 v0.18.1
[INFO] [stderr]   Downloaded foldhash v0.1.5
[INFO] [stderr]   Downloaded rustversion v1.0.22
[INFO] [stderr]   Downloaded windows-sys v0.61.0
[INFO] [stderr]   Downloaded security-framework-sys v2.15.0
[INFO] [stderr]   Downloaded wasm-streams v0.3.0
[INFO] [stderr]   Downloaded num_cpus v1.17.0
[INFO] [stderr]   Downloaded iana-time-zone v0.1.64
[INFO] [stderr]   Downloaded rustc-demangle v0.1.26
[INFO] [stderr]   Downloaded tokio-tungstenite v0.21.0
[INFO] [stderr]   Downloaded tracing-attributes v0.1.30
[INFO] [stderr]   Downloaded valuable v0.1.1
[INFO] [stderr]   Downloaded parking_lot_core v0.9.11
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.6
[INFO] [stderr]   Downloaded autocfg v1.5.0
[INFO] [stderr]   Downloaded wasi v0.11.1+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded windows-link v0.2.0
[INFO] [stderr]   Downloaded hyper-tls v0.5.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.101
[INFO] [stderr]   Downloaded thread_local v1.1.9
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded thiserror v1.0.56
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.21
[INFO] [stderr]   Downloaded toml_datetime v0.6.11
[INFO] [stderr]   Downloaded cfg-if v1.0.3
[INFO] [stderr]   Downloaded quote v1.0.40
[INFO] [stderr]   Downloaded downcast v0.11.0
[INFO] [stderr]   Downloaded predicates v3.1.3
[INFO] [stderr]   Downloaded data-encoding v2.9.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.56
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+2aaa62b89d22b570e560731b03e3d2d6f5c3bbce" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7b76575ca815fcb6a6c78870eb2ed7c171f17a0a3dc6f983922ed053119f9ee5
[INFO] running `Command { std: "docker" "start" "-a" "7b76575ca815fcb6a6c78870eb2ed7c171f17a0a3dc6f983922ed053119f9ee5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b76575ca815fcb6a6c78870eb2ed7c171f17a0a3dc6f983922ed053119f9ee5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b76575ca815fcb6a6c78870eb2ed7c171f17a0a3dc6f983922ed053119f9ee5", kill_on_drop: false }`
[INFO] [stdout] 7b76575ca815fcb6a6c78870eb2ed7c171f17a0a3dc6f983922ed053119f9ee5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+2aaa62b89d22b570e560731b03e3d2d6f5c3bbce" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a51349d42f4d71ab6e837d75087dc288da61ef8ff58f553ce85783eb5a40d876
[INFO] running `Command { std: "docker" "start" "-a" "a51349d42f4d71ab6e837d75087dc288da61ef8ff58f553ce85783eb5a40d876", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling serde v1.0.195
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking indexmap v2.1.0
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.111
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking idna v0.4.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling thiserror v1.0.56
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking url v2.4.1
[INFO] [stderr]    Compiling cc v1.2.37
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[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 parking_lot v0.12.1
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking pxfm v0.1.23
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking base64 v0.21.5
[INFO] [stderr]     Checking winnow v0.5.40
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]    Compiling async-trait v0.1.77
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking ordered-multimap v0.6.0
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking rust-ini v0.19.0
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking regex-automata v0.4.10
[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 rand v0.8.5
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking clap_builder v4.5.47
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking moxcms v0.7.5
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]     Checking clap v4.5.47
[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 tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[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]     Checking tokio v1.35.1
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling pest v2.8.2
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]    Compiling pest_meta v2.8.2
[INFO] [stderr]     Checking mockall v0.12.1
[INFO] [stderr]    Compiling pest_generator v2.8.2
[INFO] [stderr]    Compiling pest_derive v2.8.2
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.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 tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking toml_edit v0.21.1
[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 tokio-test v0.4.3
[INFO] [stderr]     Checking h2 v0.3.27
[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 gethostname v1.0.2
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking hyper v0.14.32
[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: `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: `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: `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 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 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: `file_data`
[INFO] [stdout]    --> src/ai/agents/code_analysis_agent.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         file_data: &HashMap<PathBuf, FileData>,
[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: `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<PathBuf, FileData>,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_data`
[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<HealthStatus, MonitorError> {
[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<HealthStatus, MonitorError> {
[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: `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: `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: `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<CommitInfo> = 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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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: `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: `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: `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: `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: `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/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: `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: `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: `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<CommitInfo> = 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: `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: `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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[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: `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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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<MenuItem> {
[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: `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: 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: `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: `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: 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: 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<CommitMessageStyle, String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 |     /// Git service for analysis
[INFO] [stdout] 108 |     git_service: Option<GitService>,
[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<DateTime<Utc>>,
[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<mpsc::UnboundedReceiver<super::message_bus::AgentMessage>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     /// Last health check timestamp
[INFO] [stdout] 85 |     last_health_check: DateTime<Utc>,
[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<RwLock<u64>>,
[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<GitService>,
[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<mpsc::UnboundedSender<SearchRequest>>,
[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<String, Color>,
[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<String, f64>)>,
[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<RwLock<HashMap<String, String>>>,
[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<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 175 |     /// 搜索结果
[INFO] [stdout] 176 |     search_results: Vec<CursorPosition>,
[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<Span> {
[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<Span<'_>> {
[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<Span> {
[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<Span<'_>> {
[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<CommitMessageStyle, String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 |     /// Git service for analysis
[INFO] [stdout] 108 |     git_service: Option<GitService>,
[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<DateTime<Utc>>,
[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<mpsc::UnboundedReceiver<super::message_bus::AgentMessage>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     /// Last health check timestamp
[INFO] [stdout] 85 |     last_health_check: DateTime<Utc>,
[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<RwLock<u64>>,
[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<GitService>,
[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<mpsc::UnboundedSender<SearchRequest>>,
[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<String, Color>,
[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<String, f64>)>,
[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<RwLock<HashMap<String, String>>>,
[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<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 175 |     /// 搜索结果
[INFO] [stdout] 176 |     search_results: Vec<CursorPosition>,
[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<Span> {
[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<Span<'_>> {
[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<Span> {
[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<Span<'_>> {
[INFO] [stdout]     |                                                                             ++++
[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 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: `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 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: `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: `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 2m 10s
[INFO] running `Command { std: "docker" "inspect" "a51349d42f4d71ab6e837d75087dc288da61ef8ff58f553ce85783eb5a40d876", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a51349d42f4d71ab6e837d75087dc288da61ef8ff58f553ce85783eb5a40d876", kill_on_drop: false }`
[INFO] [stdout] a51349d42f4d71ab6e837d75087dc288da61ef8ff58f553ce85783eb5a40d876
