[INFO] cloning repository https://github.com/ReOpsIL/forge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ReOpsIL/forge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FReOpsIL%2Fforge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FReOpsIL%2Fforge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bbf28dca59affe973e5f827ca5ddf4603955d8ce
[INFO] testing ReOpsIL/forge against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FReOpsIL%2Fforge" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ReOpsIL/forge
[INFO] finished tweaking git repo https://github.com/ReOpsIL/forge
[INFO] tweaked toml for git repo https://github.com/ReOpsIL/forge written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ReOpsIL/forge on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ReOpsIL/forge 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded iso8601 v0.6.3
[INFO] [stderr]   Downloaded filedescriptor v0.8.3
[INFO] [stderr]   Downloaded num-cmp v0.1.0
[INFO] [stderr]   Downloaded actix-web-actors v4.3.1+deprecated
[INFO] [stderr]   Downloaded actix_derive v0.6.2
[INFO] [stderr]   Downloaded bytecount v0.6.9
[INFO] [stderr]   Downloaded portable-pty v0.9.0
[INFO] [stderr]   Downloaded zstd-safe v7.2.4
[INFO] [stderr]   Downloaded actix-server v2.6.0
[INFO] [stderr]   Downloaded fancy-regex v0.11.0
[INFO] [stderr]   Downloaded actix v0.13.5
[INFO] [stderr]   Downloaded awc v3.7.0
[INFO] [stderr]   Downloaded fraction v0.13.1
[INFO] [stderr]   Downloaded jsonschema v0.17.1
[INFO] [stderr]   Downloaded tracing-attributes v0.1.29
[INFO] [stderr]   Downloaded actix-http v3.11.0
[INFO] [stderr]   Downloaded actix-tls v3.4.0
[INFO] [stderr]   Downloaded serial2 v0.2.29
[INFO] [stderr]   Downloaded actix-web v4.11.0
[INFO] [stderr]   Downloaded brotli v8.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ed50480dfd681be4145a3c8c11cc95153191a26ce90894faeb0c9fdb781d1586
[INFO] running `Command { std: "docker" "start" "-a" "ed50480dfd681be4145a3c8c11cc95153191a26ce90894faeb0c9fdb781d1586", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ed50480dfd681be4145a3c8c11cc95153191a26ce90894faeb0c9fdb781d1586", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed50480dfd681be4145a3c8c11cc95153191a26ce90894faeb0c9fdb781d1586", kill_on_drop: false }`
[INFO] [stdout] ed50480dfd681be4145a3c8c11cc95153191a26ce90894faeb0c9fdb781d1586
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 970b2da668012f0961be73c4ea2104ff0dcd4fc1ac59dbae83eacde38c83f5a2
[INFO] running `Command { std: "docker" "start" "-a" "970b2da668012f0961be73c4ea2104ff0dcd4fc1ac59dbae83eacde38c83f5a2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.173
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling syn v2.0.103
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling writeable v0.6.1
[INFO] [stderr]    Compiling litemap v0.8.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling actix-utils v3.0.1
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling actix-service v2.0.3
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.29
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling brotli v8.0.1
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling actix-codec v0.5.2
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling local-channel v0.1.5
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling language-tags v0.3.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling impl-more v0.1.9
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling actix-server v2.6.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling v_htmlescape v0.15.8
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling actix_derive v0.6.2
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling actix-http v3.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling tungstenite v0.20.1
[INFO] [stderr]    Compiling actix-tls v3.4.0
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling actix v0.13.5
[INFO] [stderr]    Compiling actix-web v4.11.0
[INFO] [stderr]    Compiling iso8601 v0.6.3
[INFO] [stderr]    Compiling fraction v0.13.1
[INFO] [stderr]    Compiling fancy-regex v0.11.0
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling serial2 v0.2.29
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling http-range v0.1.5
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling shell-words v1.1.0
[INFO] [stderr]    Compiling jsonschema v0.17.1
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tracing-appender v0.2.3
[INFO] [stderr]    Compiling awc v3.7.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.20.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling actix-files v0.6.6
[INFO] [stderr]    Compiling actix-web-actors v4.3.1+deprecated
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling forge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/block_handlers.rs:497:107
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stdout]     |                                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stdout] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/llm_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut child = command.spawn()
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let mut child = command.spawn()
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/task_executor.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let task_id = task_id.clone();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_openrouter_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gemini_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/llm_handler.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct OpenRouterResponse {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 85 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[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: `debug`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/block_handlers.rs:497:107
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stdout]     |                                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stdout] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/llm_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP` and `DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP`
[INFO] [stdout]  --> src/profession_prompts.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::project_config::{DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP, DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/git_handlers.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/git_handlers.rs:587:11
[INFO] [stdout]     |
[INFO] [stdout] 587 |     match (files_output) {
[INFO] [stdout]     |           ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 587 -     match (files_output) {
[INFO] [stdout] 587 +     match files_output  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/git_handlers.rs:588:9
[INFO] [stdout]     |
[INFO] [stdout] 588 |         (Ok(files)) => {
[INFO] [stdout]     |         ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 588 -         (Ok(files)) => {
[INFO] [stdout] 588 +         Ok(files)  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/git_handlers.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         (Err(e)) => {
[INFO] [stdout]     |         ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 658 -         (Err(e)) => {
[INFO] [stdout] 658 +         Err(e)  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/mcp/transport.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/mcp/tools/registry.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/mcp/tools/registry.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |                      ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Content`
[INFO] [stdout]   --> src/mcp/tools/registry.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Content, ExecutionContext, MCPTool, PerformanceTracker, Permission, ToolCategory,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/mcp/tools/blocks.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connections` and `Task`
[INFO] [stdout]   --> src/mcp/tools/blocks.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::models::{Block, Connections, Task};
[INFO] [stdout]    |                            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::fs`
[INFO] [stdout]  --> src/mcp/tools/filesystem/list_directory.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::fs;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/mcp/tools/filesystem/create_directory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/mcp/context.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, info, warn};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/mcp/errors.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientCapabilities`, `ExecutionContext`, `MCPResponse`, `MCPTool`, `ToolError`, and `ToolResult`
[INFO] [stdout]   --> src/mcp/server.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         ClientCapabilities, InitializeParams, InitializeResult, MCPMessage, MCPRequest,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |         MCPResponse, ServerCapabilities, ServerInfo, ToolsCapability,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |         ExecutionContext, MCPTool, ToolError, ToolRegistry, ToolResult,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MCPError` and `StateError`
[INFO] [stdout]   --> src/mcp/state.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::mcp::errors::{MCPError, MCPResult, StateError};
[INFO] [stdout]    |                          ^^^^^^^^             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Task`
[INFO] [stdout]   --> src/mcp/state.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::models::{Block, Task};
[INFO] [stdout]    |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transport::MCPTransport`
[INFO] [stdout]   --> src/mcp/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     transport::MCPTransport
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_BLOCK_CONFIG_FILE` and `generate_sample_config`
[INFO] [stdout]   --> src/main.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | use block_config::{generate_sample_config, BlockConfigManager, DEFAULT_BLOCK_CONFIG_FILE};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/mcp/tools/filesystem/read_file.rs:95:39
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let encoded = base64::encode(contents);
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/mcp/tools/filesystem/read_file.rs:104:39
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let encoded = base64::encode(contents);
[INFO] [stdout]     |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode
[INFO] [stdout]    --> src/mcp/tools/filesystem/write_file.rs:126:39
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 let decoded = base64::decode(content)
[INFO] [stdout]     |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut child = command.spawn()
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let mut child = command.spawn()
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/git_handlers.rs:551:9
[INFO] [stdout]     |
[INFO] [stdout] 551 |     let mut block = block.unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mcp/tools/registry.rs:525:13
[INFO] [stdout]     |
[INFO] [stdout] 525 |         let mut discovered_count = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/git_handlers.rs:465:5
[INFO] [stdout]     |
[INFO] [stdout] 465 |     data: web::Data<GitAppState>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/task_executor.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let task_id = task_id.clone();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mcp/transport.rs:121:40
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     Ok(WsMessage::Ping(data)) => {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/mcp/tools/registry.rs:197:34
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/mcp/tools/tasks.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let task_id = task.task_id.clone();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]   --> src/mcp/tools/mod.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn validate_params(&self, params: &Value) -> Result<(), ToolError> {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> src/mcp/state.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let now = SystemTime::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blocks` is never used
[INFO] [stdout]    --> src/models.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn get_blocks() -> Vec<Block> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blocks_from_file` is never used
[INFO] [stdout]    --> src/block_config.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn load_blocks_from_file(filename: &str) -> Vec<Block> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteTaskResponse` is never constructed
[INFO] [stdout]   --> src/block_handlers.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ExecuteTaskResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_openrouter_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gemini_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/llm_handler.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct OpenRouterResponse {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 85 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_prompts` is never used
[INFO] [stdout]     --> src/profession_prompts.rs:1998:8
[INFO] [stdout]      |
[INFO] [stdout] 1998 | pub fn get_default_prompts(profession_id: Option<&str>) -> ProfessionPrompts {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CODE_REVIEW_SYSTEM_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:300:11
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub const DEFAULT_CODE_REVIEW_SYSTEM_PROMPT: &str = "You are a senior code reviewer with expertise in software quality, security, a...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CODE_REVIEW_USER_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:302:11
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub const DEFAULT_CODE_REVIEW_USER_PROMPT: &str = "Review the following code for:
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFACTOR_SYSTEM_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:316:11
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub const DEFAULT_REFACTOR_SYSTEM_PROMPT: &str = "You are a refactoring specialist focused on improving code quality while preservi...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFACTOR_USER_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:318:11
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub const DEFAULT_REFACTOR_USER_PROMPT: &str = "Analyze the following code and suggest refactoring improvements:
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteGitTaskResponse` is never constructed
[INFO] [stdout]   --> src/git_handlers.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ExecuteGitTaskResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_description` and `status` are never read
[INFO] [stdout]   --> src/task_queue.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct QueuedTask {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub task_description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueuedTask` 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: struct `TaskQueue` is never constructed
[INFO] [stdout]   --> src/task_queue.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskQueue {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `instance`, `enqueue_task`, `is_task_in_queue`, and `get_task_status` are never used
[INFO] [stdout]   --> src/task_queue.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl TaskQueue {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 42 |     // Get the singleton instance
[INFO] [stdout] 43 |     pub fn instance() -> Arc<TaskQueue> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn enqueue_task(&self, block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn is_task_in_queue(&self, block_id: &str, task_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_task_status(&self, block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enqueue_task` is never used
[INFO] [stdout]   --> src/task_queue.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn enqueue_task(block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_task_in_queue` is never used
[INFO] [stdout]   --> src/task_queue.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_task_in_queue(block_id: &str, task_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_task_status` is never used
[INFO] [stdout]   --> src/task_queue.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn get_task_status(block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/log_stream.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LogEntry {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 15 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogEntry` 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: variants `WebSocket` and `Http` are never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum TransportType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 17 |     WebSocket,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 18 |     Http,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportType` 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: method `close` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait MCPTransport: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     async fn close(&mut self) -> MCPResult<()>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebSocketTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct WebSocketTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:50:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl WebSocketTransport {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 49 |     /// Create a new WebSocket transport from a TCP stream
[INFO] [stdout] 50 |     pub async fn new(stream: tokio::net::TcpStream) -> MCPResult<Self> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpTransport` is never constructed
[INFO] [stdout]    --> src/mcp/transport.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct HttpTransport {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `handle_request` are never used
[INFO] [stdout]    --> src/mcp/transport.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl HttpTransport {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 195 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub async fn handle_request(&mut self, request_body: Vec<u8>) -> MCPResult<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_websocket` and `create_http` are never used
[INFO] [stdout]    --> src/mcp/transport.rs:399:18
[INFO] [stdout]     |
[INFO] [stdout] 397 | impl TransportFactory {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] 398 |     /// Create a WebSocket transport from a TCP stream
[INFO] [stdout] 399 |     pub async fn create_websocket(stream: tokio::net::TcpStream) -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub async fn create_http() -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `request`, `notification`, and `as_response` are never used
[INFO] [stdout]    --> src/mcp/protocol.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl MCPMessage {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn request(method: impl Into<String>, params: Option<Value>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn notification(method: impl Into<String>, params: Option<Value>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn as_response(&self) -> MCPResult<MCPResponse> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_messages` is never used
[INFO] [stdout]    --> src/mcp/protocol.rs:365:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | impl MessageParser {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn parse_messages(buffer: &str) -> Vec<MCPResult<MCPMessage>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_config`, `context_store`, and `user_preferences` are never read
[INFO] [stdout]   --> src/mcp/tools/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub project_config: std::sync::Arc<crate::project_config::ProjectConfigManager>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub context_store: std::sync::Arc<tokio::sync::RwLock<crate::mcp::context::ContextStore>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub user_preferences: UserPreferences,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutionContext` 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: variants `Dependency`, `Git`, `Network`, and `Validation` are never constructed
[INFO] [stdout]    --> src/mcp/tools/mod.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub enum ToolError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 313 |     Dependency(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     Network(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     Validation(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_memory`, `total_network_requests`, and `total_file_operations` are never read
[INFO] [stdout]    --> src/mcp/tools/mod.rs:442:9
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub struct PerformanceTracker {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub total_memory: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 443 |     pub total_network_requests: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 444 |     pub total_file_operations: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerformanceTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_average_execution_time` and `get_tool_statistics` are never used
[INFO] [stdout]    --> src/mcp/tools/mod.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl PerformanceTracker {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn get_average_execution_time(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     pub fn get_tool_statistics(&self, tool_name: &str) -> ToolStatistics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `failure` is never used
[INFO] [stdout]    --> src/mcp/tools/mod.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub trait ToolResultBuilder {
[INFO] [stdout]     |           ----------------- associated function in this trait
[INFO] [stdout] 525 |     fn success() -> ToolResult;
[INFO] [stdout] 526 |     fn failure(error: impl Into<String>) -> ToolResult;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `performance_tracker` is never read
[INFO] [stdout]   --> src/mcp/tools/registry.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolRegistry {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     performance_tracker: Arc<RwLock<PerformanceTracker>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_concurrent_executions`, `enable_result_caching`, `max_cache_size`, and `cache_ttl` are never read
[INFO] [stdout]   --> src/mcp/tools/registry.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct ToolRegistryConfig {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 76 |     /// Maximum number of concurrent tool executions
[INFO] [stdout] 77 |     pub max_concurrent_executions: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub enable_result_caching: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub max_cache_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub cache_ttl: Duration,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolRegistryConfig` 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: struct `CacheEntry` is never constructed
[INFO] [stdout]    --> src/mcp/tools/registry.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct CacheEntry {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/mcp/tools/registry.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl ToolRegistry {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn unregister_tool(&self, name: &str) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub async fn get_tool_metadata(&self, name: &str) -> Option<ToolMetadata> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub async fn get_tools_by_category(&self, category: ToolCategory) -> Vec<ToolInfo> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub async fn search_tools(&self, query: &str) -> Vec<ToolInfo> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub async fn execute_tools_parallel(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub async fn get_tool_statistics(&self, name: &str) -> Option<ToolStatistics> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn clone_for_parallel(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolDiscovery` is never constructed
[INFO] [stdout]    --> src/mcp/tools/registry.rs:507:12
[INFO] [stdout]     |
[INFO] [stdout] 507 | pub struct ToolDiscovery {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `discover_tools` are never used
[INFO] [stdout]    --> src/mcp/tools/registry.rs:513:12
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl ToolDiscovery {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 513 |     pub fn new(registry: Arc<ToolRegistry>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub async fn discover_tools(&self) -> MCPResult<usize> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `session_timeout`, `enable_persistence`, and `max_tool_history` are never read
[INFO] [stdout]    --> src/mcp/session.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct SessionConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub session_timeout: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub enable_persistence: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub max_tool_history: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionConfig` 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: multiple associated items are never used
[INFO] [stdout]    --> src/mcp/session.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl SessionManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 159 |     /// Create a new session manager
[INFO] [stdout] 160 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub async fn update_session(&self, session: Session) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub async fn update_activity(&self, session_id: &str) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub async fn list_active_sessions(&self) -> Vec<SessionId> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub async fn cleanup_expired_sessions(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub async fn cleanup_temp_sessions(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     pub async fn enable_collaboration(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn sync_collaborative_context(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionCleanupService` is never constructed
[INFO] [stdout]    --> src/mcp/session.rs:480:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub struct SessionCleanupService {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `start` are never used
[INFO] [stdout]    --> src/mcp/session.rs:486:12
[INFO] [stdout]     |
[INFO] [stdout] 485 | impl SessionCleanupService {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 486 |     pub fn new(manager: Arc<SessionManager>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub async fn start(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/mcp/context.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ContextStore {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     config: ContextConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ContextStore` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/mcp/context.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct ContextConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 106 |     /// Maximum number of entries in shared data
[INFO] [stdout] 107 |     pub max_shared_entries: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub max_session_entries: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub max_event_history: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub default_expiration: Option<Duration>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub max_cache_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub cache_ttl: Duration,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub enable_event_history: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ContextConfig` 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 `value`, `created_at`, and `access_count` are never read
[INFO] [stdout]    --> src/mcp/context.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct CachedEntry {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 145 |     value: Value,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 146 |     created_at: SystemTime,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 147 |     access_count: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CachedEntry` 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: multiple methods are never used
[INFO] [stdout]    --> src/mcp/context.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ContextStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn set_shared(&mut self, key: impl Into<String>, value: Value, tool_name: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn get_shared(&mut self, key: &str) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn set_session(&mut self, session_id: impl Into<String>, key: impl Into<String>, value: Value, tool_name: impl Into<String>...
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn get_session(&mut self, session_id: &str, key: &str) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn delete_shared(&mut self, key: &str, tool_name: impl Into<String>) -> MCPResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn delete_session(&mut self, session_id: &str, key: &str, tool_name: impl Into<String>) -> MCPResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn list_shared_keys(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn list_session_keys(&self, session_id: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn get_metadata(&self, key: &str, session_id: Option<&str>) -> Option<ContextEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |     pub fn set_read_only(&mut self, key: &str, session_id: Option<&str>, read_only: bool) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn add_tags(&mut self, key: &str, session_id: Option<&str>, tags: Vec<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn search_by_tags(&self, tags: &[String], session_id: Option<&str>) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn cleanup_expired(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 607 |     fn record_event(&mut self, event: ContextEvent) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 615 |     pub fn get_recent_events(&self, limit: usize) -> Vec<&ContextEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 624 |     pub fn clear_session(&mut self, session_id: &str) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cleanup_interval` is never read
[INFO] [stdout]    --> src/mcp/context.rs:666:5
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub struct ContextManager {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 665 |     store: Arc<RwLock<ContextStore>>,
[INFO] [stdout] 666 |     cleanup_interval: Duration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_cleanup_service` is never used
[INFO] [stdout]    --> src/mcp/context.rs:682:18
[INFO] [stdout]     |
[INFO] [stdout] 669 | impl ContextManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 682 |     pub async fn start_cleanup_service(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PermissionDenied`, `NotFound`, `Timeout`, `Internal`, and `RecoverableError` are never constructed
[INFO] [stdout]   --> src/mcp/errors.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MCPError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     PermissionDenied(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Timeout(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     Internal(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     RecoverableError {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MCPError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectionFailed`, `InvalidMessage`, and `Closed` are never constructed
[INFO] [stdout]   --> src/mcp/errors.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 61 |     #[error("Connection failed: {0}")]
[INFO] [stdout] 62 |     ConnectionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     InvalidMessage(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     Closed,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MethodNotFound`, `InvalidParams`, and `ServerError` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:90:5
[INFO] [stdout]     |
[INFO] [stdout]  85 | pub enum ProtocolError {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  90 |     MethodNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     InvalidParams(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     ServerError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProtocolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub enum ToolError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 108 |     #[error("Tool not found: {0}")]
[INFO] [stdout] 109 |     NotFound(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     InvalidParams(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     ExecutionFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     Timeout { timeout_ms: u64 },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     PermissionDenied(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     ResourceLimit(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     Dependency(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     FileSystem(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     Network(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Expired`, `AuthenticationFailed`, `ConcurrentAccess`, and `Corrupted` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum SessionError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     Expired(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     AuthenticationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     ConcurrentAccess(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     Corrupted(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TransactionFailed`, `ConsistencyViolation`, `LockFailed`, `RollbackFailed`, `Persistence`, and `Conflict` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub enum StateError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 164 |     #[error("Transaction failed: {0}")]
[INFO] [stdout] 165 |     TransactionFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     ConsistencyViolation(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     LockFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     RollbackFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Persistence(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Conflict(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub enum ContextError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 186 |     #[error("Context not found: {0}")]
[INFO] [stdout] 187 |     NotFound(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     Expired(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Serialization(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     SizeLimit { current: usize, limit: usize },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     Locked(String),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     StorageLimit(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     ReadOnly(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     ConcurrentAccess(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ContextError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StartupFailed` and `ShutdownFailed` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum ServerError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 230 |     StartupFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     ShutdownFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidRequest` and `ServerError` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub enum JsonRpcErrorCode {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] 239 |     ParseError = -32700,
[INFO] [stdout] 240 |     InvalidRequest = -32600,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     ServerError = -32000, // -32000 to -32099 are reserved for implementation-defined server-errors
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JsonRpcErrorCode` 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: method `with_data` is never used
[INFO] [stdout]    --> src/mcp/errors.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | impl JsonRpcError {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn with_data(mut self, data: Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorRecoverySystem` is never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub struct ErrorRecoverySystem {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `attempt_recovery` are never used
[INFO] [stdout]    --> src/mcp/errors.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl ErrorRecoverySystem {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 312 |     pub fn new(max_retry_attempts: usize, retry_delay: std::time::Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub async fn attempt_recovery<F, T>(&self, operation: F) -> MCPResult<T>
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ErrorContext` is never used
[INFO] [stdout]    --> src/mcp/errors.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub trait ErrorContext<T> {
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_concurrent_tools`, `tool_timeout`, `enable_monitoring`, `monitoring_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stdout]   --> src/mcp/server.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MCPServerConfig {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub max_concurrent_tools: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub tool_timeout: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub enable_monitoring: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub monitoring_interval: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub enable_cleanup: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub cleanup_interval: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MCPServerConfig` 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: field `shutdown_tx` is never read
[INFO] [stdout]    --> src/mcp/server.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout]  91 | pub struct MCPServer {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 120 |     shutdown_tx: Option<mpsc::Sender<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `session_id`, `transport_type`, and `connected_at` are never read
[INFO] [stdout]    --> src/mcp/server.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct ConnectionInfo {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 126 |     pub session_id: SessionId,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 127 |     pub transport_type: TransportType,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 128 |     pub connected_at: SystemTime,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionInfo` 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: methods `start`, `start_cleanup_services`, `start_monitoring_service`, `shutdown`, and `get_statistics` are never used
[INFO] [stdout]    --> src/mcp/server.rs:208:18
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl MCPServer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub async fn start(&mut self) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     async fn start_cleanup_services(&self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     async fn start_monitoring_service(&self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub async fn shutdown(&self) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 609 |     pub async fn get_statistics(&self) -> ServerStatistics {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state_broadcaster` and `config` are never read
[INFO] [stdout]   --> src/mcp/state.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct UnifiedStateManager {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     state_broadcaster: broadcast::Sender<StateChangeEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     config: StateConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value`, `last_updated`, `update_count`, and `source` are never read
[INFO] [stdout]    --> src/mcp/state.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct StateEntry {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 228 |     pub value: Value,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 229 |     pub last_updated: SystemTime,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 230 |     pub update_count: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 231 |     pub source: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateEntry` 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 `max_history_size`, `enable_broadcasting`, `persistence_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stdout]    --> src/mcp/state.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct StateConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 279 |     /// Maximum number of state history entries to keep
[INFO] [stdout] 280 |     pub max_history_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub enable_broadcasting: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub persistence_interval: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub enable_cleanup: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub cleanup_interval: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateConfig` 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: multiple associated items are never used
[INFO] [stdout]    --> src/mcp/state.rs:345:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl UnifiedStateManager {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 344 |     /// Create a new unified state manager
[INFO] [stdout] 345 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn subscribe_to_changes(&self) -> broadcast::Receiver<StateChangeEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn get_core_state(&self) -> CoreState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn update_core_state<F>(&self, updater: F) -> MCPResult<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn create_project(&self, project: ProjectState, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn update_project(&self, project_id: &str, updates: HashMap<String, Value>, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn create_task(&self, task: TaskState, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn update_task_status(&self, task_id: &str, status: TaskStatus, progress: Option<f32>, source: impl Into<String>) -> MCPRes...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     pub fn update_block(&self, block_id: &str, status: BlockStatus, outputs: Option<HashMap<String, Value>>, source: impl Into<Stri...
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 632 |     pub fn set_live_state(&self, key: impl Into<String>, value: Value, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     pub fn get_live_state(&self, key: &str) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub fn remove_live_state(&self, key: &str) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 660 |     pub fn get_project(&self, project_id: &str) -> Option<ProjectState> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn get_task(&self, task_id: &str) -> Option<TaskState> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn get_block(&self, block_id: &str) -> Option<BlockState> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn get_session(&self, session_id: &str) -> Option<SessionState> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 680 |     pub fn list_projects(&self, status_filter: Option<ProjectStatus>) -> Vec<ProjectState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 690 |     pub fn list_tasks(&self, project_id: Option<&str>, status_filter: Option<TaskStatus>) -> Vec<TaskState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 722 |     fn broadcast_change(&self, event: StateChangeEvent) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 738 |     pub fn get_recent_changes(&self, limit: usize) -> Vec<StateChangeEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     pub fn cleanup_expired_state(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 32s
[INFO] running `Command { std: "docker" "inspect" "970b2da668012f0961be73c4ea2104ff0dcd4fc1ac59dbae83eacde38c83f5a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "970b2da668012f0961be73c4ea2104ff0dcd4fc1ac59dbae83eacde38c83f5a2", kill_on_drop: false }`
[INFO] [stdout] 970b2da668012f0961be73c4ea2104ff0dcd4fc1ac59dbae83eacde38c83f5a2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e199395253009812196140bb4205f5f222a1eab6c01b4b0f32b038762f638310
[INFO] running `Command { std: "docker" "start" "-a" "e199395253009812196140bb4205f5f222a1eab6c01b4b0f32b038762f638310", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/block_handlers.rs:497:107
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stdout]     |                                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stdout] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/llm_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut child = command.spawn()
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let mut child = command.spawn()
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/task_executor.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let task_id = task_id.clone();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_openrouter_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gemini_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/llm_handler.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct OpenRouterResponse {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 85 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling forge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/block_handlers.rs:497:107
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stdout]     |                                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stdout] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/llm_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut child = command.spawn()
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let mut child = command.spawn()
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[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: `debug`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/block_handlers.rs:497:107
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stdout]     |                                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stdout] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/llm_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP` and `DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP`
[INFO] [stdout]  --> src/profession_prompts.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::project_config::{DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP, DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/git_handlers.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/git_handlers.rs:587:11
[INFO] [stdout]     |
[INFO] [stdout] 587 |     match (files_output) {
[INFO] [stdout]     |           ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 587 -     match (files_output) {
[INFO] [stdout] 587 +     match files_output  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/git_handlers.rs:588:9
[INFO] [stdout]     |
[INFO] [stdout] 588 |         (Ok(files)) => {
[INFO] [stdout]     |         ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 588 -         (Ok(files)) => {
[INFO] [stdout] 588 +         Ok(files)  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/git_handlers.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         (Err(e)) => {
[INFO] [stdout]     |         ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 658 -         (Err(e)) => {
[INFO] [stdout] 658 +         Err(e)  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/mcp/transport.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/mcp/tools/registry.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |                      ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Content`
[INFO] [stdout]   --> src/mcp/tools/registry.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Content, ExecutionContext, MCPTool, PerformanceTracker, Permission, ToolCategory,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/mcp/tools/blocks.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connections` and `Task`
[INFO] [stdout]   --> src/mcp/tools/blocks.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::models::{Block, Connections, Task};
[INFO] [stdout]    |                            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::fs`
[INFO] [stdout]  --> src/mcp/tools/filesystem/list_directory.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::fs;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/mcp/tools/filesystem/create_directory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/mcp/context.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, info, warn};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/mcp/errors.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientCapabilities`, `ExecutionContext`, `MCPResponse`, `MCPTool`, `ToolError`, and `ToolResult`
[INFO] [stdout]   --> src/mcp/server.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         ClientCapabilities, InitializeParams, InitializeResult, MCPMessage, MCPRequest,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |         MCPResponse, ServerCapabilities, ServerInfo, ToolsCapability,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |         ExecutionContext, MCPTool, ToolError, ToolRegistry, ToolResult,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MCPError` and `StateError`
[INFO] [stdout]   --> src/mcp/state.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::mcp::errors::{MCPError, MCPResult, StateError};
[INFO] [stdout]    |                          ^^^^^^^^             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Task`
[INFO] [stdout]   --> src/mcp/state.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::models::{Block, Task};
[INFO] [stdout]    |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transport::MCPTransport`
[INFO] [stdout]   --> src/mcp/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     transport::MCPTransport
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_BLOCK_CONFIG_FILE` and `generate_sample_config`
[INFO] [stdout]   --> src/main.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | use block_config::{generate_sample_config, BlockConfigManager, DEFAULT_BLOCK_CONFIG_FILE};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/mcp/tools/filesystem/read_file.rs:95:39
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let encoded = base64::encode(contents);
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/mcp/tools/filesystem/read_file.rs:104:39
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let encoded = base64::encode(contents);
[INFO] [stdout]     |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode
[INFO] [stdout]    --> src/mcp/tools/filesystem/write_file.rs:126:39
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 let decoded = base64::decode(content)
[INFO] [stdout]     |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/task_executor.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let task_id = task_id.clone();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_openrouter_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gemini_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/llm_handler.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct OpenRouterResponse {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 85 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut child = command.spawn()
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/llm_handler.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let mut child = command.spawn()
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/git_handlers.rs:551:9
[INFO] [stdout]     |
[INFO] [stdout] 551 |     let mut block = block.unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mcp/tools/registry.rs:525:13
[INFO] [stdout]     |
[INFO] [stdout] 525 |         let mut discovered_count = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/git_handlers.rs:465:5
[INFO] [stdout]     |
[INFO] [stdout] 465 |     data: web::Data<GitAppState>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/task_executor.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let task_id = task_id.clone();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mcp/transport.rs:121:40
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     Ok(WsMessage::Ping(data)) => {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/mcp/tools/registry.rs:197:34
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mcp/tools/filesystem/read_file.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let params = json!({
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mcp/tools/filesystem/write_file.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let params = json!({
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mcp/tools/filesystem/create_directory.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let params = json!({
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mcp/tools/filesystem/delete.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let params = json!({
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/mcp/tools/tasks.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let task_id = task.task_id.clone();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]   --> src/mcp/tools/mod.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn validate_params(&self, params: &Value) -> Result<(), ToolError> {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> src/mcp/state.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let now = SystemTime::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blocks` is never used
[INFO] [stdout]    --> src/models.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn get_blocks() -> Vec<Block> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blocks_from_file` is never used
[INFO] [stdout]    --> src/block_config.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn load_blocks_from_file(filename: &str) -> Vec<Block> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteTaskResponse` is never constructed
[INFO] [stdout]   --> src/block_handlers.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ExecuteTaskResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stdout]   --> src/llm_handler.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_openrouter_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gemini_model` is never used
[INFO] [stdout]   --> src/llm_handler.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/llm_handler.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct OpenRouterResponse {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 85 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_prompts` is never used
[INFO] [stdout]     --> src/profession_prompts.rs:1998:8
[INFO] [stdout]      |
[INFO] [stdout] 1998 | pub fn get_default_prompts(profession_id: Option<&str>) -> ProfessionPrompts {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CODE_REVIEW_SYSTEM_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:300:11
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub const DEFAULT_CODE_REVIEW_SYSTEM_PROMPT: &str = "You are a senior code reviewer with expertise in software quality, security, a...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CODE_REVIEW_USER_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:302:11
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub const DEFAULT_CODE_REVIEW_USER_PROMPT: &str = "Review the following code for:
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFACTOR_SYSTEM_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:316:11
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub const DEFAULT_REFACTOR_SYSTEM_PROMPT: &str = "You are a refactoring specialist focused on improving code quality while preservi...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFACTOR_USER_PROMPT` is never used
[INFO] [stdout]    --> src/project_config.rs:318:11
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub const DEFAULT_REFACTOR_USER_PROMPT: &str = "Analyze the following code and suggest refactoring improvements:
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteGitTaskResponse` is never constructed
[INFO] [stdout]   --> src/git_handlers.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ExecuteGitTaskResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_description` and `status` are never read
[INFO] [stdout]   --> src/task_queue.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct QueuedTask {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub task_description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueuedTask` 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: struct `TaskQueue` is never constructed
[INFO] [stdout]   --> src/task_queue.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskQueue {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `instance`, `enqueue_task`, `is_task_in_queue`, and `get_task_status` are never used
[INFO] [stdout]   --> src/task_queue.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl TaskQueue {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 42 |     // Get the singleton instance
[INFO] [stdout] 43 |     pub fn instance() -> Arc<TaskQueue> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn enqueue_task(&self, block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn is_task_in_queue(&self, block_id: &str, task_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_task_status(&self, block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enqueue_task` is never used
[INFO] [stdout]   --> src/task_queue.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn enqueue_task(block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_task_in_queue` is never used
[INFO] [stdout]   --> src/task_queue.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_task_in_queue(block_id: &str, task_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_task_status` is never used
[INFO] [stdout]   --> src/task_queue.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn get_task_status(block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/log_stream.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LogEntry {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 15 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogEntry` 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: method `close` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait MCPTransport: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     async fn close(&mut self) -> MCPResult<()>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebSocketTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct WebSocketTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:50:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl WebSocketTransport {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 49 |     /// Create a new WebSocket transport from a TCP stream
[INFO] [stdout] 50 |     pub async fn new(stream: tokio::net::TcpStream) -> MCPResult<Self> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_websocket` and `create_http` are never used
[INFO] [stdout]    --> src/mcp/transport.rs:399:18
[INFO] [stdout]     |
[INFO] [stdout] 397 | impl TransportFactory {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] 398 |     /// Create a WebSocket transport from a TCP stream
[INFO] [stdout] 399 |     pub async fn create_websocket(stream: tokio::net::TcpStream) -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub async fn create_http() -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_response` is never used
[INFO] [stdout]    --> src/mcp/protocol.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl MCPMessage {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn as_response(&self) -> MCPResult<MCPResponse> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_messages` is never used
[INFO] [stdout]    --> src/mcp/protocol.rs:365:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | impl MessageParser {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn parse_messages(buffer: &str) -> Vec<MCPResult<MCPMessage>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_config`, `context_store`, and `user_preferences` are never read
[INFO] [stdout]   --> src/mcp/tools/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub project_config: std::sync::Arc<crate::project_config::ProjectConfigManager>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub context_store: std::sync::Arc<tokio::sync::RwLock<crate::mcp::context::ContextStore>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub user_preferences: UserPreferences,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutionContext` 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: variants `Dependency`, `Git`, `Network`, and `Validation` are never constructed
[INFO] [stdout]    --> src/mcp/tools/mod.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub enum ToolError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 313 |     Dependency(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     Network(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     Validation(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_memory`, `total_network_requests`, and `total_file_operations` are never read
[INFO] [stdout]    --> src/mcp/tools/mod.rs:442:9
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub struct PerformanceTracker {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub total_memory: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 443 |     pub total_network_requests: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 444 |     pub total_file_operations: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerformanceTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_average_execution_time` and `get_tool_statistics` are never used
[INFO] [stdout]    --> src/mcp/tools/mod.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl PerformanceTracker {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn get_average_execution_time(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     pub fn get_tool_statistics(&self, tool_name: &str) -> ToolStatistics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `failure` is never used
[INFO] [stdout]    --> src/mcp/tools/mod.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub trait ToolResultBuilder {
[INFO] [stdout]     |           ----------------- associated function in this trait
[INFO] [stdout] 525 |     fn success() -> ToolResult;
[INFO] [stdout] 526 |     fn failure(error: impl Into<String>) -> ToolResult;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `performance_tracker` is never read
[INFO] [stdout]   --> src/mcp/tools/registry.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolRegistry {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     performance_tracker: Arc<RwLock<PerformanceTracker>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_concurrent_executions`, `enable_result_caching`, `max_cache_size`, and `cache_ttl` are never read
[INFO] [stdout]   --> src/mcp/tools/registry.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct ToolRegistryConfig {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 76 |     /// Maximum number of concurrent tool executions
[INFO] [stdout] 77 |     pub max_concurrent_executions: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub enable_result_caching: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub max_cache_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub cache_ttl: Duration,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolRegistryConfig` 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: struct `CacheEntry` is never constructed
[INFO] [stdout]    --> src/mcp/tools/registry.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct CacheEntry {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/mcp/tools/registry.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl ToolRegistry {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn unregister_tool(&self, name: &str) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub async fn get_tool_metadata(&self, name: &str) -> Option<ToolMetadata> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub async fn get_tools_by_category(&self, category: ToolCategory) -> Vec<ToolInfo> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub async fn execute_tools_parallel(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub async fn get_tool_statistics(&self, name: &str) -> Option<ToolStatistics> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn clone_for_parallel(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolDiscovery` is never constructed
[INFO] [stdout]    --> src/mcp/tools/registry.rs:507:12
[INFO] [stdout]     |
[INFO] [stdout] 507 | pub struct ToolDiscovery {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `discover_tools` are never used
[INFO] [stdout]    --> src/mcp/tools/registry.rs:513:12
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl ToolDiscovery {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 513 |     pub fn new(registry: Arc<ToolRegistry>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub async fn discover_tools(&self) -> MCPResult<usize> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `enable_persistence` and `max_tool_history` are never read
[INFO] [stdout]    --> src/mcp/session.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct SessionConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub enable_persistence: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub max_tool_history: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionConfig` 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: methods `update_session`, `update_activity`, `list_active_sessions`, `cleanup_temp_sessions`, `enable_collaboration`, and `sync_collaborative_context` are never used
[INFO] [stdout]    --> src/mcp/session.rs:269:18
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl SessionManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub async fn update_session(&self, session: Session) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub async fn update_activity(&self, session_id: &str) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub async fn list_active_sessions(&self) -> Vec<SessionId> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub async fn cleanup_temp_sessions(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     pub async fn enable_collaboration(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn sync_collaborative_context(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionCleanupService` is never constructed
[INFO] [stdout]    --> src/mcp/session.rs:480:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub struct SessionCleanupService {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `start` are never used
[INFO] [stdout]    --> src/mcp/session.rs:486:12
[INFO] [stdout]     |
[INFO] [stdout] 485 | impl SessionCleanupService {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 486 |     pub fn new(manager: Arc<SessionManager>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub async fn start(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access_count` is never read
[INFO] [stdout]    --> src/mcp/context.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct CachedEntry {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     access_count: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CachedEntry` 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: multiple methods are never used
[INFO] [stdout]    --> src/mcp/context.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ContextStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn delete_session(&mut self, session_id: &str, key: &str, tool_name: impl Into<String>) -> MCPResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn list_shared_keys(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn list_session_keys(&self, session_id: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn get_metadata(&self, key: &str, session_id: Option<&str>) -> Option<ContextEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn add_tags(&mut self, key: &str, session_id: Option<&str>, tags: Vec<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn search_by_tags(&self, tags: &[String], session_id: Option<&str>) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn cleanup_expired(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 615 |     pub fn get_recent_events(&self, limit: usize) -> Vec<&ContextEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cleanup_interval` is never read
[INFO] [stdout]    --> src/mcp/context.rs:666:5
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub struct ContextManager {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 665 |     store: Arc<RwLock<ContextStore>>,
[INFO] [stdout] 666 |     cleanup_interval: Duration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_cleanup_service` is never used
[INFO] [stdout]    --> src/mcp/context.rs:682:18
[INFO] [stdout]     |
[INFO] [stdout] 669 | impl ContextManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 682 |     pub async fn start_cleanup_service(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PermissionDenied`, `NotFound`, `Timeout`, `Internal`, and `RecoverableError` are never constructed
[INFO] [stdout]   --> src/mcp/errors.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MCPError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     PermissionDenied(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Timeout(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     Internal(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     RecoverableError {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MCPError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectionFailed` and `Closed` are never constructed
[INFO] [stdout]   --> src/mcp/errors.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 61 |     #[error("Connection failed: {0}")]
[INFO] [stdout] 62 |     ConnectionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     Closed,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MethodNotFound`, `InvalidParams`, and `ServerError` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:90:5
[INFO] [stdout]     |
[INFO] [stdout]  85 | pub enum ProtocolError {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  90 |     MethodNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     InvalidParams(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     ServerError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProtocolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub enum ToolError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 108 |     #[error("Tool not found: {0}")]
[INFO] [stdout] 109 |     NotFound(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     InvalidParams(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     ExecutionFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     Timeout { timeout_ms: u64 },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     PermissionDenied(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     ResourceLimit(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     Dependency(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     FileSystem(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     Network(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Expired`, `AuthenticationFailed`, `ConcurrentAccess`, and `Corrupted` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum SessionError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     Expired(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     AuthenticationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     ConcurrentAccess(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     Corrupted(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TransactionFailed`, `ConsistencyViolation`, `LockFailed`, `RollbackFailed`, `Persistence`, and `Conflict` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub enum StateError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 164 |     #[error("Transaction failed: {0}")]
[INFO] [stdout] 165 |     TransactionFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     ConsistencyViolation(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     LockFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     RollbackFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Persistence(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Conflict(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Expired`, `Serialization`, `SizeLimit`, `Locked`, and `ConcurrentAccess` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub enum ContextError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 190 |     Expired(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Serialization(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     SizeLimit { current: usize, limit: usize },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     Locked(String),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     ConcurrentAccess(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ContextError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StartupFailed` and `ShutdownFailed` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum ServerError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 230 |     StartupFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     ShutdownFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidRequest` and `ServerError` are never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub enum JsonRpcErrorCode {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] 239 |     ParseError = -32700,
[INFO] [stdout] 240 |     InvalidRequest = -32600,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     ServerError = -32000, // -32000 to -32099 are reserved for implementation-defined server-errors
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JsonRpcErrorCode` 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: method `with_data` is never used
[INFO] [stdout]    --> src/mcp/errors.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | impl JsonRpcError {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn with_data(mut self, data: Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorRecoverySystem` is never constructed
[INFO] [stdout]    --> src/mcp/errors.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub struct ErrorRecoverySystem {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `attempt_recovery` are never used
[INFO] [stdout]    --> src/mcp/errors.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl ErrorRecoverySystem {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 312 |     pub fn new(max_retry_attempts: usize, retry_delay: std::time::Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub async fn attempt_recovery<F, T>(&self, operation: F) -> MCPResult<T>
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ErrorContext` is never used
[INFO] [stdout]    --> src/mcp/errors.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub trait ErrorContext<T> {
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_concurrent_tools`, `tool_timeout`, `enable_monitoring`, `monitoring_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stdout]   --> src/mcp/server.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MCPServerConfig {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub max_concurrent_tools: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub tool_timeout: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub enable_monitoring: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub monitoring_interval: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub enable_cleanup: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub cleanup_interval: Duration,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MCPServerConfig` 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: field `shutdown_tx` is never read
[INFO] [stdout]    --> src/mcp/server.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout]  91 | pub struct MCPServer {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 120 |     shutdown_tx: Option<mpsc::Sender<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `session_id`, `transport_type`, and `connected_at` are never read
[INFO] [stdout]    --> src/mcp/server.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct ConnectionInfo {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 126 |     pub session_id: SessionId,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 127 |     pub transport_type: TransportType,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 128 |     pub connected_at: SystemTime,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionInfo` 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: methods `start`, `start_cleanup_services`, `start_monitoring_service`, `shutdown`, and `get_statistics` are never used
[INFO] [stdout]    --> src/mcp/server.rs:208:18
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl MCPServer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub async fn start(&mut self) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     async fn start_cleanup_services(&self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     async fn start_monitoring_service(&self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub async fn shutdown(&self) -> MCPResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 609 |     pub async fn get_statistics(&self) -> ServerStatistics {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_updated` and `source` are never read
[INFO] [stdout]    --> src/mcp/state.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct StateEntry {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 228 |     pub value: Value,
[INFO] [stdout] 229 |     pub last_updated: SystemTime,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 230 |     pub update_count: u64,
[INFO] [stdout] 231 |     pub source: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateEntry` 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 `persistence_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stdout]    --> src/mcp/state.rs:289:9
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct StateConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub persistence_interval: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub enable_cleanup: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub cleanup_interval: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StateConfig` 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: multiple methods are never used
[INFO] [stdout]    --> src/mcp/state.rs:363:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl UnifiedStateManager {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn subscribe_to_changes(&self) -> broadcast::Receiver<StateChangeEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn get_core_state(&self) -> CoreState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn update_project(&self, project_id: &str, updates: HashMap<String, Value>, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     pub fn update_block(&self, block_id: &str, status: BlockStatus, outputs: Option<HashMap<String, Value>>, source: impl Into<Stri...
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn get_block(&self, block_id: &str) -> Option<BlockState> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn get_session(&self, session_id: &str) -> Option<SessionState> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 680 |     pub fn list_projects(&self, status_filter: Option<ProjectStatus>) -> Vec<ProjectState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 690 |     pub fn list_tasks(&self, project_id: Option<&str>, status_filter: Option<TaskStatus>) -> Vec<TaskState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 738 |     pub fn get_recent_changes(&self, limit: usize) -> Vec<StateChangeEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     pub fn cleanup_expired_state(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.17s
[INFO] running `Command { std: "docker" "inspect" "e199395253009812196140bb4205f5f222a1eab6c01b4b0f32b038762f638310", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e199395253009812196140bb4205f5f222a1eab6c01b4b0f32b038762f638310", kill_on_drop: false }`
[INFO] [stdout] e199395253009812196140bb4205f5f222a1eab6c01b4b0f32b038762f638310
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 010fe187552a7e308b187304b9c1c4c7c3487c5a066a137ebd6eed53a5880f72
[INFO] running `Command { std: "docker" "start" "-a" "010fe187552a7e308b187304b9c1c4c7c3487c5a066a137ebd6eed53a5880f72", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/block_handlers.rs:497:107
[INFO] [stderr]     |
[INFO] [stderr] 497 | pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), St...
[INFO] [stderr]     |                                                                                                           ^                   ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 497 - pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<(ProcessSpecResponse), String>  {
[INFO] [stderr] 497 + pub fn create_blocks_from_llm(generated_blocks: Vec<GeneratedBlock>, data: web::Data<AppState>) -> Result<ProcessSpecResponse , String>  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> src/llm_handler.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/llm_handler.rs:364:13
[INFO] [stderr]     |
[INFO] [stderr] 364 |         let mut child = command.spawn()
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/llm_handler.rs:409:13
[INFO] [stderr]     |
[INFO] [stderr] 409 |         let mut child = command.spawn()
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task_id`
[INFO] [stderr]    --> src/task_executor.rs:155:17
[INFO] [stderr]     |
[INFO] [stderr] 155 |             let task_id = task_id.clone();
[INFO] [stderr]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stderr]   --> src/llm_handler.rs:57:7
[INFO] [stderr]    |
[INFO] [stderr] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_GEMINI_MODEL` is never used
[INFO] [stderr]   --> src/llm_handler.rs:61:7
[INFO] [stderr]    |
[INFO] [stderr] 61 | const DEFAULT_GEMINI_MODEL: &str = "gemini-2.5-flash-preview-05-20";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_openrouter_model` is never used
[INFO] [stderr]   --> src/llm_handler.rs:68:4
[INFO] [stderr]    |
[INFO] [stderr] 68 | fn get_openrouter_model(openrouter_model: Option<&str>) -> &str {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_gemini_model` is never used
[INFO] [stderr]   --> src/llm_handler.rs:73:4
[INFO] [stderr]    |
[INFO] [stderr] 73 | fn get_gemini_model(gemini_model: Option<&str>) -> &str {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]   --> src/llm_handler.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 84 | struct OpenRouterResponse {
[INFO] [stderr]    |        ------------------ field in this struct
[INFO] [stderr] 85 |     id: String,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `OpenRouterResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `forge` (lib) generated 10 warnings (run `cargo fix --lib -p forge` to apply 5 suggestions)
[INFO] [stderr] warning: `forge` (lib test) generated 10 warnings (10 duplicates)
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debug`
[INFO] [stderr]  --> src/main.rs:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 | use tracing::{debug, error, info, warn};
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> src/llm_handler.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP` and `DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP`
[INFO] [stderr]  --> src/profession_prompts.rs:2:29
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::project_config::{DEFAULT_GENERATE_TASKS_SYSTEM_PROMPT_MCP, DEFAULT_GENERATE_TASKS_USER_PROMPT_MCP};
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> src/git_handlers.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/git_handlers.rs:587:11
[INFO] [stderr]     |
[INFO] [stderr] 587 |     match (files_output) {
[INFO] [stderr]     |           ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 587 -     match (files_output) {
[INFO] [stderr] 587 +     match files_output  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> src/git_handlers.rs:588:9
[INFO] [stderr]     |
[INFO] [stderr] 588 |         (Ok(files)) => {
[INFO] [stderr]     |         ^         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 588 -         (Ok(files)) => {
[INFO] [stderr] 588 +         Ok(files)  => {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> src/git_handlers.rs:658:9
[INFO] [stderr]     |
[INFO] [stderr] 658 |         (Err(e)) => {
[INFO] [stderr]     |         ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 658 -         (Err(e)) => {
[INFO] [stderr] 658 +         Err(e)  => {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Value`
[INFO] [stderr]  --> src/mcp/transport.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use serde_json::Value;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error` and `warn`
[INFO] [stderr]  --> src/mcp/tools/registry.rs:8:22
[INFO] [stderr]   |
[INFO] [stderr] 8 | use tracing::{debug, error, info, warn};
[INFO] [stderr]   |                      ^^^^^        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Content`
[INFO] [stderr]   --> src/mcp/tools/registry.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     Content, ExecutionContext, MCPTool, PerformanceTracker, Permission, ToolCategory,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug` and `warn`
[INFO] [stderr]  --> src/mcp/tools/blocks.rs:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | use tracing::{debug, error, info, warn};
[INFO] [stderr]   |               ^^^^^               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Connections` and `Task`
[INFO] [stderr]   --> src/mcp/tools/blocks.rs:16:28
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::models::{Block, Connections, Task};
[INFO] [stderr]    |                            ^^^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::fs`
[INFO] [stderr]  --> src/mcp/tools/filesystem/list_directory.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use tokio::fs;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::PathBuf`
[INFO] [stderr]  --> src/mcp/tools/filesystem/create_directory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::path::PathBuf;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `warn`
[INFO] [stderr]   --> src/mcp/context.rs:12:28
[INFO] [stderr]    |
[INFO] [stderr] 12 | use tracing::{debug, info, warn};
[INFO] [stderr]    |                            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt`
[INFO] [stderr]  --> src/mcp/errors.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::fmt;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ClientCapabilities`, `ExecutionContext`, `MCPResponse`, `MCPTool`, `ToolError`, and `ToolResult`
[INFO] [stderr]   --> src/mcp/server.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |         ClientCapabilities, InitializeParams, InitializeResult, MCPMessage, MCPRequest,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 23 |         MCPResponse, ServerCapabilities, ServerInfo, ToolsCapability,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |         ExecutionContext, MCPTool, ToolError, ToolRegistry, ToolResult,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MCPError` and `StateError`
[INFO] [stderr]   --> src/mcp/state.rs:18:26
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::mcp::errors::{MCPError, MCPResult, StateError};
[INFO] [stderr]    |                          ^^^^^^^^             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block` and `Task`
[INFO] [stderr]   --> src/mcp/state.rs:19:21
[INFO] [stderr]    |
[INFO] [stderr] 19 | use crate::models::{Block, Task};
[INFO] [stderr]    |                     ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `transport::MCPTransport`
[INFO] [stderr]   --> src/mcp/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     transport::MCPTransport
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_BLOCK_CONFIG_FILE` and `generate_sample_config`
[INFO] [stderr]   --> src/main.rs:28:20
[INFO] [stderr]    |
[INFO] [stderr] 28 | use block_config::{generate_sample_config, BlockConfigManager, DEFAULT_BLOCK_CONFIG_FILE};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^^^^^^                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stderr]   --> src/mcp/tools/filesystem/read_file.rs:95:39
[INFO] [stderr]    |
[INFO] [stderr] 95 |                 let encoded = base64::encode(contents);
[INFO] [stderr]    |                                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stderr]    --> src/mcp/tools/filesystem/read_file.rs:104:39
[INFO] [stderr]     |
[INFO] [stderr] 104 |                 let encoded = base64::encode(contents);
[INFO] [stderr]     |                                       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `base64::decode`: Use Engine::decode
[INFO] [stderr]    --> src/mcp/tools/filesystem/write_file.rs:126:39
[INFO] [stderr]     |
[INFO] [stderr] 126 |                 let decoded = base64::decode(content)
[INFO] [stderr]     |                                       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/git_handlers.rs:551:9
[INFO] [stderr]     |
[INFO] [stderr] 551 |     let mut block = block.unwrap();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/mcp/tools/registry.rs:525:13
[INFO] [stderr]     |
[INFO] [stderr] 525 |         let mut discovered_count = 0;
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]    --> src/git_handlers.rs:465:5
[INFO] [stderr]     |
[INFO] [stderr] 465 |     data: web::Data<GitAppState>,
[INFO] [stderr]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task_id`
[INFO] [stderr]    --> src/task_executor.rs:155:17
[INFO] [stderr]     |
[INFO] [stderr] 155 |             let task_id = task_id.clone();
[INFO] [stderr]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]    --> src/mcp/transport.rs:121:40
[INFO] [stderr]     |
[INFO] [stderr] 121 |                     Ok(WsMessage::Ping(data)) => {
[INFO] [stderr]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]    --> src/mcp/tools/registry.rs:197:34
[INFO] [stderr]     |
[INFO] [stderr] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stderr]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]    --> src/mcp/tools/filesystem/read_file.rs:150:13
[INFO] [stderr]     |
[INFO] [stderr] 150 |         let params = json!({
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]    --> src/mcp/tools/filesystem/write_file.rs:184:13
[INFO] [stderr]     |
[INFO] [stderr] 184 |         let params = json!({
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]    --> src/mcp/tools/filesystem/create_directory.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let params = json!({
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]    --> src/mcp/tools/filesystem/delete.rs:145:13
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let params = json!({
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task_id`
[INFO] [stderr]    --> src/mcp/tools/tasks.rs:142:13
[INFO] [stderr]     |
[INFO] [stderr] 142 |         let task_id = task.task_id.clone();
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]   --> src/mcp/tools/mod.rs:62:31
[INFO] [stderr]    |
[INFO] [stderr] 62 |     fn validate_params(&self, params: &Value) -> Result<(), ToolError> {
[INFO] [stderr]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `now`
[INFO] [stderr]    --> src/mcp/state.rs:745:13
[INFO] [stderr]     |
[INFO] [stderr] 745 |         let now = SystemTime::now();
[INFO] [stderr]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_blocks` is never used
[INFO] [stderr]    --> src/models.rs:219:8
[INFO] [stderr]     |
[INFO] [stderr] 219 | pub fn get_blocks() -> Vec<Block> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_blocks_from_file` is never used
[INFO] [stderr]    --> src/block_config.rs:336:8
[INFO] [stderr]     |
[INFO] [stderr] 336 | pub fn load_blocks_from_file(filename: &str) -> Vec<Block> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExecuteTaskResponse` is never constructed
[INFO] [stderr]   --> src/block_handlers.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct ExecuteTaskResponse {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_OPENROUTER_MODEL` is never used
[INFO] [stderr]   --> src/llm_handler.rs:57:7
[INFO] [stderr]    |
[INFO] [stderr] 57 | const DEFAULT_OPENROUTER_MODEL: &str = "google/gemini-2.5-flash-preview-05-20";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_default_prompts` is never used
[INFO] [stderr]     --> src/profession_prompts.rs:1998:8
[INFO] [stderr]      |
[INFO] [stderr] 1998 | pub fn get_default_prompts(profession_id: Option<&str>) -> ProfessionPrompts {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_CODE_REVIEW_SYSTEM_PROMPT` is never used
[INFO] [stderr]    --> src/project_config.rs:300:11
[INFO] [stderr]     |
[INFO] [stderr] 300 | pub const DEFAULT_CODE_REVIEW_SYSTEM_PROMPT: &str = "You are a senior code reviewer with expertise in software quality, security, a...
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_CODE_REVIEW_USER_PROMPT` is never used
[INFO] [stderr]    --> src/project_config.rs:302:11
[INFO] [stderr]     |
[INFO] [stderr] 302 | pub const DEFAULT_CODE_REVIEW_USER_PROMPT: &str = "Review the following code for:
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_REFACTOR_SYSTEM_PROMPT` is never used
[INFO] [stderr]    --> src/project_config.rs:316:11
[INFO] [stderr]     |
[INFO] [stderr] 316 | pub const DEFAULT_REFACTOR_SYSTEM_PROMPT: &str = "You are a refactoring specialist focused on improving code quality while preservi...
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_REFACTOR_USER_PROMPT` is never used
[INFO] [stderr]    --> src/project_config.rs:318:11
[INFO] [stderr]     |
[INFO] [stderr] 318 | pub const DEFAULT_REFACTOR_USER_PROMPT: &str = "Analyze the following code and suggest refactoring improvements:
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExecuteGitTaskResponse` is never constructed
[INFO] [stderr]   --> src/git_handlers.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub struct ExecuteGitTaskResponse {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `task_description` and `status` are never read
[INFO] [stderr]   --> src/task_queue.rs:9:9
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub struct QueuedTask {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub task_description: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     pub status: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `QueuedTask` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TaskQueue` is never constructed
[INFO] [stderr]   --> src/task_queue.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct TaskQueue {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `instance`, `enqueue_task`, `is_task_in_queue`, and `get_task_status` are never used
[INFO] [stderr]   --> src/task_queue.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | impl TaskQueue {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 42 |     // Get the singleton instance
[INFO] [stderr] 43 |     pub fn instance() -> Arc<TaskQueue> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn enqueue_task(&self, block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     pub fn is_task_in_queue(&self, block_id: &str, task_id: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     pub fn get_task_status(&self, block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `enqueue_task` is never used
[INFO] [stderr]   --> src/task_queue.rs:86:8
[INFO] [stderr]    |
[INFO] [stderr] 86 | pub fn enqueue_task(block_id: &str, task_id: &str, task_description: &str) -> Result<String, String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_task_in_queue` is never used
[INFO] [stderr]   --> src/task_queue.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn is_task_in_queue(block_id: &str, task_id: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_task_status` is never used
[INFO] [stderr]   --> src/task_queue.rs:94:8
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn get_task_status(block_id: &str, task_id: &str) -> Option<String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `timestamp` is never read
[INFO] [stderr]   --> src/log_stream.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct LogEntry {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] 15 |     pub timestamp: Instant,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LogEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `close` is never used
[INFO] [stderr]   --> src/mcp/transport.rs:32:14
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub trait MCPTransport: Send + Sync {
[INFO] [stderr]    |           ------------ method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 32 |     async fn close(&mut self) -> MCPResult<()>;
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WebSocketTransport` is never constructed
[INFO] [stderr]   --> src/mcp/transport.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub struct WebSocketTransport {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/mcp/transport.rs:50:18
[INFO] [stderr]    |
[INFO] [stderr] 48 | impl WebSocketTransport {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] 49 |     /// Create a new WebSocket transport from a TCP stream
[INFO] [stderr] 50 |     pub async fn new(stream: tokio::net::TcpStream) -> MCPResult<Self> {
[INFO] [stderr]    |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `create_websocket` and `create_http` are never used
[INFO] [stderr]    --> src/mcp/transport.rs:399:18
[INFO] [stderr]     |
[INFO] [stderr] 397 | impl TransportFactory {
[INFO] [stderr]     | --------------------- associated functions in this implementation
[INFO] [stderr] 398 |     /// Create a WebSocket transport from a TCP stream
[INFO] [stderr] 399 |     pub async fn create_websocket(stream: tokio::net::TcpStream) -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 405 |     pub async fn create_http() -> MCPResult<Box<dyn MCPTransport>> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_response` is never used
[INFO] [stderr]    --> src/mcp/protocol.rs:187:12
[INFO] [stderr]     |
[INFO] [stderr]  52 | impl MCPMessage {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn as_response(&self) -> MCPResult<MCPResponse> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `parse_messages` is never used
[INFO] [stderr]    --> src/mcp/protocol.rs:365:12
[INFO] [stderr]     |
[INFO] [stderr] 347 | impl MessageParser {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 365 |     pub fn parse_messages(buffer: &str) -> Vec<MCPResult<MCPMessage>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `project_config`, `context_store`, and `user_preferences` are never read
[INFO] [stderr]   --> src/mcp/tools/mod.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub struct ExecutionContext {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub project_config: std::sync::Arc<crate::project_config::ProjectConfigManager>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 |     pub context_store: std::sync::Arc<tokio::sync::RwLock<crate::mcp::context::ContextStore>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 91 |     pub user_preferences: UserPreferences,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ExecutionContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Dependency`, `Git`, `Network`, and `Validation` are never constructed
[INFO] [stderr]    --> src/mcp/tools/mod.rs:313:5
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub enum ToolError {
[INFO] [stderr]     |          --------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 313 |     Dependency(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     Git(String),
[INFO] [stderr]     |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 322 |     Network(String),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 325 |     Validation(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `total_memory`, `total_network_requests`, and `total_file_operations` are never read
[INFO] [stderr]    --> src/mcp/tools/mod.rs:442:9
[INFO] [stderr]     |
[INFO] [stderr] 439 | pub struct PerformanceTracker {
[INFO] [stderr]     |            ------------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 442 |     pub total_memory: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 443 |     pub total_network_requests: u32,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 444 |     pub total_file_operations: u32,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PerformanceTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_average_execution_time` and `get_tool_statistics` are never used
[INFO] [stderr]    --> src/mcp/tools/mod.rs:467:12
[INFO] [stderr]     |
[INFO] [stderr] 459 | impl PerformanceTracker {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 467 |     pub fn get_average_execution_time(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 474 |     pub fn get_tool_statistics(&self, tool_name: &str) -> ToolStatistics {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `failure` is never used
[INFO] [stderr]    --> src/mcp/tools/mod.rs:526:8
[INFO] [stderr]     |
[INFO] [stderr] 524 | pub trait ToolResultBuilder {
[INFO] [stderr]     |           ----------------- associated function in this trait
[INFO] [stderr] 525 |     fn success() -> ToolResult;
[INFO] [stderr] 526 |     fn failure(error: impl Into<String>) -> ToolResult;
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `performance_tracker` is never read
[INFO] [stderr]   --> src/mcp/tools/registry.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct ToolRegistry {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 32 |     performance_tracker: Arc<RwLock<PerformanceTracker>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `max_concurrent_executions`, `enable_result_caching`, `max_cache_size`, and `cache_ttl` are never read
[INFO] [stderr]   --> src/mcp/tools/registry.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub struct ToolRegistryConfig {
[INFO] [stderr]    |            ------------------ fields in this struct
[INFO] [stderr] 76 |     /// Maximum number of concurrent tool executions
[INFO] [stderr] 77 |     pub max_concurrent_executions: usize,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     pub enable_result_caching: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 89 |     pub max_cache_size: usize,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 92 |     pub cache_ttl: Duration,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ToolRegistryConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CacheEntry` is never constructed
[INFO] [stderr]    --> src/mcp/tools/registry.rs:114:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | struct CacheEntry {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/mcp/tools/registry.rs:180:18
[INFO] [stderr]     |
[INFO] [stderr] 121 | impl ToolRegistry {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub async fn unregister_tool(&self, name: &str) -> MCPResult<()> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub async fn get_tool(&self, name: &str) -> Option<Box<dyn MCPTool + '_>> {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub async fn get_tool_metadata(&self, name: &str) -> Option<ToolMetadata> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub async fn get_tools_by_category(&self, category: ToolCategory) -> Vec<ToolInfo> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 353 |     pub async fn execute_tools_parallel(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 388 |     pub async fn get_tool_statistics(&self, name: &str) -> Option<ToolStatistics> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 495 |     fn clone_for_parallel(&self) -> Self {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ToolDiscovery` is never constructed
[INFO] [stderr]    --> src/mcp/tools/registry.rs:507:12
[INFO] [stderr]     |
[INFO] [stderr] 507 | pub struct ToolDiscovery {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `discover_tools` are never used
[INFO] [stderr]    --> src/mcp/tools/registry.rs:513:12
[INFO] [stderr]     |
[INFO] [stderr] 512 | impl ToolDiscovery {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 513 |     pub fn new(registry: Arc<ToolRegistry>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 524 |     pub async fn discover_tools(&self) -> MCPResult<usize> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `enable_persistence` and `max_tool_history` are never read
[INFO] [stderr]    --> src/mcp/session.rs:137:9
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub struct SessionConfig {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub enable_persistence: bool,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 140 |     pub max_tool_history: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SessionConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `update_session`, `update_activity`, `list_active_sessions`, `cleanup_temp_sessions`, `enable_collaboration`, and `sync_collaborative_context` are never used
[INFO] [stderr]    --> src/mcp/session.rs:269:18
[INFO] [stderr]     |
[INFO] [stderr] 158 | impl SessionManager {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 269 |     pub async fn update_session(&self, session: Session) -> MCPResult<()> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub async fn update_activity(&self, session_id: &str) -> MCPResult<()> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 306 |     pub async fn list_active_sessions(&self) -> Vec<SessionId> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 338 |     pub async fn cleanup_temp_sessions(&self) -> usize {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 421 |     pub async fn enable_collaboration(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 438 |     pub async fn sync_collaborative_context(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SessionCleanupService` is never constructed
[INFO] [stderr]    --> src/mcp/session.rs:480:12
[INFO] [stderr]     |
[INFO] [stderr] 480 | pub struct SessionCleanupService {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `start` are never used
[INFO] [stderr]    --> src/mcp/session.rs:486:12
[INFO] [stderr]     |
[INFO] [stderr] 485 | impl SessionCleanupService {
[INFO] [stderr]     | -------------------------- associated items in this implementation
[INFO] [stderr] 486 |     pub fn new(manager: Arc<SessionManager>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 494 |     pub async fn start(&self) {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `access_count` is never read
[INFO] [stderr]    --> src/mcp/context.rs:147:5
[INFO] [stderr]     |
[INFO] [stderr] 144 | struct CachedEntry {
[INFO] [stderr]     |        ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 147 |     access_count: u64,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CachedEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/mcp/context.rs:411:12
[INFO] [stderr]     |
[INFO] [stderr] 150 | impl ContextStore {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 411 |     pub fn delete_session(&mut self, session_id: &str, key: &str, tool_name: impl Into<String>) -> MCPResult<bool> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 447 |     pub fn list_shared_keys(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 452 |     pub fn list_session_keys(&self, session_id: &str) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 460 |     pub fn get_metadata(&self, key: &str, session_id: Option<&str>) -> Option<ContextEntry> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 488 |     pub fn add_tags(&mut self, key: &str, session_id: Option<&str>, tags: Vec<String>) -> MCPResult<()> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 505 |     pub fn search_by_tags(&self, tags: &[String], session_id: Option<&str>) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 526 |     pub fn cleanup_expired(&mut self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 615 |     pub fn get_recent_events(&self, limit: usize) -> Vec<&ContextEvent> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `cleanup_interval` is never read
[INFO] [stderr]    --> src/mcp/context.rs:666:5
[INFO] [stderr]     |
[INFO] [stderr] 664 | pub struct ContextManager {
[INFO] [stderr]     |            -------------- field in this struct
[INFO] [stderr] 665 |     store: Arc<RwLock<ContextStore>>,
[INFO] [stderr] 666 |     cleanup_interval: Duration,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `start_cleanup_service` is never used
[INFO] [stderr]    --> src/mcp/context.rs:682:18
[INFO] [stderr]     |
[INFO] [stderr] 669 | impl ContextManager {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 682 |     pub async fn start_cleanup_service(&self) {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PermissionDenied`, `NotFound`, `Timeout`, `Internal`, and `RecoverableError` are never constructed
[INFO] [stderr]   --> src/mcp/errors.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub enum MCPError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 36 |     PermissionDenied(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     NotFound(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     Timeout(String),
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     Internal(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     RecoverableError {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MCPError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ConnectionFailed` and `Closed` are never constructed
[INFO] [stderr]   --> src/mcp/errors.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub enum TransportError {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 61 |     #[error("Connection failed: {0}")]
[INFO] [stderr] 62 |     ConnectionFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     Closed,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `MethodNotFound`, `InvalidParams`, and `ServerError` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:90:5
[INFO] [stderr]     |
[INFO] [stderr]  85 | pub enum ProtocolError {
[INFO] [stderr]     |          ------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr]  90 |     MethodNotFound(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  93 |     InvalidParams(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     ServerError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ProtocolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub enum ToolError {
[INFO] [stderr]     |          --------- variants in this enum
[INFO] [stderr] 108 |     #[error("Tool not found: {0}")]
[INFO] [stderr] 109 |     NotFound(String),
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     InvalidParams(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     ExecutionFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     Timeout { timeout_ms: u64 },
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     PermissionDenied(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     ResourceLimit(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     Dependency(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     FileSystem(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 133 |     Git(String),
[INFO] [stderr]     |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     Network(String),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ToolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Expired`, `AuthenticationFailed`, `ConcurrentAccess`, and `Corrupted` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:146:5
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub enum SessionError {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 146 |     Expired(String),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     AuthenticationFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     ConcurrentAccess(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |     Corrupted(String),
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SessionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `TransactionFailed`, `ConsistencyViolation`, `LockFailed`, `RollbackFailed`, `Persistence`, and `Conflict` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:165:5
[INFO] [stderr]     |
[INFO] [stderr] 163 | pub enum StateError {
[INFO] [stderr]     |          ---------- variants in this enum
[INFO] [stderr] 164 |     #[error("Transaction failed: {0}")]
[INFO] [stderr] 165 |     TransactionFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 168 |     ConsistencyViolation(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     LockFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     RollbackFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     Persistence(String),
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     Conflict(String),
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Expired`, `Serialization`, `SizeLimit`, `Locked`, and `ConcurrentAccess` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:190:5
[INFO] [stderr]     |
[INFO] [stderr] 185 | pub enum ContextError {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 190 |     Expired(String),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 193 |     Serialization(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 196 |     SizeLimit { current: usize, limit: usize },
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 199 |     Locked(String),
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     ConcurrentAccess(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ContextError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `StartupFailed` and `ShutdownFailed` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:230:5
[INFO] [stderr]     |
[INFO] [stderr] 213 | pub enum ServerError {
[INFO] [stderr]     |          ----------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 230 |     StartupFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 233 |     ShutdownFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `InvalidRequest` and `ServerError` are never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:240:5
[INFO] [stderr]     |
[INFO] [stderr] 238 | pub enum JsonRpcErrorCode {
[INFO] [stderr]     |          ---------------- variants in this enum
[INFO] [stderr] 239 |     ParseError = -32700,
[INFO] [stderr] 240 |     InvalidRequest = -32600,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 244 |     ServerError = -32000, // -32000 to -32099 are reserved for implementation-defined server-errors
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `JsonRpcErrorCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `with_data` is never used
[INFO] [stderr]    --> src/mcp/errors.rs:265:12
[INFO] [stderr]     |
[INFO] [stderr] 256 | impl JsonRpcError {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 265 |     pub fn with_data(mut self, data: Value) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ErrorRecoverySystem` is never constructed
[INFO] [stderr]    --> src/mcp/errors.rs:306:12
[INFO] [stderr]     |
[INFO] [stderr] 306 | pub struct ErrorRecoverySystem {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `attempt_recovery` are never used
[INFO] [stderr]    --> src/mcp/errors.rs:312:12
[INFO] [stderr]     |
[INFO] [stderr] 311 | impl ErrorRecoverySystem {
[INFO] [stderr]     | ------------------------ associated items in this implementation
[INFO] [stderr] 312 |     pub fn new(max_retry_attempts: usize, retry_delay: std::time::Duration) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     pub async fn attempt_recovery<F, T>(&self, operation: F) -> MCPResult<T>
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ErrorContext` is never used
[INFO] [stderr]    --> src/mcp/errors.rs:351:11
[INFO] [stderr]     |
[INFO] [stderr] 351 | pub trait ErrorContext<T> {
[INFO] [stderr]     |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `max_concurrent_tools`, `tool_timeout`, `enable_monitoring`, `monitoring_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stderr]   --> src/mcp/server.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct MCPServerConfig {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub max_concurrent_tools: usize,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub tool_timeout: Duration,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub enable_monitoring: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub monitoring_interval: Duration,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub enable_cleanup: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub cleanup_interval: Duration,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MCPServerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `shutdown_tx` is never read
[INFO] [stderr]    --> src/mcp/server.rs:120:5
[INFO] [stderr]     |
[INFO] [stderr]  91 | pub struct MCPServer {
[INFO] [stderr]     |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 120 |     shutdown_tx: Option<mpsc::Sender<()>>,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `session_id`, `transport_type`, and `connected_at` are never read
[INFO] [stderr]    --> src/mcp/server.rs:126:9
[INFO] [stderr]     |
[INFO] [stderr] 125 | struct ConnectionInfo {
[INFO] [stderr]     |        -------------- fields in this struct
[INFO] [stderr] 126 |     pub session_id: SessionId,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 127 |     pub transport_type: TransportType,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 128 |     pub connected_at: SystemTime,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ConnectionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `start`, `start_cleanup_services`, `start_monitoring_service`, `shutdown`, and `get_statistics` are never used
[INFO] [stderr]    --> src/mcp/server.rs:208:18
[INFO] [stderr]     |
[INFO] [stderr] 161 | impl MCPServer {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub async fn start(&mut self) -> MCPResult<()> {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 531 |     async fn start_cleanup_services(&self) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 556 |     async fn start_monitoring_service(&self) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 601 |     pub async fn shutdown(&self) -> MCPResult<()> {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 609 |     pub async fn get_statistics(&self) -> ServerStatistics {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `last_updated` and `source` are never read
[INFO] [stderr]    --> src/mcp/state.rs:229:9
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub struct StateEntry {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 228 |     pub value: Value,
[INFO] [stderr] 229 |     pub last_updated: SystemTime,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 230 |     pub update_count: u64,
[INFO] [stderr] 231 |     pub source: String,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StateEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `persistence_interval`, `enable_cleanup`, and `cleanup_interval` are never read
[INFO] [stderr]    --> src/mcp/state.rs:289:9
[INFO] [stderr]     |
[INFO] [stderr] 278 | pub struct StateConfig {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 289 |     pub persistence_interval: Duration,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 292 |     pub enable_cleanup: bool,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 295 |     pub cleanup_interval: Duration,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StateConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/mcp/state.rs:363:12
[INFO] [stderr]     |
[INFO] [stderr] 343 | impl UnifiedStateManager {
[INFO] [stderr]     | ------------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 363 |     pub fn subscribe_to_changes(&self) -> broadcast::Receiver<StateChangeEvent> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 368 |     pub fn get_core_state(&self) -> CoreState {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 412 |     pub fn update_project(&self, project_id: &str, updates: HashMap<String, Value>, source: impl Into<String>) -> MCPResult<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 582 |     pub fn update_block(&self, block_id: &str, status: BlockStatus, outputs: Option<HashMap<String, Value>>, source: impl Into<Stri...
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 670 |     pub fn get_block(&self, block_id: &str) -> Option<BlockState> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 675 |     pub fn get_session(&self, session_id: &str) -> Option<SessionState> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 680 |     pub fn list_projects(&self, status_filter: Option<ProjectStatus>) -> Vec<ProjectState> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 690 |     pub fn list_tasks(&self, project_id: Option<&str>, status_filter: Option<TaskStatus>) -> Vec<TaskState> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 738 |     pub fn get_recent_changes(&self, limit: usize) -> Vec<StateChangeEvent> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 744 |     pub fn cleanup_expired_state(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `forge` (bin "forge" test) generated 107 warnings (7 duplicates) (run `cargo fix --bin "forge" -p forge --tests` to apply 35 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/forge-062638375589bd9b)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test models::tests::test_task_to_markdown_prompt ... ok
[INFO] [stdout] test models::tests::test_input_connection_id_generation ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- models::tests::test_input_connection_id_generation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'models::tests::test_input_connection_id_generation' (17) panicked at src/models.rs:313:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 6
[INFO] [stdout]  right: 4
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5da1a9ea6152 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5da1a9ea6152 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5da1a9ea6152 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5da1a9ea6152 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5da1a9ebb03a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5da1a9ebb03a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x5da1a9eaaf56 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5da1a9eaaf56 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5da1a9e848ef - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5da1a9e848ef - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5da1a9e9e439 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5da1a9dfa18e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5da1a9dfa18e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5da1a9e9e5f2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5da1a9e9e5f2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5da1a9e849a8 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5da1a9e79c29 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5da1a9e857fd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5da1a9ebb70c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5da1a9ebb5c3 - core[27de1724e4349be2]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5da1a9eb7a78 - core[27de1724e4349be2]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5da1a9dec826 - forge[577a1db7d660d69b]::models::tests::test_input_connection_id_generation
[INFO] [stdout]                                at /opt/rustwide/workdir/src/models.rs:313:9
[INFO] [stdout]   22:     0x5da1a9dead97 - forge[577a1db7d660d69b]::models::tests::test_input_connection_id_generation::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/models.rs:309:45
[INFO] [stdout]   23:     0x5da1a9dedfb6 - <forge[577a1db7d660d69b]::models::tests::test_input_connection_id_generation::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5da1a9dee53b - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5da1a9dee53b - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5da1a9dfad9a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5da1a9dfad9a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5da1a9dfad9a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5da1a9dfad9a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5da1a9dfad9a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5da1a9dfad9a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5da1a9dfad9a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5da1a9df6344 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5da1a9df6344 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5da1a9dfd892 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5da1a9dfd892 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5da1a9dfd892 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5da1a9dfd892 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5da1a9dfd892 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5da1a9dfd892 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5da1a9dfd892 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5da1a9ea59ff - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5da1a9ea59ff - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7fe01fa75aa4 - <unknown>
[INFO] [stdout]   45:     0x7fe01fb02a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     models::tests::test_input_connection_id_generation
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "010fe187552a7e308b187304b9c1c4c7c3487c5a066a137ebd6eed53a5880f72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "010fe187552a7e308b187304b9c1c4c7c3487c5a066a137ebd6eed53a5880f72", kill_on_drop: false }`
[INFO] [stdout] 010fe187552a7e308b187304b9c1c4c7c3487c5a066a137ebd6eed53a5880f72
