[INFO] cloning repository https://github.com/zhaungkuo/agent [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zhaungkuo/agent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhaungkuo%2Fagent", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhaungkuo%2Fagent'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8e71549bc1201d1b6524251ab3c37e7f6f365751 [INFO] checking zhaungkuo/agent/8e71549bc1201d1b6524251ab3c37e7f6f365751 against 67854e511de21d881bb16426996cd4259d44aa2e for pr-161154 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhaungkuo%2Fagent" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/zhaungkuo/agent [INFO] finished tweaking git repo https://github.com/zhaungkuo/agent [INFO] tweaked toml for git repo https://github.com/zhaungkuo/agent written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zhaungkuo/agent on toolchain 67854e511de21d881bb16426996cd4259d44aa2e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/zhaungkuo/agent 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" "+67854e511de21d881bb16426996cd4259d44aa2e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded ego-tree v0.10.0 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded scraper v0.22.0 [INFO] [stderr] Downloaded inotify v0.11.2 [INFO] [stderr] Downloaded kqueue v1.2.0 [INFO] [stderr] Downloaded markup5ever v0.16.2 [INFO] [stderr] Downloaded html5ever v0.31.0 [INFO] [stderr] Downloaded web_atoms v0.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd [INFO] running `Command { std: "docker" "start" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd", 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" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd", 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" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Checking log v0.4.32 [INFO] [stderr] Compiling siphasher v1.0.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Checking memchr v2.8.1 [INFO] [stderr] Checking bitflags v2.13.0 [INFO] [stderr] Checking http v1.4.2 [INFO] [stderr] Compiling cc v1.2.63 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Checking mac v0.1.1 [INFO] [stderr] Compiling openssl v0.10.80 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking futf v0.1.5 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Checking dtoa v1.0.11 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Compiling match_token v0.1.0 [INFO] [stderr] Compiling rand v0.8.6 [INFO] [stderr] Checking mio v1.2.1 [INFO] [stderr] Checking tendril v0.4.3 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking rustix v1.1.4 [INFO] [stderr] Checking zerovec v0.11.6 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking getrandom v0.4.2 [INFO] [stderr] Checking servo_arc v0.4.3 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking serde_json v1.0.150 [INFO] [stderr] Checking tokio v1.52.3 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking getopts v0.2.24 [INFO] [stderr] Checking zerotrie v0.2.4 [INFO] [stderr] Checking inotify v0.11.2 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking string_cache v0.8.9 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking notify-types v2.1.0 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking symlink v0.1.0 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking tinystr v0.8.3 [INFO] [stderr] Checking potential_utf v0.1.5 [INFO] [stderr] Checking either v1.16.0 [INFO] [stderr] Checking ego-tree v0.10.0 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Checking icu_collections v2.2.0 [INFO] [stderr] Checking env_home v0.1.0 [INFO] [stderr] Checking notify v8.2.0 [INFO] [stderr] Checking chrono v0.4.45 [INFO] [stderr] Checking icu_locale_core v2.2.0 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking uuid v1.23.3 [INFO] [stderr] Checking glob v0.3.3 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Compiling markup5ever v0.14.1 [INFO] [stderr] Compiling openssl-sys v0.9.116 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking cssparser v0.34.0 [INFO] [stderr] Checking icu_provider v2.2.0 [INFO] [stderr] Checking icu_normalizer v2.2.0 [INFO] [stderr] Checking icu_properties v2.2.0 [INFO] [stderr] Checking tempfile v3.27.0 [INFO] [stderr] Checking which v7.0.3 [INFO] [stderr] Checking markup5ever v0.16.2 [INFO] [stderr] Checking html5ever v0.31.0 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking html5ever v0.29.1 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking regex v1.12.4 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking tracing-subscriber v0.3.23 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking scraper v0.22.0 [INFO] [stderr] Checking tracing-appender v0.2.5 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower-http v0.6.11 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking h2 v0.4.14 [INFO] [stderr] Checking rand v0.9.4 [INFO] [stderr] Checking tungstenite v0.26.2 [INFO] [stderr] Checking tokio-tungstenite v0.26.2 [INFO] [stderr] Checking hyper v1.10.1 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking generic_agent v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ga.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use tracing::{debug, info, warn}; [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/llmcore.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `warn` [INFO] [stdout] --> src/ga.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use tracing::{debug, info, warn}; [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/llmcore.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/llmcore.rs:379:17 [INFO] [stdout] | [INFO] [stdout] 379 | let mut content: Vec = msg.content.iter().filter_map(|block| { [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/llmcore.rs:403:17 [INFO] [stdout] | [INFO] [stdout] 403 | let mut result = serde_json::json!({ [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/llmcore.rs:379:17 [INFO] [stdout] | [INFO] [stdout] 379 | let mut content: Vec = msg.content.iter().filter_map(|block| { [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/llmcore.rs:403:17 [INFO] [stdout] | [INFO] [stdout] 403 | let mut result = serde_json::json!({ [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/agentmain.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{BufRead, Write as IoWrite}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt` [INFO] [stdout] --> src/ga.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::io::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> src/llmcore.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tool_name` [INFO] [stdout] --> src/agent_loop.rs:92:55 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some((ref mut tool_id, ref mut tool_name, ref mut tool_input)) = current_tool_call { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `task_rx` [INFO] [stdout] --> src/agentmain.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | let (task_tx, task_rx) = mpsc::channel::(100); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/agentmain.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{BufRead, Write as IoWrite}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt` [INFO] [stdout] --> src/ga.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::io::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> src/llmcore.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tool_name` [INFO] [stdout] --> src/agent_loop.rs:92:55 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some((ref mut tool_id, ref mut tool_name, ref mut tool_input)) = current_tool_call { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `task_rx` [INFO] [stdout] --> src/agentmain.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | let (task_tx, task_rx) = mpsc::channel::(100); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent` [INFO] [stdout] --> src/agentmain.rs:209:24 [INFO] [stdout] | [INFO] [stdout] 209 | async fn run_task_mode(agent: &GenericAgent, task_name: &str, input: Option<&str>) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/agentmain.rs:209:63 [INFO] [stdout] | [INFO] [stdout] 209 | async fn run_task_mode(agent: &GenericAgent, task_name: &str, input: Option<&str>) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent` [INFO] [stdout] --> src/agentmain.rs:215:27 [INFO] [stdout] | [INFO] [stdout] 215 | async fn run_reflect_mode(agent: &GenericAgent, script_path: &str) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `status_icon` [INFO] [stdout] --> src/ga.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | let status_icon = match exit_code { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_icon` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_snippet` [INFO] [stdout] --> src/ga.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | let output_snippet = smart_format( [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_snippet` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmp_path` is never read [INFO] [stdout] --> src/ga.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | let mut tmp_path: Option = None; [INFO] [stdout] | ^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 115 | tmp_path = Some(tmp_dir.join(format!("ai_{}.py", uuid::Uuid::new_v4()))); [INFO] [stdout] | -------- `tmp_path` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `program` is never read [INFO] [stdout] --> src/ga.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | let mut program = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 131 | program = std::env::var("PYTHON").unwrap_or_else(|_| "python".to_string()); [INFO] [stdout] | ------- `program` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `args` is never read [INFO] [stdout] --> src/ga.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | let mut args: Vec = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 132 | args = vec!["-X".to_string(), "utf8".to_string(), "-u".to_string()]; [INFO] [stdout] | ---- `args` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent` [INFO] [stdout] --> src/agentmain.rs:209:24 [INFO] [stdout] | [INFO] [stdout] 209 | async fn run_task_mode(agent: &GenericAgent, task_name: &str, input: Option<&str>) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/agentmain.rs:209:63 [INFO] [stdout] | [INFO] [stdout] 209 | async fn run_task_mode(agent: &GenericAgent, task_name: &str, input: Option<&str>) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `agent` [INFO] [stdout] --> src/agentmain.rs:215:27 [INFO] [stdout] | [INFO] [stdout] 215 | async fn run_reflect_mode(agent: &GenericAgent, script_path: &str) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `status_icon` [INFO] [stdout] --> src/ga.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | let status_icon = match exit_code { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_icon` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_snippet` [INFO] [stdout] --> src/ga.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | let output_snippet = smart_format( [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_snippet` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmp_path` is never read [INFO] [stdout] --> src/ga.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | let mut tmp_path: Option = None; [INFO] [stdout] | ^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 115 | tmp_path = Some(tmp_dir.join(format!("ai_{}.py", uuid::Uuid::new_v4()))); [INFO] [stdout] | -------- `tmp_path` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `program` is never read [INFO] [stdout] --> src/ga.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | let mut program = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 131 | program = std::env::var("PYTHON").unwrap_or_else(|_| "python".to_string()); [INFO] [stdout] | ------- `program` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `args` is never read [INFO] [stdout] --> src/ga.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | let mut args: Vec = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 132 | args = vec!["-X".to_string(), "utf8".to_string(), "-u".to_string()]; [INFO] [stdout] | ---- `args` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/ga.rs:380:5 [INFO] [stdout] | [INFO] [stdout] 380 | path: &Path, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/ga.rs:380:5 [INFO] [stdout] | [INFO] [stdout] 380 | path: &Path, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/llmcore.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut current_tool_id: Option = None; [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/llmcore.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut current_tool_name: Option = None; [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/llmcore.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut current_tool_input = String::new(); [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/llmcore.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut in_tool_use = false; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_id` [INFO] [stdout] --> src/llmcore.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut current_tool_id: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_name` [INFO] [stdout] --> src/llmcore.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut current_tool_name: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_input` [INFO] [stdout] --> src/llmcore.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut current_tool_input = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_tool_use` [INFO] [stdout] --> src/llmcore.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut in_tool_use = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_tool_use` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `media_type` [INFO] [stdout] --> src/llmcore.rs:328:58 [INFO] [stdout] | [INFO] [stdout] 328 | ToolResultContent::Image { data, media_type } => { [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `media_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/llmcore.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut current_tool_id: Option = None; [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/llmcore.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut current_tool_name: Option = None; [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/llmcore.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut current_tool_input = String::new(); [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/llmcore.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut in_tool_use = false; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_id` [INFO] [stdout] --> src/llmcore.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut current_tool_id: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_name` [INFO] [stdout] --> src/llmcore.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut current_tool_name: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tool_input` [INFO] [stdout] --> src/llmcore.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut current_tool_input = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tool_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_tool_use` [INFO] [stdout] --> src/llmcore.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut in_tool_use = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_tool_use` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `media_type` [INFO] [stdout] --> src/llmcore.rs:328:58 [INFO] [stdout] | [INFO] [stdout] 328 | ToolResultContent::Image { data, media_type } => { [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `media_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AgentRunner` is never constructed [INFO] [stdout] --> src/agent_loop.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct AgentRunner { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `run`, and `check_danger_warning` are never used [INFO] [stdout] --> src/agent_loop.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl AgentRunner { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(max_turns: usize, verbose: bool, yield_info: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn run( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | fn check_danger_warning(&self, turn: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_agent_runner` is never used [INFO] [stdout] --> src/agent_loop.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn create_agent_runner() -> AgentRunner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GA_LANG` is never used [INFO] [stdout] --> src/agentmain.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static GA_LANG: once_cell::sync::Lazy = [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_lang_suffix` is never used [INFO] [stdout] --> src/agentmain.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_lang_suffix() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/agentmain.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct GenericAgent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 30 | lock: parking_lot::Mutex<()>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | task_queue: mpsc::Sender, [INFO] [stdout] 32 | history: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 33 | handler: Option>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | is_running: AtomicBool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 35 | stop_sig: AtomicBool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | inc_out: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 41 | task_dir: parking_lot::Mutex>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 42 | log_path: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `abort` and `run` are never used [INFO] [stdout] --> src/agentmain.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl GenericAgent { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn abort(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `query`, `source`, and `output` are never read [INFO] [stdout] --> src/agentmain.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct Task { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 150 | pub query: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 151 | pub source: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 152 | pub output: mpsc::Sender, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `turn` and `source` are never read [INFO] [stdout] --> src/agentmain.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 155 | pub struct TaskOutput { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 158 | pub turn: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 159 | pub source: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `smart_format_output` is never used [INFO] [stdout] --> src/agentmain.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn smart_format_output(data: &str, max_str_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `consume_file` is never used [INFO] [stdout] --> src/agentmain.rs:280:4 [INFO] [stdout] | [INFO] [stdout] 280 | fn consume_file(dir: &Path, filename: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `READ_DIRS` is never used [INFO] [stdout] --> src/ga.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | static READ_DIRS: Lazy>> = Lazy::new(|| RwLock::new(HashSet::new())); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `smart_format` is never used [INFO] [stdout] --> src/ga.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn smart_format(data: &str, max_str_len: usize, omit_str: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_error` is never used [INFO] [stdout] --> src/ga.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn format_error(e: &dyn std::error::Error) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_file_refs` is never used [INFO] [stdout] --> src/ga.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn expand_file_refs(text: &str, base_dir: Option<&Path>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CodeRunResult` is never constructed [INFO] [stdout] --> src/ga.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub struct CodeRunResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `code_run` is never used [INFO] [stdout] --> src/ga.rs:93:14 [INFO] [stdout] | [INFO] [stdout] 93 | pub async fn code_run( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_patch` is never used [INFO] [stdout] --> src/ga.rs:286:8 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn file_patch(path: &Path, old_content: &str, new_content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_read` is never used [INFO] [stdout] --> src/ga.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn file_read( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_file_lines` is never used [INFO] [stdout] --> src/ga.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn format_file_lines( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_write` is never used [INFO] [stdout] --> src/ga.rs:435:8 [INFO] [stdout] | [INFO] [stdout] 435 | pub fn file_write(path: &Path, content: &str, mode: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebScanResult` is never constructed [INFO] [stdout] --> src/ga.rs:480:12 [INFO] [stdout] | [INFO] [stdout] 480 | pub struct WebScanResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TabInfo` is never constructed [INFO] [stdout] --> src/ga.rs:486:12 [INFO] [stdout] | [INFO] [stdout] 486 | pub struct TabInfo { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_html_content` is never used [INFO] [stdout] --> src/ga.rs:493:8 [INFO] [stdout] | [INFO] [stdout] 493 | pub fn extract_html_content(html: &str, max_chars: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `parent`, `working`, `cwd`, `current_turn`, `history_info`, and `code_stop_signal` are never read [INFO] [stdout] --> src/ga.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 519 | pub struct GenericAgentHandler { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 520 | parent: Option>>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 521 | working: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 522 | cwd: PathBuf, [INFO] [stdout] | ^^^ [INFO] [stdout] 523 | current_turn: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 524 | history_info: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 525 | code_stop_signal: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ga.rs:529:12 [INFO] [stdout] | [INFO] [stdout] 528 | impl GenericAgentHandler { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 529 | pub fn new(cwd: Option<&Path>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 542 | pub fn with_parent(&mut self, parent: Arc>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn set_stop_signal(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | fn get_abs_path(&self, path: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 557 | fn get_anchor_prompt(&self, skip: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 600 | fn fold_earlier(&self, lines: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | fn in_plan_mode(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | fn exit_plan_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_any` is never used [INFO] [stdout] --> src/ga.rs:768:8 [INFO] [stdout] | [INFO] [stdout] 767 | pub trait AnyHandler: Send + Sync { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 768 | fn as_any(&self) -> &(dyn Send + Sync + std::any::Any); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client`, `config`, and `message_id_counter` are never read [INFO] [stdout] --> src/llmcore.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct BaseSession { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 14 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | config: LLMConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | message_id_counter: AtomicU64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `next_msg_id`, `stream_with_retry`, `parse_openai_sse`, `parse_claude_sse`, and `openai_tools_to_claude` are never used [INFO] [stdout] --> src/llmcore.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl BaseSession { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn next_msg_id(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | async fn stream_with_retry( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn parse_openai_sse(data_prefix: &str, raw: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn parse_claude_sse(data_prefix: &str, raw: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn openai_tools_to_claude(tools: &Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `model`, and `max_tokens` are never read [INFO] [stdout] --> src/llmcore.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 264 | pub struct NativeClaudeSession { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 265 | base: BaseSession, [INFO] [stdout] | ^^^^ [INFO] [stdout] 266 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 267 | max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stream_inner` and `msg_to_claude` are never used [INFO] [stdout] --> src/llmcore.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 270 | impl NativeClaudeSession { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 281 | async fn stream_inner(&self, messages: Vec, tools: Option, system: Option) -> anyhow::Result Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `model`, and `max_tokens` are never read [INFO] [stdout] --> src/llmcore.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 358 | pub struct NativeOAISession { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 359 | base: BaseSession, [INFO] [stdout] | ^^^^ [INFO] [stdout] 360 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 361 | max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stream_inner` is never used [INFO] [stdout] --> src/llmcore.rs:375:14 [INFO] [stdout] | [INFO] [stdout] 364 | impl NativeOAISession { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 375 | async fn stream_inner(&self, messages: Vec, tools: Option, system: Option) -> anyhow::Result src/llmcore.rs:450:12 [INFO] [stdout] | [INFO] [stdout] 450 | pub struct MixinSession { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/llmcore.rs:456:12 [INFO] [stdout] | [INFO] [stdout] 455 | impl MixinSession { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 456 | pub fn new(sessions: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HistoryManager` is never constructed [INFO] [stdout] --> src/llmcore.rs:509:12 [INFO] [stdout] | [INFO] [stdout] 509 | pub struct HistoryManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `compress_history_tags`, `trim_messages_history`, and `merge_same_role` are never used [INFO] [stdout] --> src/llmcore.rs:515:12 [INFO] [stdout] | [INFO] [stdout] 514 | impl HistoryManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 515 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 523 | pub fn compress_history_tags(messages: &[LLMMessage]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn trim_messages_history(&self, messages: &[LLMMessage], available_tokens: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn merge_same_role(messages: &[LLMMessage]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_call_summary` is never used [INFO] [stdout] --> src/llmcore.rs:594:4 [INFO] [stdout] | [INFO] [stdout] 594 | fn format_call_summary(name: &str, input: &Value) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `estimate_message_len` is never used [INFO] [stdout] --> src/llmcore.rs:603:4 [INFO] [stdout] | [INFO] [stdout] 603 | fn estimate_message_len(msg: &LLMMessage) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AgentEvent` is never used [INFO] [stdout] --> src/types.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum AgentEvent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ToolResultContent` is never used [INFO] [stdout] --> src/types.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum ToolResultContent { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ContentBlock` is never used [INFO] [stdout] --> src/types.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 44 | pub enum ContentBlock { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LLMMessage` is never constructed [INFO] [stdout] --> src/types.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct LLMMessage { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StepOutcome` is never constructed [INFO] [stdout] --> src/types.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub struct StepOutcome { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `text`, `tool_result`, and `exit` are never used [INFO] [stdout] --> src/types.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl StepOutcome { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 78 | pub fn text(text: String) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn tool_result(tool_use_id: String, content: ToolResultContent) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn exit(next_prompt: Option) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `tools_schema`, `handle`, `name`, `on_turn_end`, and `get_working` are never used [INFO] [stdout] --> src/types.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub trait BaseHandler: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 105 | /// Get the tools schema [INFO] [stdout] 106 | fn tools_schema(&self) -> serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn handle(&self, name: &str, input: serde_json::Value) -> anyhow::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn on_turn_end(&self, _turn: usize, _history: &[LLMMessage]) -> anyhow::Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn get_working(&self) -> &HashMap; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCallResult` is never constructed [INFO] [stdout] --> src/types.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | pub struct ToolCallResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `text` and `error` are never used [INFO] [stdout] --> src/types.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 130 | impl ToolCallResult { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 131 | pub fn text(text: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn error(text: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SSEEventType` is never used [INFO] [stdout] --> src/types.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | pub enum SSEEventType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SSEEvent` is never constructed [INFO] [stdout] --> src/types.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 161 | pub struct SSEEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `proxy`, `thinking_budget_tokens`, and `extra` are never read [INFO] [stdout] --> src/types.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 169 | pub struct LLMConfig { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 170 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub proxy: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub thinking_budget_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 181 | #[serde(default)] [INFO] [stdout] 182 | pub extra: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LLMConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `default` is never read [INFO] [stdout] --> src/types.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct MyKeyConfig { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 188 | pub default: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MyKeyConfig` 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 `AppConfig` is never constructed [INFO] [stdout] --> src/types.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct AppConfig { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_max_turns` is never used [INFO] [stdout] --> src/types.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn default_max_turns() -> usize { 40 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_max_output_tokens` is never used [INFO] [stdout] --> src/types.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn default_max_output_tokens() -> u32 { 8192 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stream` is never used [INFO] [stdout] --> src/types.rs:216:14 [INFO] [stdout] | [INFO] [stdout] 215 | pub trait LLMSession: Send + Sync { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 216 | async fn stream( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AgentRunner` is never constructed [INFO] [stdout] --> src/agent_loop.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct AgentRunner { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `run`, and `check_danger_warning` are never used [INFO] [stdout] --> src/agent_loop.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl AgentRunner { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(max_turns: usize, verbose: bool, yield_info: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn run( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | fn check_danger_warning(&self, turn: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_agent_runner` is never used [INFO] [stdout] --> src/agent_loop.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn create_agent_runner() -> AgentRunner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GA_LANG` is never used [INFO] [stdout] --> src/agentmain.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static GA_LANG: once_cell::sync::Lazy = [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_lang_suffix` is never used [INFO] [stdout] --> src/agentmain.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_lang_suffix() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/agentmain.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct GenericAgent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 30 | lock: parking_lot::Mutex<()>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | task_queue: mpsc::Sender, [INFO] [stdout] 32 | history: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 33 | handler: Option>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | is_running: AtomicBool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 35 | stop_sig: AtomicBool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | inc_out: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 41 | task_dir: parking_lot::Mutex>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 42 | log_path: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `abort` and `run` are never used [INFO] [stdout] --> src/agentmain.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl GenericAgent { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn abort(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `query`, `source`, and `output` are never read [INFO] [stdout] --> src/agentmain.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct Task { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 150 | pub query: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 151 | pub source: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 152 | pub output: mpsc::Sender, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `turn` and `source` are never read [INFO] [stdout] --> src/agentmain.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 155 | pub struct TaskOutput { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 158 | pub turn: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 159 | pub source: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `smart_format_output` is never used [INFO] [stdout] --> src/agentmain.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn smart_format_output(data: &str, max_str_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `consume_file` is never used [INFO] [stdout] --> src/agentmain.rs:280:4 [INFO] [stdout] | [INFO] [stdout] 280 | fn consume_file(dir: &Path, filename: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `READ_DIRS` is never used [INFO] [stdout] --> src/ga.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | static READ_DIRS: Lazy>> = Lazy::new(|| RwLock::new(HashSet::new())); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `smart_format` is never used [INFO] [stdout] --> src/ga.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn smart_format(data: &str, max_str_len: usize, omit_str: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_error` is never used [INFO] [stdout] --> src/ga.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn format_error(e: &dyn std::error::Error) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_file_refs` is never used [INFO] [stdout] --> src/ga.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn expand_file_refs(text: &str, base_dir: Option<&Path>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CodeRunResult` is never constructed [INFO] [stdout] --> src/ga.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub struct CodeRunResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `code_run` is never used [INFO] [stdout] --> src/ga.rs:93:14 [INFO] [stdout] | [INFO] [stdout] 93 | pub async fn code_run( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_patch` is never used [INFO] [stdout] --> src/ga.rs:286:8 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn file_patch(path: &Path, old_content: &str, new_content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_read` is never used [INFO] [stdout] --> src/ga.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn file_read( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_file_lines` is never used [INFO] [stdout] --> src/ga.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn format_file_lines( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_write` is never used [INFO] [stdout] --> src/ga.rs:435:8 [INFO] [stdout] | [INFO] [stdout] 435 | pub fn file_write(path: &Path, content: &str, mode: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebScanResult` is never constructed [INFO] [stdout] --> src/ga.rs:480:12 [INFO] [stdout] | [INFO] [stdout] 480 | pub struct WebScanResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TabInfo` is never constructed [INFO] [stdout] --> src/ga.rs:486:12 [INFO] [stdout] | [INFO] [stdout] 486 | pub struct TabInfo { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_html_content` is never used [INFO] [stdout] --> src/ga.rs:493:8 [INFO] [stdout] | [INFO] [stdout] 493 | pub fn extract_html_content(html: &str, max_chars: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `parent`, `working`, `cwd`, `current_turn`, `history_info`, and `code_stop_signal` are never read [INFO] [stdout] --> src/ga.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 519 | pub struct GenericAgentHandler { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 520 | parent: Option>>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 521 | working: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 522 | cwd: PathBuf, [INFO] [stdout] | ^^^ [INFO] [stdout] 523 | current_turn: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 524 | history_info: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 525 | code_stop_signal: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ga.rs:529:12 [INFO] [stdout] | [INFO] [stdout] 528 | impl GenericAgentHandler { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 529 | pub fn new(cwd: Option<&Path>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 542 | pub fn with_parent(&mut self, parent: Arc>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn set_stop_signal(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | fn get_abs_path(&self, path: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 557 | fn get_anchor_prompt(&self, skip: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 600 | fn fold_earlier(&self, lines: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | fn in_plan_mode(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | fn exit_plan_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_any` is never used [INFO] [stdout] --> src/ga.rs:768:8 [INFO] [stdout] | [INFO] [stdout] 767 | pub trait AnyHandler: Send + Sync { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 768 | fn as_any(&self) -> &(dyn Send + Sync + std::any::Any); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client`, `config`, and `message_id_counter` are never read [INFO] [stdout] --> src/llmcore.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct BaseSession { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 14 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | config: LLMConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | message_id_counter: AtomicU64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `next_msg_id`, `stream_with_retry`, `parse_claude_sse`, and `openai_tools_to_claude` are never used [INFO] [stdout] --> src/llmcore.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl BaseSession { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn next_msg_id(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | async fn stream_with_retry( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn parse_claude_sse(data_prefix: &str, raw: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn openai_tools_to_claude(tools: &Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `model`, and `max_tokens` are never read [INFO] [stdout] --> src/llmcore.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 264 | pub struct NativeClaudeSession { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 265 | base: BaseSession, [INFO] [stdout] | ^^^^ [INFO] [stdout] 266 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 267 | max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stream_inner` and `msg_to_claude` are never used [INFO] [stdout] --> src/llmcore.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 270 | impl NativeClaudeSession { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 281 | async fn stream_inner(&self, messages: Vec, tools: Option, system: Option) -> anyhow::Result Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `model`, and `max_tokens` are never read [INFO] [stdout] --> src/llmcore.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 358 | pub struct NativeOAISession { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 359 | base: BaseSession, [INFO] [stdout] | ^^^^ [INFO] [stdout] 360 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 361 | max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stream_inner` is never used [INFO] [stdout] --> src/llmcore.rs:375:14 [INFO] [stdout] | [INFO] [stdout] 364 | impl NativeOAISession { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 375 | async fn stream_inner(&self, messages: Vec, tools: Option, system: Option) -> anyhow::Result src/llmcore.rs:450:12 [INFO] [stdout] | [INFO] [stdout] 450 | pub struct MixinSession { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/llmcore.rs:456:12 [INFO] [stdout] | [INFO] [stdout] 455 | impl MixinSession { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 456 | pub fn new(sessions: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_messages` and `max_tokens` are never read [INFO] [stdout] --> src/llmcore.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 509 | pub struct HistoryManager { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 510 | max_messages: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 511 | max_tokens: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `trim_messages_history`, and `merge_same_role` are never used [INFO] [stdout] --> src/llmcore.rs:515:12 [INFO] [stdout] | [INFO] [stdout] 514 | impl HistoryManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 515 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn trim_messages_history(&self, messages: &[LLMMessage], available_tokens: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn merge_same_role(messages: &[LLMMessage]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `estimate_message_len` is never used [INFO] [stdout] --> src/llmcore.rs:603:4 [INFO] [stdout] | [INFO] [stdout] 603 | fn estimate_message_len(msg: &LLMMessage) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StepOutcome` is never constructed [INFO] [stdout] --> src/types.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub struct StepOutcome { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `text`, `tool_result`, and `exit` are never used [INFO] [stdout] --> src/types.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl StepOutcome { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 78 | pub fn text(text: String) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn tool_result(tool_use_id: String, content: ToolResultContent) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn exit(next_prompt: Option) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `tools_schema`, `handle`, `name`, `on_turn_end`, and `get_working` are never used [INFO] [stdout] --> src/types.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub trait BaseHandler: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 105 | /// Get the tools schema [INFO] [stdout] 106 | fn tools_schema(&self) -> serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn handle(&self, name: &str, input: serde_json::Value) -> anyhow::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn on_turn_end(&self, _turn: usize, _history: &[LLMMessage]) -> anyhow::Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn get_working(&self) -> &HashMap; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCallResult` is never constructed [INFO] [stdout] --> src/types.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | pub struct ToolCallResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `text` and `error` are never used [INFO] [stdout] --> src/types.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 130 | impl ToolCallResult { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 131 | pub fn text(text: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn error(text: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SSEEventType` is never used [INFO] [stdout] --> src/types.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | pub enum SSEEventType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SSEEvent` is never constructed [INFO] [stdout] --> src/types.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 161 | pub struct SSEEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `proxy`, `thinking_budget_tokens`, and `extra` are never read [INFO] [stdout] --> src/types.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 169 | pub struct LLMConfig { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 170 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub proxy: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub thinking_budget_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 181 | #[serde(default)] [INFO] [stdout] 182 | pub extra: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LLMConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `default` is never read [INFO] [stdout] --> src/types.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct MyKeyConfig { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 188 | pub default: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MyKeyConfig` 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 `AppConfig` is never constructed [INFO] [stdout] --> src/types.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct AppConfig { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_max_turns` is never used [INFO] [stdout] --> src/types.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn default_max_turns() -> usize { 40 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_max_output_tokens` is never used [INFO] [stdout] --> src/types.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn default_max_output_tokens() -> u32 { 8192 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stream` is never used [INFO] [stdout] --> src/types.rs:216:14 [INFO] [stdout] | [INFO] [stdout] 215 | pub trait LLMSession: Send + Sync { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 216 | async fn stream( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.95s [INFO] running `Command { std: "docker" "inspect" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd", kill_on_drop: false }` [INFO] [stdout] 37ec08c9a811ffb1e3f5f0ae2d62036ecfa77be0e301e18d03f3a8cd1d147ddd