[INFO] fetching crate hanzo-mcp 1.1.24...
[INFO] checking hanzo-mcp-1.1.24 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate hanzo-mcp 1.1.24 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate hanzo-mcp 1.1.24
[INFO] finished tweaking crates.io crate hanzo-mcp 1.1.24
[INFO] tweaked toml for crates.io crate hanzo-mcp 1.1.24 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate hanzo-mcp 1.1.24 on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate hanzo-mcp 1.1.24 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.0.106
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.51
[INFO] [stderr]   Downloaded jsonrpc-server-utils v18.0.0
[INFO] [stderr]   Downloaded jsonrpc-http-server v18.0.0
[INFO] [stderr]   Downloaded jsonrpc-derive v18.0.0
[INFO] [stderr]   Downloaded tree-sitter-go v0.20.0
[INFO] [stderr]   Downloaded tree-sitter v0.20.10
[INFO] [stderr]   Downloaded tree-sitter-java v0.20.2
[INFO] [stderr]   Downloaded tree-sitter-python v0.20.4
[INFO] [stderr]   Downloaded tree-sitter-javascript v0.20.4
[INFO] [stderr]   Downloaded blake3 v1.5.3
[INFO] [stderr]   Downloaded tree-sitter-rust v0.20.4
[INFO] [stderr]   Downloaded tree-sitter-c v0.20.8
[INFO] [stderr]   Downloaded web-sys v0.3.78
[INFO] [stderr]   Downloaded tree-sitter-cpp v0.20.5
[INFO] [stderr]   Downloaded tree-sitter-typescript v0.20.5
[INFO] [stderr]   Downloaded ring v0.17.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee
[INFO] running `Command { std: "docker" "start" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.0.106
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking bstr v1.12.0
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]     Checking rustix v1.1.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking clap_builder v4.5.47
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling hanzo-mcp v1.1.24 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking shell-escape v0.1.5
[INFO] [stderr]     Checking indexmap v2.11.1
[INFO] [stderr]    Compiling tree-sitter v0.20.10
[INFO] [stderr]    Compiling ring v0.17.9
[INFO] [stderr]    Compiling tree-sitter-java v0.20.2
[INFO] [stderr]    Compiling tree-sitter-rust v0.20.4
[INFO] [stderr]    Compiling blake3 v1.5.3
[INFO] [stderr]    Compiling tree-sitter-cpp v0.20.5
[INFO] [stderr]    Compiling tree-sitter-javascript v0.20.4
[INFO] [stderr]    Compiling tree-sitter-typescript v0.20.5
[INFO] [stderr]    Compiling tree-sitter-go v0.20.0
[INFO] [stderr]    Compiling tree-sitter-python v0.20.4
[INFO] [stderr]    Compiling tree-sitter-c v0.20.8
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking parking_lot_core v0.8.6
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking shellexpand v3.1.1
[INFO] [stderr]     Checking tempfile v3.22.0
[INFO] [stderr]     Checking which v6.0.3
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]     Checking globset v0.4.16
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling jsonrpc-derive v18.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking clap v4.5.47
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-util v0.6.10
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking jsonrpc-core v18.0.0
[INFO] [stderr]     Checking jsonrpc-server-utils v18.0.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking jsonrpc-http-server v18.0.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/brain/recipes.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/mode_tool.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/tools/computer_tool/linux.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/tools/computer_tool/linux.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/tools/exec_tool.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::io::{AsyncBufReadExt, BufReader};
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/tools/fs_tool.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/tools/fs_tool.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `computer-control`
[INFO] [stdout]    --> src/lib.rs:340:15
[INFO] [stdout]     |
[INFO] [stdout] 340 |         #[cfg(feature = "computer-control")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `computer-control` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `vector-store`
[INFO] [stdout]    --> src/lib.rs:345:15
[INFO] [stdout]     |
[INFO] [stdout] 345 |         #[cfg(feature = "vector-store")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `vector-store` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/brain/recipes.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/mode_tool.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/tools/computer_tool/linux.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/tools/computer_tool/linux.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/tools/exec_tool.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::io::{AsyncBufReadExt, BufReader};
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/tools/fs_tool.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/tools/fs_tool.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `computer-control`
[INFO] [stdout]    --> src/lib.rs:340:15
[INFO] [stdout]     |
[INFO] [stdout] 340 |         #[cfg(feature = "computer-control")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `computer-control` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `vector-store`
[INFO] [stdout]    --> src/lib.rs:345:15
[INFO] [stdout]     |
[INFO] [stdout] 345 |         #[cfg(feature = "vector-store")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `vector-store` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/exec_tool.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut child = cmd.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/tools/exec_tool.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut child = cmd.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: unused import: `AsyncBufReadExt`
[INFO] [stdout]   --> src/tools/exec_tool.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::io::{AsyncBufReadExt, BufReader};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/tools/git_tool.rs:470:41
[INFO] [stdout]     |
[INFO] [stdout] 470 |     async fn shortlog(&self, cwd: &str, args: &GitToolArgs) -> Result<Value> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncBufReadExt`
[INFO] [stdout]   --> src/tools/exec_tool.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::io::{AsyncBufReadExt, BufReader};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/fs_tool.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:368:29
[INFO] [stdout]     |
[INFO] [stdout] 368 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:390:29
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:407:29
[INFO] [stdout]     |
[INFO] [stdout] 407 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:451:21
[INFO] [stdout]     |
[INFO] [stdout] 451 |         if let Some(mut hunk) = current_hunk.take() {
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/tools/git_tool.rs:470:41
[INFO] [stdout]     |
[INFO] [stdout] 470 |     async fn shortlog(&self, cwd: &str, args: &GitToolArgs) -> Result<Value> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/fs_tool.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:368:29
[INFO] [stdout]     |
[INFO] [stdout] 368 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:390:29
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:407:29
[INFO] [stdout]     |
[INFO] [stdout] 407 |                 if let Some(mut hunk) = current_hunk.take() {
[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/tools/fs_tool.rs:451:21
[INFO] [stdout]     |
[INFO] [stdout] 451 |         if let Some(mut hunk) = current_hunk.take() {
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `HanzoMCPHandle`
[INFO] [stdout]   --> src/ffi.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type HanzoMCPHandle = *mut FFIContext;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^ type alias `HanzoMCPHandle` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ffi.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct FFIContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `hanzo_mcp_init`
[INFO] [stdout]   --> src/ffi.rs:81:1
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub extern "C" fn hanzo_mcp_init(config_json: *const c_char) -> HanzoMCPHandle {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `hanzo_mcp_init` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ffi.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct FFIContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `hanzo_mcp_call_tool`
[INFO] [stdout]    --> src/ffi.rs:134:1
[INFO] [stdout]     |
[INFO] [stdout] 134 | / pub extern "C" fn hanzo_mcp_call_tool(
[INFO] [stdout] 135 | |     handle: HanzoMCPHandle,
[INFO] [stdout] 136 | |     tool_name: *const c_char,
[INFO] [stdout] 137 | |     params_json: *const c_char,
[INFO] [stdout] 138 | | ) -> *mut c_char {
[INFO] [stdout]     | |________________^ function `hanzo_mcp_call_tool` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `hanzo_mcp_list_tools`
[INFO] [stdout]    --> src/ffi.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub extern "C" fn hanzo_mcp_list_tools(handle: HanzoMCPHandle) -> *mut c_char {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `hanzo_mcp_list_tools` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `hanzo_mcp_destroy`
[INFO] [stdout]    --> src/ffi.rs:253:1
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub extern "C" fn hanzo_mcp_destroy(handle: HanzoMCPHandle) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `hanzo_mcp_destroy` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MCPServer {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 13 |     config: Config,
[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 `pstr` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn pstr(m: &Map<String, Value>, key: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `need` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn need(action: &str, required: &str) -> Value {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unknown` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn unknown(action: &str, available: &[&str]) -> Value {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/search/search.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct DocumentInfo {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 358 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `HanzoMCPHandle`
[INFO] [stdout]   --> src/ffi.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type HanzoMCPHandle = *mut FFIContext;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^ type alias `HanzoMCPHandle` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ffi.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct FFIContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `ffi::hanzo_mcp_init`
[INFO] [stdout]   --> src/ffi.rs:81:1
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub extern "C" fn hanzo_mcp_init(config_json: *const c_char) -> HanzoMCPHandle {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `ffi::hanzo_mcp_init` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ffi.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct FFIContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `ffi::hanzo_mcp_call_tool`
[INFO] [stdout]    --> src/ffi.rs:134:1
[INFO] [stdout]     |
[INFO] [stdout] 134 | / pub extern "C" fn hanzo_mcp_call_tool(
[INFO] [stdout] 135 | |     handle: HanzoMCPHandle,
[INFO] [stdout] 136 | |     tool_name: *const c_char,
[INFO] [stdout] 137 | |     params_json: *const c_char,
[INFO] [stdout] 138 | | ) -> *mut c_char {
[INFO] [stdout]     | |________________^ function `ffi::hanzo_mcp_call_tool` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `ffi::hanzo_mcp_list_tools`
[INFO] [stdout]    --> src/ffi.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub extern "C" fn hanzo_mcp_list_tools(handle: HanzoMCPHandle) -> *mut c_char {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `ffi::hanzo_mcp_list_tools` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FFIContext` is more private than the item `ffi::hanzo_mcp_destroy`
[INFO] [stdout]    --> src/ffi.rs:253:1
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub extern "C" fn hanzo_mcp_destroy(handle: HanzoMCPHandle) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `ffi::hanzo_mcp_destroy` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `FFIContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ffi.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | struct FFIContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MCPServer {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 13 |     config: Config,
[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 `pstr` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn pstr(m: &Map<String, Value>, key: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `need` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn need(action: &str, required: &str) -> Value {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unknown` is never used
[INFO] [stdout]    --> src/tools/hanzo_tool.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn unknown(action: &str, available: &[&str]) -> Value {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/search/search.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct DocumentInfo {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 358 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `jsonrpc-derive`
[INFO] [stderr]   --> Cargo.toml:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 | [dependencies.jsonrpc-derive]
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `jsonrpc-derive`
[INFO] [stderr] warning: unused dependency `rayon`
[INFO] [stderr]   --> Cargo.toml:49:15
[INFO] [stderr]    |
[INFO] [stderr] 49 | [dependencies.rayon]
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `rayon`
[INFO] [stderr] warning: unused dependency `sha2`
[INFO] [stderr]   --> Cargo.toml:70:15
[INFO] [stderr]    |
[INFO] [stderr] 70 | [dependencies.sha2]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `sha2`
[INFO] [stderr] warning: unused dependency `thiserror`
[INFO] [stderr]   --> Cargo.toml:82:15
[INFO] [stderr]    |
[INFO] [stderr] 82 | [dependencies.thiserror]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `thiserror`
[INFO] [stderr] warning: unused dependency `x11`
[INFO] [stderr]    --> Cargo.toml:155:49
[INFO] [stderr]     |
[INFO] [stderr] 155 | [target.'cfg(target_os = "linux")'.dependencies.x11]
[INFO] [stderr]     |                                                 ^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: consider removing the dependency on `x11`
[INFO] [stderr] warning: `hanzo-mcp` (manifest) generated 5 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.29.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 11`
[INFO] running `Command { std: "docker" "inspect" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee", kill_on_drop: false }`
[INFO] [stdout] 7e6998ea1264ffd8e3d4a72c692627c70cb518ef5652c79e14a0cdf475134eee
