[INFO] cloning repository https://github.com/CaptainEmpower/smart-hooks
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CaptainEmpower/smart-hooks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptainEmpower%2Fsmart-hooks", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptainEmpower%2Fsmart-hooks'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4878c290b71e3becd329e4567daac1929f5a693c
[INFO] checking CaptainEmpower/smart-hooks against master#3f6250a7bb79e600d9036bbc7c8f65af43933643 for pr-147859
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptainEmpower%2Fsmart-hooks" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/CaptainEmpower/smart-hooks
[INFO] finished tweaking git repo https://github.com/CaptainEmpower/smart-hooks
[INFO] tweaked toml for git repo https://github.com/CaptainEmpower/smart-hooks written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/CaptainEmpower/smart-hooks on toolchain 3f6250a7bb79e600d9036bbc7c8f65af43933643
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/CaptainEmpower/smart-hooks 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" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6a449c63e9fee87819bc61ca684a45e0ee4b5cc0712bfe142ac9e342a8934423
[INFO] running `Command { std: "docker" "start" "-a" "6a449c63e9fee87819bc61ca684a45e0ee4b5cc0712bfe142ac9e342a8934423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a449c63e9fee87819bc61ca684a45e0ee4b5cc0712bfe142ac9e342a8934423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a449c63e9fee87819bc61ca684a45e0ee4b5cc0712bfe142ac9e342a8934423", kill_on_drop: false }`
[INFO] [stdout] 6a449c63e9fee87819bc61ca684a45e0ee4b5cc0712bfe142ac9e342a8934423
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ee18441af68916eb0d537d7bd5f5f6e5247ffb7bfde7ccd1adb2c8075a63c4d3
[INFO] running `Command { std: "docker" "start" "-a" "ee18441af68916eb0d537d7bd5f5f6e5247ffb7bfde7ccd1adb2c8075a63c4d3", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking clap_builder v4.5.51
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking clap v4.5.51
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking smart-hooks v0.2.0 (/opt/rustwide/workdir/smart-hooks)
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:302:14
[INFO] [stdout]     |
[INFO] [stdout] 302 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:396:14
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:483:14
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:302:14
[INFO] [stdout]     |
[INFO] [stdout] 302 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:396:14
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_num`
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:483:14
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for (line_num, line) in content.lines().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct RustMultiLangAnalyzer {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 199 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct TypeScriptDependencyAnalyzer {
[INFO] [stdout]     |            ---------------------------- field in this struct
[INFO] [stdout] 287 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:382:5
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub struct PythonDependencyAnalyzer {
[INFO] [stdout]     |            ------------------------ field in this struct
[INFO] [stdout] 382 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:469:5
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub struct PhpDependencyAnalyzer {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 469 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct RustMultiLangAnalyzer {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 199 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct TypeScriptDependencyAnalyzer {
[INFO] [stdout]     |            ---------------------------- field in this struct
[INFO] [stdout] 287 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:382:5
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub struct PythonDependencyAnalyzer {
[INFO] [stdout]     |            ------------------------ field in this struct
[INFO] [stdout] 382 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language_config` is never read
[INFO] [stdout]    --> smart-hooks/src/dependency/multi_lang_analyzer.rs:469:5
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub struct PhpDependencyAnalyzer {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 469 |     language_config: crate::project::multi_lang_types::LanguageConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::ProjectMetadata`
[INFO] [stdout]  --> smart-hooks/tests/integration_test.rs:4:57
[INFO] [stdout]   |
[INFO] [stdout] 4 | use smart_hooks::project::{discovery::ProjectDiscovery, types::ProjectMetadata};
[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::HashSet`
[INFO] [stdout]  --> smart-hooks/tests/integration_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_plan`
[INFO] [stdout]    --> smart-hooks/tests/integration_test.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let test_plan = dependency_mapper::create_test_plan(&changed_files)?;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_plan`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `smart_hooks::hotreload`
[INFO] [stdout]  --> smart-hooks/tests/hotreload_integration.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use smart_hooks::hotreload::*;
[INFO] [stdout]   |                      ^^^^^^^^^ could not find `hotreload` in `smart_hooks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: multiple unused formatting arguments
[INFO] [stdout]    --> smart-hooks/tests/hotreload_performance.rs:208:68
[INFO] [stdout]     |
[INFO] [stdout] 136 | /                 r#"//! Module {} - Performance test module
[INFO] [stdout] 137 | |
[INFO] [stdout] 138 | | use serde::{{Serialize, Deserialize}};
[INFO] [stdout] ...   |
[INFO] [stdout] 206 | | }}
[INFO] [stdout] 207 | | "#,
[INFO] [stdout]     | |__- multiple missing formatting specifiers
[INFO] [stdout] 208 |                   i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i
[INFO] [stdout]     |                                                                      ^  ^  ^  ^ argument never used
[INFO] [stdout]     |                                                                      |  |  |
[INFO] [stdout]     |                                                                      |  |  argument never used
[INFO] [stdout]     |                                                                      |  argument never used
[INFO] [stdout]     |                                                                      argument never used
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider adding 4 format specifiers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `analyze_file_impact`
[INFO] [stdout]   --> smart-hooks/src/smart_analysis/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     analyze_file_impact
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `smart_hooks::hotreload`
[INFO] [stdout]  --> smart-hooks/tests/hotreload_performance.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use smart_hooks::hotreload::*;
[INFO] [stdout]   |                      ^^^^^^^^^ could not find `hotreload` in `smart_hooks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `smart_hooks::hotreload`
[INFO] [stdout]  --> smart-hooks/tests/hotreload_bdd.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use smart_hooks::hotreload::*;
[INFO] [stdout]   |                      ^^^^^^^^^ could not find `hotreload` in `smart_hooks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> smart-hooks/tests/hotreload_integration.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 |     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] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smart-hooks` (test "hotreload_performance") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `smart-hooks` (test "hotreload_integration") due to 1 previous error; 1 warning emitted
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smart-hooks` (test "hotreload_bdd") due to 1 previous error
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> smart-hooks/src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use std::env;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `command_name`, `parse_cli`, `supports_json_output`, and `validate_cli_args`
[INFO] [stdout]    --> smart-hooks/src/main.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 185 |         use cli::{parse_cli, validate_cli_args, supports_json_output, command_name};
[INFO] [stdout]     |                   ^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsonResponse`, `create_status_json`, and `output_result`
[INFO] [stdout]    --> smart-hooks/src/main.rs:188:27
[INFO] [stdout]     |
[INFO] [stdout] 188 |         use json_output::{JsonResponse, output_result, create_status_json};
[INFO] [stdout]     |                           ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_all_commands_schema`, `get_test_command_schema`, and `validate_schema`
[INFO] [stdout]    --> smart-hooks/src/main.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |         use schema::{get_test_command_schema, get_all_commands_schema, validate_schema};
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_all_examples`, `get_command_examples`, and `get_scenario_examples`
[INFO] [stdout]    --> smart-hooks/src/main.rs:194:24
[INFO] [stdout]     |
[INFO] [stdout] 194 |         use examples::{get_command_examples, get_scenario_examples, get_all_examples};
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supports_json_output` is never used
[INFO] [stdout]    --> smart-hooks/src/cli.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn supports_json_output(_command: &Commands) -> bool {
[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 `command_name` is never used
[INFO] [stdout]    --> smart-hooks/src/cli.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn command_name(command: &Commands) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `success_with_metadata` and `error` are never used
[INFO] [stdout]   --> smart-hooks/src/json_output.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl JsonResponse {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn success_with_metadata(data: Value, metadata: Value) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn error(error_message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_error` is never used
[INFO] [stdout]   --> smart-hooks/src/json_output.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn output_error(json_output: bool, error_message: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_json` is never used
[INFO] [stdout]    --> smart-hooks/src/json_output.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn create_progress_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_files_json` is never used
[INFO] [stdout]    --> smart-hooks/src/json_output.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn format_files_json(files: &[String]) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_command_result_json` is never used
[INFO] [stdout]    --> smart-hooks/src/json_output.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn format_command_result_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_test_plan_json` is never used
[INFO] [stdout]    --> smart-hooks/src/json_output.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn format_test_plan_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_schema` is never used
[INFO] [stdout]    --> smart-hooks/src/schema.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn validate_schema(schema_str: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_available_schema_commands` is never used
[INFO] [stdout]    --> smart-hooks/src/schema.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn get_available_schema_commands() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_available_example_commands` is never used
[INFO] [stdout]   --> smart-hooks/src/examples/mod.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn get_available_example_commands() -> Vec<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_available_example_scenarios` is never used
[INFO] [stdout]    --> smart-hooks/src/examples/mod.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn get_available_example_scenarios() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_available_scenarios` is never used
[INFO] [stdout]    --> smart-hooks/src/examples/scenarios.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub fn get_available_scenarios() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_prek_version` is never used
[INFO] [stdout]   --> smart-hooks/src/prek/detection.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn get_prek_version() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_prek_feature_support` is never used
[INFO] [stdout]   --> smart-hooks/src/prek/detection.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn check_prek_feature_support(feature: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_prek_installation` is never used
[INFO] [stdout]   --> smart-hooks/src/prek/detection.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn validate_prek_installation() -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_prek_installation_info` is never used
[INFO] [stdout]   --> smart-hooks/src/prek/detection.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn get_prek_installation_info() -> serde_json::Value {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_project_structure` is never used
[INFO] [stdout]   --> smart-hooks/src/smart_analysis/project_analysis.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn analyze_project_structure(project_root: &str) -> Result<serde_json::Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_project_health` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/project_analysis.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn check_project_health(project_root: &str) -> Result<serde_json::Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_project_recommendations` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/project_analysis.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn generate_project_recommendations(has_cargo: bool, has_src: bool, has_git: bool, has_tests: bool) -> serde_json::Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_file_impact` is never used
[INFO] [stdout]   --> smart-hooks/src/smart_analysis/file_impact.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn analyze_file_impact(files: &[String]) -> Result<FileImpactAnalysis> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileImpactAnalysis` is never constructed
[INFO] [stdout]   --> smart-hooks/src/smart_analysis/file_impact.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FileImpactAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl FileImpactAnalysis {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  38 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn add_source_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn add_test_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn add_config_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn add_other_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn has_source_changes(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn has_test_changes(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn has_config_changes(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn total_files(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn get_testing_recommendations(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_risk_assessment(&self) -> RiskLevel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RiskLevel` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum RiskLevel {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_source_file` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub fn is_rust_source_file(file: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_test_file` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn is_test_file(file: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_config_file` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn is_config_file(file: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_documentation_file` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn is_documentation_file(file: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_category` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn get_file_category(file: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_by_language` is never used
[INFO] [stdout]    --> smart-hooks/src/smart_analysis/file_impact.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn analyze_by_language(files: &[String]) -> std::collections::HashMap<String, Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_capabilities_for_domain` is never used
[INFO] [stdout]   --> smart-hooks/src/system_info.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn get_capabilities_for_domain(domain: &str) -> anyhow::Result<serde_json::Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> smart-hooks/src/main.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut plan = TestPlan {
[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: function `output_error` is never used
[INFO] [stdout]   --> smart-hooks/src/json_output.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn output_error(json_output: bool, error_message: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ee18441af68916eb0d537d7bd5f5f6e5247ffb7bfde7ccd1adb2c8075a63c4d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee18441af68916eb0d537d7bd5f5f6e5247ffb7bfde7ccd1adb2c8075a63c4d3", kill_on_drop: false }`
[INFO] [stdout] ee18441af68916eb0d537d7bd5f5f6e5247ffb7bfde7ccd1adb2c8075a63c4d3
