[INFO] cloning repository https://github.com/adrgu372/GnomeAI-RS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/adrgu372/GnomeAI-RS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c1471f6c1d1acc699e5d97ba320120a637de2208
[INFO] checking adrgu372/GnomeAI-RS against 3d50c25bc66853bf0ad205529d0f305a1d841b5e for pr-159598
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS" "/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/adrgu372/GnomeAI-RS
[INFO] finished tweaking git repo https://github.com/adrgu372/GnomeAI-RS
[INFO] tweaked toml for git repo https://github.com/adrgu372/GnomeAI-RS written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/adrgu372/GnomeAI-RS on toolchain 3d50c25bc66853bf0ad205529d0f305a1d841b5e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/adrgu372/GnomeAI-RS 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" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.117
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.117
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.67
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.117
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.117
[INFO] [stderr]   Downloaded uuid v1.23.0
[INFO] [stderr]   Downloaded pest_derive v2.8.8
[INFO] [stderr]   Downloaded pest_generator v2.8.8
[INFO] [stderr]   Downloaded pest_meta v2.8.8
[INFO] [stderr]   Downloaded js-sys v0.3.94
[INFO] [stderr]   Downloaded seccompiler v0.5.0
[INFO] [stderr]   Downloaded landlock v0.4.5
[INFO] [stderr]   Downloaded qrcode v0.14.1
[INFO] [stderr]   Downloaded ignore v0.4.31
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded pest v2.8.8
[INFO] [stderr]   Downloaded time v0.3.54
[INFO] [stderr]   Downloaded web-sys v0.3.94
[INFO] [stderr]   Downloaded tokio v1.51.1
[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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa
[INFO] running `Command { std: "docker" "start" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa", 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" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa", 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" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]     Checking compact_str v0.9.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking line-clipping v0.3.7
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking bstr v1.13.0
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]     Checking lru v0.18.1
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking zlib-rs v0.6.6
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.7
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking time v0.3.54
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking seccompiler v0.5.0
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking zip v8.6.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking tokio v1.51.1
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking globset v0.4.19
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking ignore v0.4.31
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking landlock v0.4.5
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking ratatui-core v0.1.2
[INFO] [stderr]     Checking qrcode v0.14.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking multer v3.1.0
[INFO] [stderr]     Checking ratatui-widgets v0.3.2
[INFO] [stderr]     Checking ratatui-crossterm v0.1.2
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking ratatui-macros v0.7.2
[INFO] [stderr]     Checking ratatui v0.30.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking gnomef-rs v1.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/bin/../tooling.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/bin/../tooling.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/bin/../tooling.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge_patch` is never used
[INFO] [stdout]    --> src/bin/../config.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl AppConfig {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn merge_patch(&mut self, patch: &Value) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entries` is never read
[INFO] [stdout]   --> src/bin/../firecrawl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FirecrawlBundle {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 21 |     pub entries: Vec<FirecrawlEntry>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FirecrawlBundle` 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 `build_release_answer` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn build_release_answer(query: &str, entries: &[FirecrawlEntry]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version_sort_key` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn version_sort_key(version: &str) -> Vec<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_calls` is never read
[INFO] [stdout]   --> src/bin/../llama.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct LlamaResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     pub content: String,
[INFO] [stdout] 20 |     pub tool_calls: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LlamaResponse` 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 `capabilities` is never read
[INFO] [stdout]   --> src/bin/../llama.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ModelInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 25 |     pub id: String,
[INFO] [stdout] 26 |     pub capabilities: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelInfo` 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: type alias `TokenStream` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type TokenStream = Pin<Box<dyn Stream<Item = anyhow::Result<String>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `http`, `chat_with_tools`, `chat_stream`, and `anthropic_chat_stream` are never used
[INFO] [stdout]    --> src/bin/../llama.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl LlamaClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn http(&self) -> &reqwest::Client {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub async fn chat_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub async fn chat_stream(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     async fn anthropic_chat_stream(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_response` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:575:4
[INFO] [stdout]     |
[INFO] [stdout] 575 | fn stream_tokens_from_response(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_line` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:603:4
[INFO] [stdout]     |
[INFO] [stdout] 603 | fn stream_tokens_from_line(line: &str) -> anyhow::Result<Vec<String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_tokens` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:870:4
[INFO] [stdout]     |
[INFO] [stdout] 870 | fn stream_anthropic_tokens(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_stream_tokens` is never used
[INFO] [stdout]     --> src/bin/../llama.rs:1064:8
[INFO] [stdout]      |
[INFO] [stdout] 1064 | pub fn extract_stream_tokens(payload: &Value) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `priority` is never used
[INFO] [stdout]   --> src/bin/../memory.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MemoryCategory {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn priority(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_recent_summary` is never used
[INFO] [stdout]    --> src/bin/../memory.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn score_recent_summary(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_terms` is never used
[INFO] [stdout]    --> src/bin/../memory.rs:406:8
[INFO] [stdout]     |
[INFO] [stdout] 406 | pub fn combined_terms(query: &str, history: &[ChatMessage]) -> HashSet<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `forget_conversation`, `recent_conversation_rows`, `touch_facts`, and `working_memory_block` are never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:944:12
[INFO] [stdout]      |
[INFO] [stdout]  528 | impl MemoryEngine {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  944 |     pub fn forget_conversation(&self, chat_id: &str) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  978 |     fn recent_conversation_rows(&self) -> Result<Vec<RecentConversationSummary>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  999 |     fn touch_facts(&self, ids: &[String]) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     pub async fn working_memory_block(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hybrid_score` is never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:2321:4
[INFO] [stdout]      |
[INFO] [stdout] 2321 | fn hybrid_score(
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_memory_block` is never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:2370:4
[INFO] [stdout]      |
[INFO] [stdout] 2370 | fn format_memory_block(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `truncated` is never read
[INFO] [stdout]    --> src/bin/../sandbox.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ExecOutput {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub truncated: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_sandboxed` is never used
[INFO] [stdout]    --> src/bin/../sandbox.rs:195:14
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub async fn spawn_sandboxed(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workspace_dir`, `config_file`, `whatsapp_bridge_file`, `whatsapp_log_file`, `workflow_file`, and `index_file` are never read
[INFO] [stdout]   --> src/bin/../storage.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub workspace_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub config_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub whatsapp_bridge_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub whatsapp_log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub workflow_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub index_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppPaths` 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 `write_private` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn write_private(path: &Path, data: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatListItem` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_file_path` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn chat_file_path(paths: &AppPaths, cid: &str) -> anyhow::Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_chat_id` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub fn validate_chat_id(cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn new_chat(paths: &AppPaths) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn save_chat(paths: &AppPaths, chat: &Chat) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn delete_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_context` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 383 | pub fn build_context(history: &[ChatMessage], window: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:430:8
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `effects` is never read
[INFO] [stdout]   --> src/bin/../tooling.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ToolDefinition {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 45 |     pub spec: ToolSpec,
[INFO] [stdout] 46 |     pub effects: Vec<ToolEffect>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolDefinition` 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 `composer_multiline` is never read
[INFO] [stdout]    --> src/bin/../tui.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 327 |     composer_multiline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprints` is never used
[INFO] [stdout]   --> src/bin/../verify.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn fingerprints(diags: &[Diagnostic]) -> HashSet<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:371:14
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub async fn verify(root: &Path, policy: &SandboxPolicy) -> Result<VerifyReport> {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub enum Outcome {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]    --> src/bin/../verify.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct Loop {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/bin/../verify.rs:472:18
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Loop {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 471 |     /// Establish the baseline. Call once, before the first patch is applied.
[INFO] [stdout] 472 |     pub async fn new(root: &Path, policy: &SandboxPolicy, max_rounds: usize) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn step(
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge_patch` is never used
[INFO] [stdout]    --> src/bin/../config.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl AppConfig {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn merge_patch(&mut self, patch: &Value) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entries` is never read
[INFO] [stdout]   --> src/bin/../firecrawl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FirecrawlBundle {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 21 |     pub entries: Vec<FirecrawlEntry>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FirecrawlBundle` 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 `build_release_answer` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn build_release_answer(query: &str, entries: &[FirecrawlEntry]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version_sort_key` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn version_sort_key(version: &str) -> Vec<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_calls` is never read
[INFO] [stdout]   --> src/bin/../llama.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct LlamaResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     pub content: String,
[INFO] [stdout] 20 |     pub tool_calls: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LlamaResponse` 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 `capabilities` is never read
[INFO] [stdout]   --> src/bin/../llama.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ModelInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 25 |     pub id: String,
[INFO] [stdout] 26 |     pub capabilities: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelInfo` 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: type alias `TokenStream` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type TokenStream = Pin<Box<dyn Stream<Item = anyhow::Result<String>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `http`, `chat_with_tools`, `chat_stream`, and `anthropic_chat_stream` are never used
[INFO] [stdout]    --> src/bin/../llama.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl LlamaClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn http(&self) -> &reqwest::Client {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub async fn chat_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub async fn chat_stream(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     async fn anthropic_chat_stream(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_response` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:575:4
[INFO] [stdout]     |
[INFO] [stdout] 575 | fn stream_tokens_from_response(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_line` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:603:4
[INFO] [stdout]     |
[INFO] [stdout] 603 | fn stream_tokens_from_line(line: &str) -> anyhow::Result<Vec<String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_tokens` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:870:4
[INFO] [stdout]     |
[INFO] [stdout] 870 | fn stream_anthropic_tokens(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_stream_tokens` is never used
[INFO] [stdout]     --> src/bin/../llama.rs:1064:8
[INFO] [stdout]      |
[INFO] [stdout] 1064 | pub fn extract_stream_tokens(payload: &Value) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `priority` is never used
[INFO] [stdout]   --> src/bin/../memory.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MemoryCategory {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn priority(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_recent_summary` is never used
[INFO] [stdout]    --> src/bin/../memory.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn score_recent_summary(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_terms` is never used
[INFO] [stdout]    --> src/bin/../memory.rs:406:8
[INFO] [stdout]     |
[INFO] [stdout] 406 | pub fn combined_terms(query: &str, history: &[ChatMessage]) -> HashSet<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `forget_conversation`, `recent_conversation_rows`, `touch_facts`, and `working_memory_block` are never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:944:12
[INFO] [stdout]      |
[INFO] [stdout]  528 | impl MemoryEngine {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  944 |     pub fn forget_conversation(&self, chat_id: &str) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  978 |     fn recent_conversation_rows(&self) -> Result<Vec<RecentConversationSummary>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  999 |     fn touch_facts(&self, ids: &[String]) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     pub async fn working_memory_block(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hybrid_score` is never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:2321:4
[INFO] [stdout]      |
[INFO] [stdout] 2321 | fn hybrid_score(
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_memory_block` is never used
[INFO] [stdout]     --> src/bin/../memory_engine.rs:2370:4
[INFO] [stdout]      |
[INFO] [stdout] 2370 | fn format_memory_block(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `truncated` is never read
[INFO] [stdout]    --> src/bin/../sandbox.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ExecOutput {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub truncated: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_sandboxed` is never used
[INFO] [stdout]    --> src/bin/../sandbox.rs:195:14
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub async fn spawn_sandboxed(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workspace_dir`, `config_file`, `whatsapp_bridge_file`, `whatsapp_log_file`, `workflow_file`, and `index_file` are never read
[INFO] [stdout]   --> src/bin/../storage.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub workspace_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub config_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub whatsapp_bridge_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub whatsapp_log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub workflow_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub index_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppPaths` 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 `write_private` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn write_private(path: &Path, data: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatListItem` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_file_path` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn chat_file_path(paths: &AppPaths, cid: &str) -> anyhow::Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_chat_id` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub fn validate_chat_id(cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn new_chat(paths: &AppPaths) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn save_chat(paths: &AppPaths, chat: &Chat) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn delete_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_context` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 383 | pub fn build_context(history: &[ChatMessage], window: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:430:8
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `effects` is never read
[INFO] [stdout]   --> src/bin/../tooling.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ToolDefinition {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 45 |     pub spec: ToolSpec,
[INFO] [stdout] 46 |     pub effects: Vec<ToolEffect>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolDefinition` 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 `composer_multiline` is never read
[INFO] [stdout]    --> src/bin/../tui.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 327 |     composer_multiline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprints` is never used
[INFO] [stdout]   --> src/bin/../verify.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn fingerprints(diags: &[Diagnostic]) -> HashSet<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:371:14
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub async fn verify(root: &Path, policy: &SandboxPolicy) -> Result<VerifyReport> {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub enum Outcome {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]    --> src/bin/../verify.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct Loop {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/bin/../verify.rs:472:18
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Loop {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 471 |     /// Establish the baseline. Call once, before the first patch is applied.
[INFO] [stdout] 472 |     pub async fn new(root: &Path, policy: &SandboxPolicy, max_rounds: usize) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn step(
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSTREAM_VERSION` is never used
[INFO] [stdout]   --> src/codex_app_server.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const UPSTREAM_VERSION: &str = "0.145.0";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSTREAM_COMMIT` is never used
[INFO] [stdout]   --> src/codex_app_server.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const UPSTREAM_COMMIT: &str = "25af12f7e61572b0bc18ddb1008be543b91519b0";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodexAppServer` is never constructed
[INFO] [stdout]   --> src/codex_app_server.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct CodexAppServer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/codex_app_server.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl CodexAppServer {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:215:14
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt_app_server` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:262:10
[INFO] [stdout]     |
[INFO] [stdout] 262 | async fn login_with_chatgpt_app_server() -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppServerSession` is never constructed
[INFO] [stdout]    --> src/codex_app_server.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | struct AppServerSession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codex_app_server.rs:334:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | impl AppServerSession {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 334 |     async fn spawn() -> Result<Self> {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     async fn request(&mut self, id: i64, method: &str, params: Value) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     async fn send_request(&mut self, id: i64, method: &str, params: Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     async fn send_value(&mut self, value: &Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     async fn wait_for_response(&mut self, id: i64) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     async fn next_message(&mut self) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     async fn read_message(&mut self) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |     async fn stderr_diagnostics(&self) -> String {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     async fn reject_server_request(&mut self, request: &Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     async fn stop(&mut self) {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_stderr` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:522:4
[INFO] [stdout]     |
[INFO] [stdout] 522 | fn capture_stderr(stderr: ChildStderr, tail: Arc<Mutex<VecDeque<String>>>) -> JoinHandle<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_codex_home` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn prepare_codex_home() -> Result<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_codex_home` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:553:4
[INFO] [stdout]     |
[INFO] [stdout] 553 | fn ensure_codex_home(path: &Path) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_server_request` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn is_server_request(message: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_name` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:598:4
[INFO] [stdout]     |
[INFO] [stdout] 598 | fn sandbox_name(mode: SandboxMode) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `codex_prompt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:606:4
[INFO] [stdout]     |
[INFO] [stdout] 606 | fn codex_prompt(messages: &[Message]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `codex_executable` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn codex_executable() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bundled_candidates` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:661:4
[INFO] [stdout]     |
[INFO] [stdout] 661 | fn bundled_candidates(current_exe: &Path) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_standalone_app_server` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:675:4
[INFO] [stdout]     |
[INFO] [stdout] 675 | fn is_standalone_app_server(executable: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeCredential` is never constructed
[INFO] [stdout]   --> src/privilege.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PrivilegeCredential {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeBroker` is never constructed
[INFO] [stdout]   --> src/privilege.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct PrivilegeBroker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ensure_authenticated`, and `wait_for_reply` are never used
[INFO] [stdout]    --> src/privilege.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PrivilegeBroker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  33 |     pub fn new(events: mpsc::Sender<Event>, replies: mpsc::Receiver<PrivilegeCredential>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub async fn ensure_authenticated(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     async fn wait_for_reply(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/protocol.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum Op {
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionSummary` is never constructed
[INFO] [stdout]    --> src/protocol.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct SessionSummary {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryTurn` is never constructed
[INFO] [stdout]    --> src/protocol.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct HistoryTurn {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Decision` is never used
[INFO] [stdout]    --> src/protocol.rs:222:10
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub enum Decision {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]    --> src/protocol.rs:235:10
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub enum Event {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolSpec` is never constructed
[INFO] [stdout]   --> src/provider.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ToolSpec {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCall` is never constructed
[INFO] [stdout]   --> src/provider.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ToolCall {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]   --> src/provider.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum Message {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_url_from_part` is never used
[INFO] [stdout]   --> src/provider.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn image_url_from_part(part: &Value) -> Option<&str> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `openai_user_content` is never used
[INFO] [stdout]   --> src/provider.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn openai_user_content(content: &str) -> Option<Value> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_content_for_display` is never used
[INFO] [stdout]    --> src/provider.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn user_content_for_display(content: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delegated_host_context` is never used
[INFO] [stdout]    --> src/provider.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub(crate) fn delegated_host_context(messages: &[Message]) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StopReason` is never used
[INFO] [stdout]    --> src/provider.rs:185:10
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub enum StopReason {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usage` is never constructed
[INFO] [stdout]    --> src/provider.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct Usage {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Delta` is never used
[INFO] [stdout]    --> src/provider.rs:199:10
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub enum Delta {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]    --> src/provider.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct Request {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Provider` is never used
[INFO] [stdout]    --> src/provider.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub trait Provider: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAiCompatible` is never constructed
[INFO] [stdout]    --> src/provider.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub struct OpenAiCompatible {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `named`, `body`, and `send_request` are never used
[INFO] [stdout]    --> src/provider.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl OpenAiCompatible {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 250 |     pub fn named(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn body(&self, req: &Request) -> Value {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     async fn send_request(&self, url: &str, body: &Value) -> Result<reqwest::Response> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_message` is never used
[INFO] [stdout]    --> src/provider.rs:318:4
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn encode_message(m: &Message) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_has_images` is never used
[INFO] [stdout]    --> src/provider.rs:433:4
[INFO] [stdout]     |
[INFO] [stdout] 433 | fn request_has_images(req: &Request) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Anthropic` is never constructed
[INFO] [stdout]    --> src/provider.rs:446:12
[INFO] [stdout]     |
[INFO] [stdout] 446 | pub struct Anthropic {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `body` are never used
[INFO] [stdout]    --> src/provider.rs:454:12
[INFO] [stdout]     |
[INFO] [stdout] 453 | impl Anthropic {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 454 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn body(&self, req: &Request) -> Value {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_anthropic_messages` is never used
[INFO] [stdout]    --> src/provider.rs:545:4
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn encode_anthropic_messages(messages: &[Message]) -> Vec<Value> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_anthropic_sse` is never used
[INFO] [stdout]    --> src/provider.rs:638:4
[INFO] [stdout]     |
[INFO] [stdout] 638 | fn parse_anthropic_sse(resp: reqwest::Response) -> impl futures_util::Stream<Item = Result<Delta>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CliFlavor` is never used
[INFO] [stdout]    --> src/provider.rs:764:10
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub enum CliFlavor {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CliProvider` is never constructed
[INFO] [stdout]    --> src/provider.rs:768:12
[INFO] [stdout]     |
[INFO] [stdout] 768 | pub struct CliProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/provider.rs:776:12
[INFO] [stdout]     |
[INFO] [stdout] 775 | impl CliProvider {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 776 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_command` is never used
[INFO] [stdout]    --> src/provider.rs:848:4
[INFO] [stdout]     |
[INFO] [stdout] 848 | fn cli_command(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `claude_executable` is never used
[INFO] [stdout]    --> src/provider.rs:883:8
[INFO] [stdout]     |
[INFO] [stdout] 883 | pub fn claude_executable() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `executable_in_path` is never used
[INFO] [stdout]    --> src/provider.rs:901:4
[INFO] [stdout]     |
[INFO] [stdout] 901 | fn executable_in_path(name: &str) -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `claude_user_candidates` is never used
[INFO] [stdout]    --> src/provider.rs:909:4
[INFO] [stdout]     |
[INFO] [stdout] 909 | fn claude_user_candidates(home: Option<&Path>, npm_prefix: Option<&Path>) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_claude` is never used
[INFO] [stdout]    --> src/provider.rs:932:14
[INFO] [stdout]     |
[INFO] [stdout] 932 | pub async fn login_with_claude() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_prompt` is never used
[INFO] [stdout]    --> src/provider.rs:965:4
[INFO] [stdout]     |
[INFO] [stdout] 965 | fn cli_prompt(messages: &[Message]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_install_hint` is never used
[INFO] [stdout]     --> src/provider.rs:1006:4
[INFO] [stdout]      |
[INFO] [stdout] 1006 | fn cli_install_hint(flavor: CliFlavor, program: &Path) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sse` is never used
[INFO] [stdout]     --> src/provider.rs:1020:4
[INFO] [stdout]      |
[INFO] [stdout] 1020 | fn parse_sse(resp: reqwest::Response) -> impl futures_util::Stream<Item = Result<Delta>> {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frame_boundary` is never used
[INFO] [stdout]     --> src/provider.rs:1150:4
[INFO] [stdout]      |
[INFO] [stdout] 1150 | fn frame_boundary(buffer: &str) -> Option<(usize, usize)> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `salvage_tool_calls` is never used
[INFO] [stdout]     --> src/provider.rs:1164:4
[INFO] [stdout]      |
[INFO] [stdout] 1164 | fn salvage_tool_calls(text: &str) -> Vec<ToolCall> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `legacy` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:283:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | impl ProviderSelection {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn legacy(base_url: String, api_key: Option<String>, model: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_provider` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn build_provider(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `catalog_prompt` is never used
[INFO] [stdout]    --> src/skills.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `id` is never used
[INFO] [stdout]   --> src/transcribe.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait TranscriptionProvider: Send + Sync {
[INFO] [stdout]    |           --------------------- method in this trait
[INFO] [stdout] 29 |     /// Identity for diagnostics, e.g. `openai:whisper-1`.
[INFO] [stdout] 30 |     fn id(&self) -> String;
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:761:14
[INFO] [stdout]     |
[INFO] [stdout] 761 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entries` is never read
[INFO] [stdout]   --> src/bin/../firecrawl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FirecrawlBundle {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 21 |     pub entries: Vec<FirecrawlEntry>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FirecrawlBundle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_release_answer` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn build_release_answer(query: &str, entries: &[FirecrawlEntry]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version_sort_key` is never used
[INFO] [stdout]    --> src/bin/../firecrawl.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn version_sort_key(version: &str) -> Vec<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_calls` is never read
[INFO] [stdout]   --> src/bin/../llama.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct LlamaResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     pub content: String,
[INFO] [stdout] 20 |     pub tool_calls: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LlamaResponse` 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: type alias `TokenStream` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type TokenStream = Pin<Box<dyn Stream<Item = anyhow::Result<String>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `http`, `chat_with_tools`, `chat_stream`, and `anthropic_chat_stream` are never used
[INFO] [stdout]    --> src/bin/../llama.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl LlamaClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn http(&self) -> &reqwest::Client {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub async fn chat_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub async fn chat_stream(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     async fn anthropic_chat_stream(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_response` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:575:4
[INFO] [stdout]     |
[INFO] [stdout] 575 | fn stream_tokens_from_response(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_tokens` is never used
[INFO] [stdout]    --> src/bin/../llama.rs:870:4
[INFO] [stdout]     |
[INFO] [stdout] 870 | fn stream_anthropic_tokens(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forget_conversation` is never used
[INFO] [stdout]    --> src/bin/../memory_engine.rs:944:12
[INFO] [stdout]     |
[INFO] [stdout] 528 | impl MemoryEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 944 |     pub fn forget_conversation(&self, chat_id: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `truncated` is never read
[INFO] [stdout]    --> src/bin/../sandbox.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ExecOutput {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub truncated: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_sandboxed` is never used
[INFO] [stdout]    --> src/bin/../sandbox.rs:195:14
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub async fn spawn_sandboxed(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workspace_dir`, `config_file`, `whatsapp_bridge_file`, `whatsapp_log_file`, and `workflow_file` are never read
[INFO] [stdout]   --> src/bin/../storage.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub workspace_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub config_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub whatsapp_bridge_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub whatsapp_log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub workflow_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppPaths` 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 `ChatListItem` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:430:8
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `effects` is never read
[INFO] [stdout]   --> src/bin/../tooling.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ToolDefinition {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 45 |     pub spec: ToolSpec,
[INFO] [stdout] 46 |     pub effects: Vec<ToolEffect>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolDefinition` 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 `composer_multiline` is never read
[INFO] [stdout]    --> src/bin/../tui.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 327 |     composer_multiline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprints` is never used
[INFO] [stdout]   --> src/bin/../verify.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn fingerprints(diags: &[Diagnostic]) -> HashSet<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:371:14
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub async fn verify(root: &Path, policy: &SandboxPolicy) -> Result<VerifyReport> {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]    --> src/bin/../verify.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub enum Outcome {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]    --> src/bin/../verify.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct Loop {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/bin/../verify.rs:472:18
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Loop {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 471 |     /// Establish the baseline. Call once, before the first patch is applied.
[INFO] [stdout] 472 |     pub async fn new(root: &Path, policy: &SandboxPolicy, max_rounds: usize) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn step(
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodexAppServer` is never constructed
[INFO] [stdout]   --> src/codex_app_server.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct CodexAppServer {
[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 function `new` is never used
[INFO] [stdout]   --> src/codex_app_server.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl CodexAppServer {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:215:14
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt_app_server` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:262:10
[INFO] [stdout]     |
[INFO] [stdout] 262 | async fn login_with_chatgpt_app_server() -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppServerSession` is never constructed
[INFO] [stdout]    --> src/codex_app_server.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | struct AppServerSession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codex_app_server.rs:334:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | impl AppServerSession {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 334 |     async fn spawn() -> Result<Self> {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     async fn request(&mut self, id: i64, method: &str, params: Value) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     async fn send_request(&mut self, id: i64, method: &str, params: Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     async fn send_value(&mut self, value: &Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     async fn wait_for_response(&mut self, id: i64) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     async fn next_message(&mut self) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     async fn read_message(&mut self) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |     async fn stderr_diagnostics(&self) -> String {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     async fn reject_server_request(&mut self, request: &Value) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     async fn stop(&mut self) {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_stderr` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:522:4
[INFO] [stdout]     |
[INFO] [stdout] 522 | fn capture_stderr(stderr: ChildStderr, tail: Arc<Mutex<VecDeque<String>>>) -> JoinHandle<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_codex_home` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn prepare_codex_home() -> Result<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_server_request` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn is_server_request(message: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_name` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:598:4
[INFO] [stdout]     |
[INFO] [stdout] 598 | fn sandbox_name(mode: SandboxMode) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `codex_executable` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn codex_executable() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeCredential` is never constructed
[INFO] [stdout]   --> src/privilege.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PrivilegeCredential {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeBroker` is never constructed
[INFO] [stdout]   --> src/privilege.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct PrivilegeBroker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ensure_authenticated`, and `wait_for_reply` are never used
[INFO] [stdout]    --> src/privilege.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PrivilegeBroker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  33 |     pub fn new(events: mpsc::Sender<Event>, replies: mpsc::Receiver<PrivilegeCredential>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub async fn ensure_authenticated(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     async fn wait_for_reply(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancelled` is never constructed
[INFO] [stdout]    --> src/provider.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub enum StopReason {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 189 |     Cancelled,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StopReason` 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 `0` is never read
[INFO] [stdout]    --> src/provider.rs:201:15
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Reasoning(String),
[INFO] [stdout]     |     --------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Delta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Reasoning(String),
[INFO] [stdout] 201 +     Reasoning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `delegates_execution` are never used
[INFO] [stdout]    --> src/provider.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub trait Provider: Send + Sync {
[INFO] [stdout]     |           -------- methods in this trait
[INFO] [stdout] 220 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn delegates_execution(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub struct OpenAiCompatible {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 235 |     client: reqwest::Client,
[INFO] [stdout] 236 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:448:5
[INFO] [stdout]     |
[INFO] [stdout] 446 | pub struct Anthropic {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 447 |     client: reqwest::Client,
[INFO] [stdout] 448 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CliProvider` is never constructed
[INFO] [stdout]    --> src/provider.rs:768:12
[INFO] [stdout]     |
[INFO] [stdout] 768 | pub struct CliProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/provider.rs:776:12
[INFO] [stdout]     |
[INFO] [stdout] 775 | impl CliProvider {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 776 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_claude` is never used
[INFO] [stdout]    --> src/provider.rs:932:14
[INFO] [stdout]     |
[INFO] [stdout] 932 | pub async fn login_with_claude() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_prompt` is never used
[INFO] [stdout]    --> src/provider.rs:965:4
[INFO] [stdout]     |
[INFO] [stdout] 965 | fn cli_prompt(messages: &[Message]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_install_hint` is never used
[INFO] [stdout]     --> src/provider.rs:1006:4
[INFO] [stdout]      |
[INFO] [stdout] 1006 | fn cli_install_hint(flavor: CliFlavor, program: &Path) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `legacy` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:283:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | impl ProviderSelection {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn legacy(base_url: String, api_key: Option<String>, model: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_provider` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn build_provider(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `catalog_prompt` is never used
[INFO] [stdout]    --> src/skills.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:761:14
[INFO] [stdout]     |
[INFO] [stdout] 761 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa", kill_on_drop: false }`
[INFO] [stdout] 5f30d6fc9b15223dbd59178b6e30999feb9b56f9d8c62b7f9e269adf5a8747aa
