[INFO] cloning repository https://github.com/masonbair/code_summarizer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/masonbair/code_summarizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasonbair%2Fcode_summarizer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasonbair%2Fcode_summarizer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9c60663cf165ab6f0703f10e41365801d1b8f515
[INFO] testing masonbair/code_summarizer against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasonbair%2Fcode_summarizer" "/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/masonbair/code_summarizer
[INFO] finished tweaking git repo https://github.com/masonbair/code_summarizer
[INFO] tweaked toml for git repo https://github.com/masonbair/code_summarizer written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/masonbair/code_summarizer on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/masonbair/code_summarizer 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tree-sitter-language v0.1.7
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.70
[INFO] [stderr]   Downloaded tree-sitter-go v0.23.4
[INFO] [stderr]   Downloaded tree-sitter v0.24.7
[INFO] [stderr]   Downloaded tree-sitter-python v0.23.6
[INFO] [stderr]   Downloaded openssl-sys v0.9.114
[INFO] [stderr]   Downloaded tree-sitter-rust v0.23.3
[INFO] [stderr]   Downloaded openssl v0.10.78
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb
[INFO] running `Command { std: "docker" "start" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", 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" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling openssl v0.10.78
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling slug v0.1.6
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling humansize v2.1.3
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling jiff v0.2.24
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling openssl-sys v0.9.114
[INFO] [stderr]    Compiling libz-sys v1.1.28
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling tree-sitter v0.24.7
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]    Compiling tree-sitter-go v0.23.4
[INFO] [stderr]    Compiling tree-sitter-rust v0.23.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]    Compiling chrono-tz-build v0.3.0
[INFO] [stderr]    Compiling chrono-tz v0.9.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tera v1.20.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling code-summarizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `semantic::*`
[INFO] [stdout]   --> src/analyzer/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use semantic::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_components`
[INFO] [stdout]    --> src/analyzer/structure.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         key_components: &mut Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_components`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_names`
[INFO] [stdout]    --> src/analyzer/structure.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let file_names: Vec<&str> = files.iter()
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/analyzer/semantic.rs:676:33
[INFO] [stdout]     |
[INFO] [stdout] 676 | ...                   let params = child.child_by_field_name("parameters")
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semantic_analyzer` is never read
[INFO] [stdout]   --> src/analyzer/structure.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ProjectAnalyzer {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     semantic_analyzer: Option<SemanticAnalyzer>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/code_index/client.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Symbol {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileMetadata` is never constructed
[INFO] [stdout]   --> src/code_index/client.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FileMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]   --> src/code_index/client.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct RawDependency {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     line: Option<usize>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RawDependency` 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 `file`, `direction`, and `count` are never read
[INFO] [stdout]   --> src/code_index/client.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct DependencyQueryResult {
[INFO] [stdout]    |        --------------------- fields in this struct
[INFO] [stdout] 58 |     #[serde(default)]
[INFO] [stdout] 59 |     file: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 60 |     #[serde(default)]
[INFO] [stdout] 61 |     direction: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 62 |     #[serde(default)]
[INFO] [stdout] 63 |     count: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DependencyQueryResult` 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 `HotFileInfo` is never constructed
[INFO] [stdout]   --> src/code_index/client.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct HotFileInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `query_symbol`, `query_file`, `get_hot_files`, and `is_available` are never used
[INFO] [stdout]    --> src/code_index/client.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl CodeIndexClient {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn query_symbol(&self, name: &str) -> Result<Vec<Symbol>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn query_file(&self, file_path: &Path) -> Result<Vec<Symbol>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn get_hot_files(&self, limit: usize) -> Result<Vec<FileMetadata>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> src/config.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerationConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct GenerationConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StalenessConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct StalenessConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SummarizerError` is never used
[INFO] [stdout]  --> src/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum SummarizerError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `repo_root`, `repo`, and `is_in_repo` are never used
[INFO] [stdout]   --> src/git/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GitClient {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn repo_root(&self) -> &Path {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn repo(&self) -> &Repository {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn is_in_repo(&self, path: &Path) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_directory_change_counts`, `count_files_in_tree`, and `get_last_modified_commit` are never used
[INFO] [stdout]    --> src/git/history.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl GitClient {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn get_directory_change_counts(&self, dir_path: &Path) -> Result<HashMap<String, usize>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn count_files_in_tree(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_last_modified_commit(&self, file_path: &Path) -> Result<Option<git2::Commit<'_>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `summary_time`, `latest_commit_time`, and `reason` are never read
[INFO] [stdout]   --> src/git/staleness.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct StalenessResult {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 11 |     pub is_stale: bool,
[INFO] [stdout] 12 |     pub summary_time: Option<SystemTime>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub latest_commit_time: Option<SystemTime>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub commits_since: usize,
[INFO] [stdout] 15 |     pub reason: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StalenessResult` 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 `has_changes_since` and `get_latest_commit_time` are never used
[INFO] [stdout]    --> src/git/staleness.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl GitClient {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn has_changes_since(&self, since: SystemTime) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_latest_commit_time(&self) -> Result<SystemTime> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_summary` and `model_name` are never used
[INFO] [stdout]   --> src/llm/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait LlmClient: Send + Sync {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout]  9 |     /// Generate a summary for the given code/content
[INFO] [stdout] 10 |     fn generate_summary(&self, content: &str, context: &str) -> Result<String>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn model_name(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model` is never read
[INFO] [stdout]  --> src/llm/ollama.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct OllamaClient {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     endpoint: String,
[INFO] [stdout] 9 |     model: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OllamaRequest` is never constructed
[INFO] [stdout]   --> src/llm/ollama.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct OllamaRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OllamaResponse` is never constructed
[INFO] [stdout]   --> src/llm/ollama.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct OllamaResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_url` is never used
[INFO] [stdout]   --> src/llm/ollama.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl OllamaClient {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn generate_url(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semantic_extraction` is never read
[INFO] [stdout]   --> src/summarizer/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenerationOptions {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub semantic_extraction: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationOptions` 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 `render_custom` is never used
[INFO] [stdout]    --> src/templates/renderer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl TemplateRenderer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn render_custom<T: Serialize>(&self, template_name: &str, data: &T) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s
[INFO] running `Command { std: "docker" "inspect" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.2.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling openssl v0.10.78
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling tree-sitter v0.24.7
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling tera v1.20.1
[INFO] [stderr]    Compiling code-summarizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `semantic::*`
[INFO] [stdout]   --> src/analyzer/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use semantic::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_components`
[INFO] [stdout]    --> src/analyzer/structure.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         key_components: &mut Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_components`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_names`
[INFO] [stdout]    --> src/analyzer/structure.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let file_names: Vec<&str> = files.iter()
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/analyzer/semantic.rs:676:33
[INFO] [stdout]     |
[INFO] [stdout] 676 | ...                   let params = child.child_by_field_name("parameters")
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semantic_analyzer` is never read
[INFO] [stdout]   --> src/analyzer/structure.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ProjectAnalyzer {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     semantic_analyzer: Option<SemanticAnalyzer>,
[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 `line` is never read
[INFO] [stdout]   --> src/code_index/client.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct RawDependency {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     line: Option<usize>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RawDependency` 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 `file`, `direction`, and `count` are never read
[INFO] [stdout]   --> src/code_index/client.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct DependencyQueryResult {
[INFO] [stdout]    |        --------------------- fields in this struct
[INFO] [stdout] 58 |     #[serde(default)]
[INFO] [stdout] 59 |     file: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 60 |     #[serde(default)]
[INFO] [stdout] 61 |     direction: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 62 |     #[serde(default)]
[INFO] [stdout] 63 |     count: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DependencyQueryResult` 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 `HotFileInfo` is never constructed
[INFO] [stdout]   --> src/code_index/client.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct HotFileInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `query_symbol`, `query_file`, `get_hot_files`, and `is_available` are never used
[INFO] [stdout]    --> src/code_index/client.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl CodeIndexClient {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn query_symbol(&self, name: &str) -> Result<Vec<Symbol>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn query_file(&self, file_path: &Path) -> Result<Vec<Symbol>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn get_hot_files(&self, limit: usize) -> Result<Vec<FileMetadata>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum SummarizerError {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     FileRead {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     FileWrite {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     CodeIndexQuery { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     GitNotFound { path: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     GitOperation { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     TemplateRender {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     Config { message: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     LlmRequest { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     InvalidPath { path: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     AnalysisFailed { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SummarizerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `repo` is never used
[INFO] [stdout]   --> src/git/mod.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GitClient {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn repo(&self) -> &Repository {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `latest_commit_time` is never read
[INFO] [stdout]   --> src/git/staleness.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct StalenessResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub latest_commit_time: Option<SystemTime>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StalenessResult` 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 `generate_summary` is never used
[INFO] [stdout]   --> src/llm/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait LlmClient: Send + Sync {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout]  9 |     /// Generate a summary for the given code/content
[INFO] [stdout] 10 |     fn generate_summary(&self, content: &str, context: &str) -> Result<String>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OllamaResponse` is never constructed
[INFO] [stdout]   --> src/llm/ollama.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct OllamaResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semantic_extraction` is never read
[INFO] [stdout]   --> src/summarizer/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenerationOptions {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub semantic_extraction: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 26.64s
[INFO] running `Command { std: "docker" "inspect" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `semantic::*`
[INFO] [stderr]   --> src/analyzer/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use semantic::*;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_components`
[INFO] [stderr]    --> src/analyzer/structure.rs:341:9
[INFO] [stderr]     |
[INFO] [stderr] 341 |         key_components: &mut Vec<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_components`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_names`
[INFO] [stderr]    --> src/analyzer/structure.rs:344:13
[INFO] [stderr]     |
[INFO] [stderr] 344 |         let file_names: Vec<&str> = files.iter()
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_names`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `params`
[INFO] [stderr]    --> src/analyzer/semantic.rs:676:33
[INFO] [stderr]     |
[INFO] [stderr] 676 | ...                   let params = child.child_by_field_name("parameters")
[INFO] [stderr]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stderr] 
[INFO] [stderr] warning: field `semantic_analyzer` is never read
[INFO] [stderr]   --> src/analyzer/structure.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct ProjectAnalyzer {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 62 |     semantic_analyzer: Option<SemanticAnalyzer>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `line` is never read
[INFO] [stderr]   --> src/code_index/client.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 37 | struct RawDependency {
[INFO] [stderr]    |        ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 46 |     line: Option<usize>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RawDependency` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `file`, `direction`, and `count` are never read
[INFO] [stderr]   --> src/code_index/client.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 57 | struct DependencyQueryResult {
[INFO] [stderr]    |        --------------------- fields in this struct
[INFO] [stderr] 58 |     #[serde(default)]
[INFO] [stderr] 59 |     file: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 60 |     #[serde(default)]
[INFO] [stderr] 61 |     direction: String,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 62 |     #[serde(default)]
[INFO] [stderr] 63 |     count: usize,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DependencyQueryResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HotFileInfo` is never constructed
[INFO] [stderr]   --> src/code_index/client.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | struct HotFileInfo {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `query_symbol`, `query_file`, `get_hot_files`, and `is_available` are never used
[INFO] [stderr]    --> src/code_index/client.rs:99:12
[INFO] [stderr]     |
[INFO] [stderr]  80 | impl CodeIndexClient {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  99 |     pub fn query_symbol(&self, name: &str) -> Result<Vec<Symbol>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn query_file(&self, file_path: &Path) -> Result<Vec<Symbol>> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn get_hot_files(&self, limit: usize) -> Result<Vec<FileMetadata>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 301 |     pub fn is_available(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/error.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub enum SummarizerError {
[INFO] [stderr]    |          --------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 13 |     FileRead {
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     FileWrite {
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     CodeIndexQuery { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     GitNotFound { path: String },
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     GitOperation { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     TemplateRender {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     Config { message: String },
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     LlmRequest { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     InvalidPath { path: String },
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     AnalysisFailed { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SummarizerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `repo` is never used
[INFO] [stderr]   --> src/git/mod.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl GitClient {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn repo(&self) -> &Repository {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `latest_commit_time` is never read
[INFO] [stderr]   --> src/git/staleness.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct StalenessResult {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub latest_commit_time: Option<SystemTime>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `StalenessResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `generate_summary` is never used
[INFO] [stderr]   --> src/llm/mod.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub trait LlmClient: Send + Sync {
[INFO] [stderr]    |           --------- method in this trait
[INFO] [stderr]  9 |     /// Generate a summary for the given code/content
[INFO] [stderr] 10 |     fn generate_summary(&self, content: &str, context: &str) -> Result<String>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `OllamaResponse` is never constructed
[INFO] [stderr]   --> src/llm/ollama.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | struct OllamaResponse {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `semantic_extraction` is never read
[INFO] [stderr]   --> src/summarizer/mod.rs:56:9
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct GenerationOptions {
[INFO] [stderr]    |            ----------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub semantic_extraction: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GenerationOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `code-summarizer` (bin "code-summarizer" test) generated 15 warnings (run `cargo fix --bin "code-summarizer" -p code-summarizer --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/code_summarizer-5d4c76f3275f6d11)
[INFO] [stdout] 
[INFO] [stdout] running 114 tests
[INFO] [stdout] test analyzer::dependencies::tests::test_add_node ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_add_edge ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_add_node_no_duplicates ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_dependency_graph_new ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_add_edge_no_duplicates ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_dependency_type_variants ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_detect_cycles_no_cycle ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_detect_cycles_with_cycle ... ok
[INFO] [stdout] test analyzer::dependencies::tests::test_to_ascii_contains_basic_info ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_complexity_combined ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_complexity_deps_only ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_complexity_lines_only ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_complexity_zero_inputs ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_hotness_combined ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_hotness_deps_weighted_medium ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_determine_priority_critical ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_determine_priority_low ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_enhanced_complexity ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_hotspot_ordering ... ok
[INFO] [stdout] test analyzer::semantic::tests::test_rust_function_extraction ... ok
[INFO] [stdout] test analyzer::semantic::tests::test_rust_struct_extraction ... ok
[INFO] [stdout] test analyzer::semantic::tests::test_analyzer_creation ... ok
[INFO] [stdout] test analyzer::semantic::tests::test_rust_impl_trait_extraction ... ok
[INFO] [stdout] test analyzer::semantic::tests::test_rust_trait_extraction ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_hotness_lines_weighted_lightly ... ok
[INFO] [stdout] test analyzer::structure::tests::test_detect_language_typescript ... ok
[INFO] [stdout] test analyzer::structure::tests::test_detect_language_unknown ... ok
[INFO] [stdout] test analyzer::structure::tests::test_detect_language_javascript ... ok
[INFO] [stdout] test analyzer::structure::tests::test_detect_language_rust ... ok
[INFO] [stdout] test analyzer::structure::tests::test_detect_language_python ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_hotness_changes_weighted_heavily ... ok
[INFO] [stdout] test analyzer::hotspots::tests::test_calculate_hotness_zero_inputs ... ok
[INFO] [stdout] test code_index::client::tests::test_client_creation ... ignored, requires code-index to be installed
[INFO] [stdout] test code_index::client::tests::test_parse_dep_type_import ... ok
[INFO] [stdout] test code_index::client::tests::test_file_metadata_serialization ... ok
[INFO] [stdout] test code_index::client::tests::test_parse_dep_type_require ... ok
[INFO] [stdout] test code_index::client::tests::test_parse_dep_type_unknown ... ok
[INFO] [stdout] test code_index::client::tests::test_parse_dep_type_use ... ok
[INFO] [stdout] test code_index::client::tests::test_symbol_serialization ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_default_generation_config ... ok
[INFO] [stdout] test config::tests::test_default_staleness_config ... ok
[INFO] [stdout] test error::tests::test_error_display_code_index_unavailable ... ok
[INFO] [stdout] test error::tests::test_error_display_directory_read ... ok
[INFO] [stdout] test error::tests::test_error_display_template_not_found ... ok
[INFO] [stdout] test analyzer::stats::tests::test_empty_project_stats ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_language_breakdown ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_total_files ... ok
[INFO] [stdout] test analyzer::structure::tests::test_file_info_contains_correct_data ... ok
[INFO] [stdout] test analyzer::structure::tests::test_analyze_module ... ok
[INFO] [stdout] test analyzer::structure::tests::test_language_breakdown_counts_correctly ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_largest_file ... ok
[INFO] [stdout] test analyzer::structure::tests::test_analyze_structure ... ok
[INFO] [stdout] test analyzer::structure::tests::test_should_ignore_git_directory ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_avg_file_size ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_smallest_file ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_total_lines ... ok
[INFO] [stdout] test analyzer::structure::tests::test_should_not_ignore_source_directories ... ok
[INFO] [stdout] test analyzer::stats::tests::test_calculate_stats_module_count ... ok
[INFO] [stdout] test git::staleness::tests::test_staleness_result_fields ... ok
[INFO] [stdout] test git::history::tests::test_get_directory_change_counts ... ok
[INFO] [stdout] test git::history::tests::test_get_file_change_count ... ok
[INFO] [stdout] test git::tests::test_open_non_git_directory ... ok
[INFO] [stdout] test llm::ollama::tests::test_is_available_when_running ... ignored, requires Ollama to be running
[INFO] [stdout] test git::staleness::tests::test_get_latest_commit_time ... ok
[INFO] [stdout] test git::staleness::tests::test_has_changes_since_past ... ok
[INFO] [stdout] test git::tests::test_open_git_repo ... ok
[INFO] [stdout] test git::history::tests::test_get_file_change_count_nonexistent ... ok
[INFO] [stdout] test llm::ollama::tests::test_ollama_request_serialization ... ok
[INFO] [stdout] test git::tests::test_is_in_repo ... ok
[INFO] [stdout] test git::staleness::tests::test_is_summary_stale_missing_file ... ok
[INFO] [stdout] test git::tests::test_relative_path ... ok
[INFO] [stdout] test git::tests::test_repo_root ... ok
[INFO] [stdout] test llm::tests::test_create_client_unknown_provider ... ok
[INFO] [stdout] test summarizer::tests::test_estimate_tokens ... ok
[INFO] [stdout] test git::history::tests::test_get_file_change_count_outside_repo ... ok
[INFO] [stdout] test git::staleness::tests::test_has_changes_since_future ... ok
[INFO] [stdout] test git::staleness::tests::test_is_summary_stale_fresh_summary ... ok
[INFO] [stdout] test git::history::tests::test_get_total_commits ... ok
[INFO] [stdout] test summarizer::tests::test_architecture_content_has_expected_sections ... ok
[INFO] [stdout] test templates::builtin::tests::test_architecture_template_contains_key_sections ... ok
[INFO] [stdout] test templates::builtin::tests::test_architecture_template_valid_tera ... ok
[INFO] [stdout] test templates::builtin::tests::test_dependencies_template_contains_key_sections ... ok
[INFO] [stdout] test git::history::tests::test_get_last_modified_commit ... ok
[INFO] [stdout] test templates::builtin::tests::test_hotspots_template_contains_key_sections ... ok
[INFO] [stdout] test templates::builtin::tests::test_dependencies_template_valid_tera ... ok
[INFO] [stdout] test templates::builtin::tests::test_module_template_contains_key_sections ... ok
[INFO] [stdout] test summarizer::tests::test_hotspots_content_has_formula ... ok
[INFO] [stdout] test llm::ollama::tests::test_model_name ... ok
[INFO] [stdout] test templates::builtin::tests::test_hotspots_template_valid_tera ... ok
[INFO] [stdout] test llm::ollama::tests::test_generate_url ... ok
[INFO] [stdout] test templates::builtin::tests::test_module_template_valid_tera ... ok
[INFO] [stdout] test summarizer::tests::test_generate_all ... ok
[INFO] [stdout] test llm::ollama::tests::test_ollama_client_creation ... ok
[INFO] [stdout] test llm::ollama::tests::test_is_available_wrong_endpoint ... ok
[INFO] [stdout] test summarizer::tests::test_generate_all_creates_module_maps ... ok
[INFO] [stdout] test templates::tests::test_validate_template_invalid ... ok
[INFO] [stdout] test templates::tests::test_validate_template_not_found ... ok
[INFO] [stdout] test templates::tests::test_validate_template_valid ... ok
[INFO] [stdout] test templates::renderer::tests::test_renderer_creation ... ok
[INFO] [stdout] test summarizer::tests::test_generate_module ... ok
[INFO] [stdout] test summarizer::tests::test_minimal_tier_generates_less_output ... ok
[INFO] [stdout] test llm::tests::test_create_client_ollama ... ok
[INFO] [stdout] test templates::renderer::tests::test_load_custom_template_not_found ... ok
[INFO] [stdout] test llm::ollama::tests::test_ollama_client_strips_trailing_slash ... ok
[INFO] [stdout] test llm::ollama::tests::test_tags_url ... ok
[INFO] [stdout] test templates::renderer::tests::test_render_dependencies ... ok
[INFO] [stdout] test templates::renderer::tests::test_load_custom_template ... ok
[INFO] [stdout] test templates::renderer::tests::test_render_architecture ... ok
[INFO] [stdout] test templates::renderer::tests::test_render_hotspots ... ok
[INFO] [stdout] test templates::renderer::tests::test_render_custom ... ok
[INFO] [stdout] test templates::renderer::tests::test_render_module ... ok
[INFO] [stdout] test llm::tests::test_create_client_case_insensitive ... ok
[INFO] [stdout] test git::staleness::tests::test_is_summary_stale_old_summary ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 112 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 2.53s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb", kill_on_drop: false }`
[INFO] [stdout] 76b5ada5b0fc190253634c92f9f1e41268cad07b95029792349ae456a06fb2fb
