[INFO] cloning repository https://github.com/bawa753/auto-test-ai-perp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bawa753/auto-test-ai-perp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbawa753%2Fauto-test-ai-perp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbawa753%2Fauto-test-ai-perp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90aa03315d3f1373dd7f936ad0635291f5b800a6
[INFO] checking bawa753/auto-test-ai-perp against master#3c9faa0d037b9eecda4a440cc482ff7f960fb8a5 for pr-152210
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbawa753%2Fauto-test-ai-perp" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bawa753/auto-test-ai-perp
[INFO] finished tweaking git repo https://github.com/bawa753/auto-test-ai-perp
[INFO] tweaked toml for git repo https://github.com/bawa753/auto-test-ai-perp written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bawa753/auto-test-ai-perp on toolchain 3c9faa0d037b9eecda4a440cc482ff7f960fb8a5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3c9faa0d037b9eecda4a440cc482ff7f960fb8a5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bawa753/auto-test-ai-perp 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" "+3c9faa0d037b9eecda4a440cc482ff7f960fb8a5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zmij v1.0.20
[INFO] [stderr]   Downloaded rust-ini v0.21.3
[INFO] [stderr]   Downloaded pest_derive v2.8.6
[INFO] [stderr]   Downloaded toml_parser v1.0.7+spec-1.1.0
[INFO] [stderr]   Downloaded pest_generator v2.8.6
[INFO] [stderr]   Downloaded pest_meta v2.8.6
[INFO] [stderr]   Downloaded yaml-rust2 v0.10.4
[INFO] [stderr]   Downloaded config v0.15.19
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] [stderr]   Downloaded pest v2.8.6
[INFO] [stderr]   Downloaded ron v0.12.0
[INFO] [stderr]   Downloaded rusqlite v0.33.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.31.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3c9faa0d037b9eecda4a440cc482ff7f960fb8a5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 49c7b8fea44ad93b8253fa54e0db3769afa1109dc271f765c5f926879ef16309
[INFO] running `Command { std: "docker" "start" "-a" "49c7b8fea44ad93b8253fa54e0db3769afa1109dc271f765c5f926879ef16309", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "49c7b8fea44ad93b8253fa54e0db3769afa1109dc271f765c5f926879ef16309", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49c7b8fea44ad93b8253fa54e0db3769afa1109dc271f765c5f926879ef16309", kill_on_drop: false }`
[INFO] [stdout] 49c7b8fea44ad93b8253fa54e0db3769afa1109dc271f765c5f926879ef16309
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3c9faa0d037b9eecda4a440cc482ff7f960fb8a5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59aeaee8bc8d82caa4c02977665137893631971007afb5f0e49ca35b7f2dd4da
[INFO] running `Command { std: "docker" "start" "-a" "59aeaee8bc8d82caa4c02977665137893631971007afb5f0e49ca35b7f2dd4da", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling libc v0.2.181
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling zmij v1.0.20
[INFO] [stderr]    Compiling erased-serde v0.4.9
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking toml_parser v1.0.7+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.0.4
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking iri-string v0.7.10
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking serde-untagged v0.1.9
[INFO] [stderr]     Checking clap_builder v4.5.58
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking keyring v3.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking yaml-rust2 v0.10.4
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libsqlite3-sys v0.31.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking rust-ini v0.21.3
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking clap v4.5.58
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking ron v0.12.0
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking config v0.15.19
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[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 tokio-stream v0.1.18
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking rusqlite v0.33.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking hyper v1.8.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 orchestrator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::Mutex;
[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: `fmt`
[INFO] [stdout]  --> src/main.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::{fmt, prelude::*, EnvFilter};
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::selector::SelectorEngine`
[INFO] [stdout]  --> src/agent/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::selector::SelectorEngine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/agent/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/classify.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/classify.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/plan.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/act.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/act.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/verify.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/reason.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/browser/detector.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/browser/detector.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/browser/subprocess.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FoundBrowser`
[INFO] [stdout]  --> src/browser/mod.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use detector::{BrowserDetector, FoundBrowser};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/memory/mod.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/llm/router.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::llm::{ChatMessage, ChatResponse, LlmProvider};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Terminal::<B>::set_cursor`: the method set_cursor_position indicates more clearly what about the cursor to set
[INFO] [stdout]   --> src/tui/mod.rs:56:18
[INFO] [stdout]    |
[INFO] [stdout] 56 |         terminal.set_cursor(
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::Mutex;
[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: `fmt`
[INFO] [stdout]  --> src/main.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::{fmt, prelude::*, EnvFilter};
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::selector::SelectorEngine`
[INFO] [stdout]  --> src/agent/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::selector::SelectorEngine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/agent/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/classify.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/classify.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/plan.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/agent/act.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/act.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/verify.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing`
[INFO] [stdout]  --> src/agent/reason.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/browser/detector.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/browser/detector.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/browser/subprocess.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FoundBrowser`
[INFO] [stdout]  --> src/browser/mod.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use detector::{BrowserDetector, FoundBrowser};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/memory/mod.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/llm/router.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::llm::{ChatMessage, ChatResponse, LlmProvider};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Terminal::<B>::set_cursor`: the method set_cursor_position indicates more clearly what about the cursor to set
[INFO] [stdout]   --> src/tui/mod.rs:56:18
[INFO] [stdout]    |
[INFO] [stdout] 56 |         terminal.set_cursor(
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/classify.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/plan.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/verify.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/reason.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/main.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::{fmt, prelude::*, EnvFilter};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/classify.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/plan.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/verify.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmProvider`
[INFO] [stdout]  --> src/agent/reason.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::llm::{ChatMessage, LlmClient, LlmProvider};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/main.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::{fmt, prelude::*, EnvFilter};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `memory`, and `bridge` are never read
[INFO] [stdout]    --> src/tui/mod.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct App {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] 101 |     pub config: Arc<AppConfig>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 102 |     pub memory: Arc<MemoryManager>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 103 |     pub llm: Arc<LlmClient>,
[INFO] [stdout] 104 |     pub bridge: Option<Arc<BridgeClient>>,
[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 `Theme` is never constructed
[INFO] [stdout]  --> src/tui/theme.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Theme {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `style_header` is never used
[INFO] [stdout]   --> src/tui/theme.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn style_header() -> Style {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `style_border` is never used
[INFO] [stdout]   --> src/tui/theme.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn style_border(active: bool) -> Style {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecoveryPlan` is never constructed
[INFO] [stdout]  --> src/agent/reason.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecoveryPlan {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diagnose_error` is never used
[INFO] [stdout]   --> src/agent/reason.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn diagnose_error(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitlManager` is never constructed
[INFO] [stdout]  --> src/agent/hitl.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct HitlManager {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitlRequest` is never constructed
[INFO] [stdout]  --> src/agent/hitl.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HitlRequest {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ask_user` are never used
[INFO] [stdout]   --> src/agent/hitl.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HitlManager {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(request_tx: tokio::sync::mpsc::Sender<HitlRequest>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub async fn ask_user(&self, prompt: &str) -> anyhow::Result<String> {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_chrome_macos`, `find_edge_macos`, and `find_firefox_macos` are never used
[INFO] [stdout]    --> src/browser/detector.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl BrowserDetector {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn find_chrome_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     #[cfg(not(target_os = "windows"))]
[INFO] [stdout] 104 |     fn find_edge_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     #[cfg(not(target_os = "windows"))]
[INFO] [stdout] 106 |     fn find_firefox_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcNotification` is never constructed
[INFO] [stdout]   --> src/browser/protocol.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct JsonRpcNotification {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/browser/protocol.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new(id: u64, method: &str, params: Option<Value>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `engine` and `confidence` are never read
[INFO] [stdout]   --> src/selector/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SelectorMatch {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |     pub selector: String,
[INFO] [stdout] 12 |     pub engine: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectorMatch` 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: function `match_stable` is never used
[INFO] [stdout]  --> src/selector/stable.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_stable(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_dom` is never used
[INFO] [stdout]  --> src/selector/dom.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_dom(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_vision` is never used
[INFO] [stdout]  --> src/selector/vision.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_vision(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store` is never read
[INFO] [stdout]   --> src/memory/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct MemoryManager {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     pub store: MemoryStore,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conn` is never read
[INFO] [stdout]  --> src/memory/store.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MemoryStore {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 6 |     conn: Connection,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Episode` is never constructed
[INFO] [stdout]   --> src/memory/store.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Episode {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_episode` and `get_successful_strategy` are never used
[INFO] [stdout]   --> src/memory/store.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl MemoryStore {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn record_episode(&self, episode: &Episode) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_successful_strategy(&self, domain: &str) -> Result<Option<String>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateSnapshot` is never constructed
[INFO] [stdout]  --> src/memory/snapshot.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct StateSnapshot {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_snapshot` is never used
[INFO] [stdout]   --> src/memory/snapshot.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn save_snapshot(state: &StateSnapshot) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_snapshot` is never used
[INFO] [stdout]   --> src/memory/snapshot.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn load_snapshot(data: &[u8]) -> Result<StateSnapshot> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune_old_episodes` is never used
[INFO] [stdout]  --> src/memory/retention.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn prune_old_episodes() -> Result<()> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlmRouter` is never constructed
[INFO] [stdout]  --> src/llm/router.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LlmRouter;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `route` is never used
[INFO] [stdout]  --> src/llm/router.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl LlmRouter {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 7 |     pub async fn route(_messages: Vec<ChatMessage>) -> Result<ChatResponse> {
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpRequest` is never constructed
[INFO] [stdout]  --> src/mcp/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct McpRequest {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpServer` is never constructed
[INFO] [stdout]   --> src/mcp/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct McpServer;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start` is never used
[INFO] [stdout]   --> src/mcp/mod.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl McpServer {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 16 |     pub async fn start() -> Result<()> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `security` is never read
[INFO] [stdout]  --> src/config.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AppConfig {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] 6 |     pub browser: BrowserConfig,
[INFO] [stdout] 7 |     pub security: SecurityConfig,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AppConfig` 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 `haiku_model` is never read
[INFO] [stdout]   --> src/config.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LlmConfig {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub haiku_model: String,
[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: fields `mode`, `executable`, and `endpoint` are never read
[INFO] [stdout]   --> src/config.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct BrowserConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub executable: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 23 |     pub endpoint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BrowserConfig` 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 `confirmation_level`, `allowed_domains`, `scan_sensitive_data`, and `mlock_secrets` are never read
[INFO] [stdout]   --> src/config.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SecurityConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 32 |     pub confirmation_level: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub allowed_domains: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub scan_sensitive_data: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub mlock_secrets: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityConfig` 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 `config`, `memory`, and `bridge` are never read
[INFO] [stdout]    --> src/tui/mod.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct App {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] 101 |     pub config: Arc<AppConfig>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 102 |     pub memory: Arc<MemoryManager>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 103 |     pub llm: Arc<LlmClient>,
[INFO] [stdout] 104 |     pub bridge: Option<Arc<BridgeClient>>,
[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 `Theme` is never constructed
[INFO] [stdout]  --> src/tui/theme.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Theme {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `style_header` is never used
[INFO] [stdout]   --> src/tui/theme.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn style_header() -> Style {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `style_border` is never used
[INFO] [stdout]   --> src/tui/theme.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn style_border(active: bool) -> Style {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecoveryPlan` is never constructed
[INFO] [stdout]  --> src/agent/reason.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecoveryPlan {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diagnose_error` is never used
[INFO] [stdout]   --> src/agent/reason.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn diagnose_error(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitlManager` is never constructed
[INFO] [stdout]  --> src/agent/hitl.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct HitlManager {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitlRequest` is never constructed
[INFO] [stdout]  --> src/agent/hitl.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HitlRequest {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ask_user` are never used
[INFO] [stdout]   --> src/agent/hitl.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HitlManager {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(request_tx: tokio::sync::mpsc::Sender<HitlRequest>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub async fn ask_user(&self, prompt: &str) -> anyhow::Result<String> {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_chrome_macos`, `find_edge_macos`, and `find_firefox_macos` are never used
[INFO] [stdout]    --> src/browser/detector.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl BrowserDetector {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn find_chrome_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     #[cfg(not(target_os = "windows"))]
[INFO] [stdout] 104 |     fn find_edge_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     #[cfg(not(target_os = "windows"))]
[INFO] [stdout] 106 |     fn find_firefox_macos() -> Option<FoundBrowser> { None }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcNotification` is never constructed
[INFO] [stdout]   --> src/browser/protocol.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct JsonRpcNotification {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/browser/protocol.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new(id: u64, method: &str, params: Option<Value>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `engine` and `confidence` are never read
[INFO] [stdout]   --> src/selector/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SelectorMatch {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |     pub selector: String,
[INFO] [stdout] 12 |     pub engine: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectorMatch` 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: function `match_stable` is never used
[INFO] [stdout]  --> src/selector/stable.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_stable(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_dom` is never used
[INFO] [stdout]  --> src/selector/dom.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_dom(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_vision` is never used
[INFO] [stdout]  --> src/selector/vision.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn match_vision(_query: &str, _snapshot: &Value) -> Result<Option<SelectorMatch>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store` is never read
[INFO] [stdout]   --> src/memory/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct MemoryManager {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     pub store: MemoryStore,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conn` is never read
[INFO] [stdout]  --> src/memory/store.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MemoryStore {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 6 |     conn: Connection,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Episode` is never constructed
[INFO] [stdout]   --> src/memory/store.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Episode {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_episode` and `get_successful_strategy` are never used
[INFO] [stdout]   --> src/memory/store.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl MemoryStore {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn record_episode(&self, episode: &Episode) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_successful_strategy(&self, domain: &str) -> Result<Option<String>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateSnapshot` is never constructed
[INFO] [stdout]  --> src/memory/snapshot.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct StateSnapshot {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_snapshot` is never used
[INFO] [stdout]   --> src/memory/snapshot.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn save_snapshot(state: &StateSnapshot) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_snapshot` is never used
[INFO] [stdout]   --> src/memory/snapshot.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn load_snapshot(data: &[u8]) -> Result<StateSnapshot> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune_old_episodes` is never used
[INFO] [stdout]  --> src/memory/retention.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn prune_old_episodes() -> Result<()> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlmRouter` is never constructed
[INFO] [stdout]  --> src/llm/router.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LlmRouter;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `route` is never used
[INFO] [stdout]  --> src/llm/router.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl LlmRouter {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 7 |     pub async fn route(_messages: Vec<ChatMessage>) -> Result<ChatResponse> {
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpRequest` is never constructed
[INFO] [stdout]  --> src/mcp/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct McpRequest {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpServer` is never constructed
[INFO] [stdout]   --> src/mcp/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct McpServer;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start` is never used
[INFO] [stdout]   --> src/mcp/mod.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl McpServer {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 16 |     pub async fn start() -> Result<()> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `security` is never read
[INFO] [stdout]  --> src/config.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AppConfig {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] 6 |     pub browser: BrowserConfig,
[INFO] [stdout] 7 |     pub security: SecurityConfig,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AppConfig` 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 `haiku_model` is never read
[INFO] [stdout]   --> src/config.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LlmConfig {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub haiku_model: String,
[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: fields `mode`, `executable`, and `endpoint` are never read
[INFO] [stdout]   --> src/config.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct BrowserConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub executable: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 23 |     pub endpoint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BrowserConfig` 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 `confirmation_level`, `allowed_domains`, `scan_sensitive_data`, and `mlock_secrets` are never read
[INFO] [stdout]   --> src/config.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SecurityConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 32 |     pub confirmation_level: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub allowed_domains: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub scan_sensitive_data: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub mlock_secrets: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityConfig` 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 `dev` profile [unoptimized + debuginfo] target(s) in 49.08s
[INFO] running `Command { std: "docker" "inspect" "59aeaee8bc8d82caa4c02977665137893631971007afb5f0e49ca35b7f2dd4da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59aeaee8bc8d82caa4c02977665137893631971007afb5f0e49ca35b7f2dd4da", kill_on_drop: false }`
[INFO] [stdout] 59aeaee8bc8d82caa4c02977665137893631971007afb5f0e49ca35b7f2dd4da
