[INFO] cloning repository https://github.com/gyb0211/shadow
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gyb0211/shadow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgyb0211%2Fshadow", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgyb0211%2Fshadow'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b5aef3e9e7f7ca5fdb82b33ef6006cb7b4a9e4eb
[INFO] checking gyb0211/shadow against da86f4d0726be475afbbffe40cb2f65741c51ad3 for pr-159877
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgyb0211%2Fshadow" "/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/gyb0211/shadow
[INFO] finished tweaking git repo https://github.com/gyb0211/shadow
[INFO] tweaked toml for git repo https://github.com/gyb0211/shadow written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gyb0211/shadow on toolchain da86f4d0726be475afbbffe40cb2f65741c51ad3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+da86f4d0726be475afbbffe40cb2f65741c51ad3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gyb0211/shadow 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" "+da86f4d0726be475afbbffe40cb2f65741c51ad3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded referencing v0.46.9
[INFO] [stderr]   Downloaded jsonschema-regex v0.46.9
[INFO] [stderr]   Downloaded shellexpand v3.1.2
[INFO] [stderr]   Downloaded jsonschema v0.46.9
[INFO] [stderr]   Downloaded num-bigint v0.4.7
[INFO] [stderr]   Downloaded cron v0.15.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d
[INFO] running `Command { std: "docker" "start" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d", 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" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d" "/opt/rustwide/cargo-home/bin/cargo" "+da86f4d0726be475afbbffe40cb2f65741c51ad3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d", 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" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d" "/opt/rustwide/cargo-home/bin/cargo" "+da86f4d0726be475afbbffe40cb2f65741c51ad3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking bytes v1.12.0
[INFO] [stderr]    Compiling aws-lc-rs v1.17.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking borrow-or-share v0.2.4
[INFO] [stderr]    Compiling unicode-general-category v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]     Checking micromap v0.3.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking vsimd v0.8.0
[INFO] [stderr]     Checking webpki-roots v1.0.8
[INFO] [stderr]     Checking rustls-native-certs v0.8.4
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking outref v0.5.2
[INFO] [stderr]     Checking jsonschema-regex v0.46.9
[INFO] [stderr]     Checking bytecount v0.6.9
[INFO] [stderr]     Checking num-cmp v0.1.0
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]    Compiling aws-lc-sys v0.42.0
[INFO] [stderr]     Checking uuid v1.23.4
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking uuid-simd v0.8.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking shellexpand v3.1.2
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking num-bigint v0.4.7
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking phf_shared v0.12.1
[INFO] [stderr]    Compiling prometheus v0.14.0
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking phf v0.12.1
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking fraction v0.15.4
[INFO] [stderr]     Checking fancy-regex v0.18.0
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking fluent-uri v0.4.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking referencing v0.46.9
[INFO] [stderr]     Checking cron v0.15.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking rusqlite v0.37.0
[INFO] [stderr]     Checking h2 v0.4.15
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-platform-verifier v0.7.0
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking reqwest v0.13.4
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking jsonschema v0.46.9
[INFO] [stderr]     Checking shadow-core v0.1.0 (/opt/rustwide/workdir/crates/shadow-core)
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/channel.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/attribution.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/memory.rs:5:48
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/shadow-core/src/kennel/provider.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/shadow-core/src/kennel/provider.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/channel.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/attribution.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/memory.rs:5:48
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/shadow-core/src/kennel/provider.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/shadow-core/src/kennel/provider.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Role`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kennel::attribution::{Attributable, Role};
[INFO] [stdout]   |                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/shadow-core/src/kennel/tool.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow-log v0.1.0 (/opt/rustwide/workdir/crates/shadow-log)
[INFO] [stderr]     Checking shadow-channels v0.1.0 (/opt/rustwide/workdir/crates/shadow-channels)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> crates/shadow-log/src/broadcast.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let (tx,rx) = broadcast::channel((65536));
[INFO] [stdout]    |                                      ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -     let (tx,rx) = broadcast::channel((65536));
[INFO] [stdout] 44 +     let (tx,rx) = broadcast::channel(65536);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/shadow-log/src/layer.rs:444:20
[INFO] [stdout]     |
[INFO] [stdout] 444 |             return;;
[INFO] [stdout]     |                    ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Registry`
[INFO] [stdout]  --> crates/shadow-log/src/subscriber.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing_subscriber::{EnvFilter, Layer, Registry, fmt};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> crates/shadow-log/src/broadcast.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let (tx,rx) = broadcast::channel((65536));
[INFO] [stdout]    |                                      ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -     let (tx,rx) = broadcast::channel((65536));
[INFO] [stdout] 44 +     let (tx,rx) = broadcast::channel(65536);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> crates/shadow-log/src/layer.rs:444:20
[INFO] [stdout]     |
[INFO] [stdout] 444 |             return;;
[INFO] [stdout]     |                    ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Registry`
[INFO] [stdout]  --> crates/shadow-log/src/subscriber.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing_subscriber::{EnvFilter, Layer, Registry, fmt};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolIoCapture` is never constructed
[INFO] [stdout]  --> crates/shadow-log/src/tool_io.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ToolIoCapture {
[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 `empty` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ToolIoCapture {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 11 |     fn empty() -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_tool_input` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn capture_tool_input(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_tool_output` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn capture_tool_output(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_with_policy` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn capture_with_policy(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_llm_request` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn capture_llm_request(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncated_to_cap` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn truncated_to_cap(redacted: &str, cap: usize) -> ToolIoCapture {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/shadow-log/src/writer.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | /         fs::create_dir_all(parent)
[INFO] [stdout] 186 | |             .with_context(|| format!("creating log directory {}", parent.display()));
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let _ = fs::create_dir_all(parent)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolIoCapture` is never constructed
[INFO] [stdout]  --> crates/shadow-log/src/tool_io.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ToolIoCapture {
[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 `empty` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ToolIoCapture {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 11 |     fn empty() -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_tool_input` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn capture_tool_input(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_tool_output` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn capture_tool_output(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_with_policy` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn capture_with_policy(policy: &ResolvedPolicy, tool: &str, redacted: &str) -> Option<ToolIoCapture> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_llm_request` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn capture_llm_request(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncated_to_cap` is never used
[INFO] [stdout]   --> crates/shadow-log/src/tool_io.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn truncated_to_cap(redacted: &str, cap: usize) -> ToolIoCapture {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/shadow-log/src/writer.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | /         fs::create_dir_all(parent)
[INFO] [stdout] 186 | |             .with_context(|| format!("creating log directory {}", parent.display()));
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let _ = fs::create_dir_all(parent)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow-config v0.1.0 (/opt/rustwide/workdir/crates/shadow-config)
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 93 | define_provider_ref!(ModelProviderRef, "providers.models");
[INFO] [stdout]    | ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 94 | define_provider_ref!(RiskProfileRef, "risk_profiles");
[INFO] [stdout]    | ----------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 95 | define_provider_ref!(RuntimeProfileRef, "runtime_profiles");
[INFO] [stdout]    | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::multi::alias_agent::MemoryBackendKind`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::multi::alias_agent::MemoryBackendKind;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::poll_fn`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::future::poll_fn;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/shadow-config/src/multi/alias_agent.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | define_provider_ref!(AgentAlias, "agents");
[INFO] [stdout]    | ------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeProfileConfig`
[INFO] [stdout]  --> crates/shadow-config/src/multi/alias_agent.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::schema::{ResolvedRuntime, RuntimeProfileConfig};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]  --> crates/shadow-config/src/autonomy.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> crates/shadow-config/src/policy.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::{Display, Formatter};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Child`
[INFO] [stdout]  --> crates/shadow-config/src/policy.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Child;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::split`
[INFO] [stdout]   --> crates/shadow-config/src/policy.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::io::split;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/shadow-config/src/lib.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `model_provider::*`
[INFO] [stdout]   --> crates/shadow-config/src/lib.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use model_provider::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 93 | define_provider_ref!(ModelProviderRef, "providers.models");
[INFO] [stdout]    | ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 94 | define_provider_ref!(RiskProfileRef, "risk_profiles");
[INFO] [stdout]    | ----------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout] ...
[INFO] [stdout] 95 | define_provider_ref!(RuntimeProfileRef, "runtime_profiles");
[INFO] [stdout]    | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::multi::alias_agent::MemoryBackendKind`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::multi::alias_agent::MemoryBackendKind;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::poll_fn`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::future::poll_fn;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/providers.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/shadow-config/src/multi/alias_agent.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | define_provider_ref!(AgentAlias, "agents");
[INFO] [stdout]    | ------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `define_provider_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeProfileConfig`
[INFO] [stdout]  --> crates/shadow-config/src/multi/alias_agent.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::schema::{ResolvedRuntime, RuntimeProfileConfig};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]  --> crates/shadow-config/src/autonomy.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `schema-export`
[INFO] [stdout]   --> crates/shadow-config/src/autonomy.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[cfg_attr(feature = "schema-export", derive(schemars::JsonSchema))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `schema-export` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> crates/shadow-config/src/policy.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::{Display, Formatter};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Child`
[INFO] [stdout]  --> crates/shadow-config/src/policy.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Child;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::split`
[INFO] [stdout]   --> crates/shadow-config/src/policy.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::io::split;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/shadow-config/src/lib.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `model_provider::*`
[INFO] [stdout]   --> crates/shadow-config/src/lib.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use model_provider::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shadow_home`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let shadow_home = home.join(".shadow");
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shadow_home`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_shadow_dir`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     default_shadow_dir: &PathBuf,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_shadow_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `custom_config_dir`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |     if let Ok(custom_config_dir) = std::env::var("SHADOW_CONFIG_DIR") {}
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_custom_config_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shadow_home`
[INFO] [stdout]   --> crates/shadow-config/src/schema.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let shadow_home = home.join(".shadow");
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shadow_home`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_shadow_dir`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     default_shadow_dir: &PathBuf,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_shadow_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `custom_config_dir`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |     if let Ok(custom_config_dir) = std::env::var("SHADOW_CONFIG_DIR") {}
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_custom_config_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let mut resolved = ResolvedRuntime {
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |         if let Some(profile) = runtime_profile_cfg {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution_source`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:367:49
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let (shadow_dir, _legacy_workspace_dir, resolution_source) =
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_profile`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:395:25
[INFO] [stdout]     |
[INFO] [stdout] 395 |             if let Some(default_profile) = config.risk_profiles.get_mut("default") {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let mut resolved = ResolvedRuntime {
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |         if let Some(profile) = runtime_profile_cfg {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution_source`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:367:49
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let (shadow_dir, _legacy_workspace_dir, resolution_source) =
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_profile`
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:395:25
[INFO] [stdout]     |
[INFO] [stdout] 395 |             if let Some(default_profile) = config.risk_profiles.get_mut("default") {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `service_key`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:49
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:68
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn_timeout_secs`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:82
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn_timeout_secs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `service_key`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:49
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:68
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn_timeout_secs`
[INFO] [stdout]  --> crates/shadow-config/src/proxy_client.rs:3:82
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn build_runtime_proxy_client_with_timeouts(service_key: &str, timeout: u64, conn_timeout_secs: u64) -> Client{
[INFO] [stdout]   |                                                                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn_timeout_secs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-config/src/policy.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut actions = self.actions.lock();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-config/src/policy.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut actions = self.actions.lock();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_owned`
[INFO] [stdout]     --> crates/shadow-config/src/policy.rs:1195:17
[INFO] [stdout]      |
[INFO] [stdout] 1195 |             let base_owned = command_basename(base_raw).to_ascii_lowercase();
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_owned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_owned`
[INFO] [stdout]     --> crates/shadow-config/src/policy.rs:1195:17
[INFO] [stdout]      |
[INFO] [stdout] 1195 |             let base_owned = command_basename(base_raw).to_ascii_lowercase();
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_owned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reliable` is never read
[INFO] [stdout]    --> crates/shadow-config/src/providers.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         struct Helper {
[INFO] [stdout]     |                ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 300 |             reliable: ReliableConfig,
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EnvConfigDir`, `EnvDataDir`, and `EnvWorkspaceLegacy` are never constructed
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | enum ConfigResolutionSource {
[INFO] [stdout]     |      ---------------------- variants in this enum
[INFO] [stdout] 147 |     EnvConfigDir,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 148 |     EnvDataDir,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 149 |     EnvWorkspaceLegacy,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigResolutionSource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:155:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl ConfigResolutionSource {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 155 |     const fn as_str(self) -> &'static str {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_optional_email_skip_empty` is never used
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:784:4
[INFO] [stdout]     |
[INFO] [stdout] 784 | fn deserialize_optional_email_skip_empty<'de, D>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_false` is never used
[INFO] [stdout]   --> crates/shadow-config/src/multi/alias_agent.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn default_false()->bool{false}
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reliable` is never read
[INFO] [stdout]    --> crates/shadow-config/src/providers.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         struct Helper {
[INFO] [stdout]     |                ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 300 |             reliable: ReliableConfig,
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EnvConfigDir`, `EnvDataDir`, and `EnvWorkspaceLegacy` are never constructed
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | enum ConfigResolutionSource {
[INFO] [stdout]     |      ---------------------- variants in this enum
[INFO] [stdout] 147 |     EnvConfigDir,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 148 |     EnvDataDir,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 149 |     EnvWorkspaceLegacy,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigResolutionSource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:155:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl ConfigResolutionSource {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 155 |     const fn as_str(self) -> &'static str {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_optional_email_skip_empty` is never used
[INFO] [stdout]    --> crates/shadow-config/src/schema.rs:784:4
[INFO] [stdout]     |
[INFO] [stdout] 784 | fn deserialize_optional_email_skip_empty<'de, D>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_false` is never used
[INFO] [stdout]   --> crates/shadow-config/src/multi/alias_agent.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn default_false()->bool{false}
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow-providers v0.1.0 (/opt/rustwide/workdir/crates/shadow-providers)
[INFO] [stderr]     Checking shadow-memory v0.1.0 (/opt/rustwide/workdir/crates/shadow-memory)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Response`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use reqwest::{Client, Error, RequestBuilder, Response};
[INFO] [stdout]   |                       ^^^^^                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatResponse`, `StreamChunk`, and `TokenUsage`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:14:43
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Attributable, AuthStyle, ChatMessage, ChatResponse, ModelProvider, ModelProviderKind,
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 15 |     ProviderKind, Role, StreamChunk, TokenUsage,
[INFO] [stdout]    |                         ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatMessage`, `ChatRequest`, `ChatResponse`, `ModelInfo`, `ProviderCapabilities`, `StreamChunk`, `StreamEvent`, `StreamOptions`, `ToolSpec`, and `ToolsPayload`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...e, ChatMessage, ChatRequest, ChatResponse, ModelInfo, ModelProvider, ProviderCapabilities, Role, StreamChunk, StreamEvent, StreamOptions, ToolSpec, ToolsPayload};
[INFO] [stdout]   |       ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^        ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::BoxStream`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use futures::stream::BoxStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Response`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use reqwest::{Client, Error, RequestBuilder, Response};
[INFO] [stdout]   |                       ^^^^^                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatResponse`, `StreamChunk`, and `TokenUsage`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:14:43
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Attributable, AuthStyle, ChatMessage, ChatResponse, ModelProvider, ModelProviderKind,
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 15 |     ProviderKind, Role, StreamChunk, TokenUsage,
[INFO] [stdout]    |                         ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatMessage`, `ChatRequest`, `ChatResponse`, `ModelInfo`, `ProviderCapabilities`, `StreamChunk`, `StreamEvent`, `StreamOptions`, `ToolSpec`, and `ToolsPayload`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...e, ChatMessage, ChatRequest, ChatResponse, ModelInfo, ModelProvider, ProviderCapabilities, Role, StreamChunk, StreamEvent, StreamOptions, ToolSpec, ToolsPayload};
[INFO] [stdout]   |       ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^        ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::BoxStream`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use futures::stream::BoxStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/shadow-providers/src/reliable.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 | use serde::{Deserialize, Serialize};
[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: `resolve_provider`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | use shadow_config::{resolve_provider, Config};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 | use serde::{Deserialize, Serialize};
[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: `resolve_provider`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | use shadow_config::{resolve_provider, Config};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> crates/shadow-providers/src/catalog.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |     if let Some(p) = prefix {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-providers/src/factory.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     mut p: OpenAiCompatibleModelProvider,
[INFO] [stdout]    |     ----^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]   --> crates/shadow-providers/src/factory.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     opts: &ModelProviderRuntimeOptions,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_agent`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         user_agent: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:184:67
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let intermediate = messages.iter().enumerate().find_map(|(idx, msg)| {
[INFO] [stdout]     |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `role`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:224:27
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn to_message_content(role: &String, content: &String, merge: bool) -> MessageContent {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_role`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `merge`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:224:60
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn to_message_content(role: &String, content: &String, merge: bool) -> MessageContent {
[INFO] [stdout]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_merge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:228:38
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn effective_merge_system(&self, model:&str) -> bool {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> crates/shadow-providers/src/openai.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> crates/shadow-providers/src/catalog.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |     if let Some(p) = prefix {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-providers/src/factory.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     mut p: OpenAiCompatibleModelProvider,
[INFO] [stdout]    |     ----^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]   --> crates/shadow-providers/src/factory.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     opts: &ModelProviderRuntimeOptions,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_agent`
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         user_agent: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:184:67
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let intermediate = messages.iter().enumerate().find_map(|(idx, msg)| {
[INFO] [stdout]     |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `role`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:224:27
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn to_message_content(role: &String, content: &String, merge: bool) -> MessageContent {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_role`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `merge`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:224:60
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn to_message_content(role: &String, content: &String, merge: bool) -> MessageContent {
[INFO] [stdout]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_merge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:228:38
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn effective_merge_system(&self, model:&str) -> bool {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     if let Some(idx) = raw_name.find(":") {}
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_model`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     default_model: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     config: &Config,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]   --> crates/shadow-providers/src/models_dev.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct ModelEntry{
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     cost: Option<ModelCost>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelEntry` has a derived impl for the trait `Debug`, but this is 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: fields `input`, `output`, and `cache_read` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/models_dev.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct ModelCost{
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 24 |     #[serde(default)]
[INFO] [stdout] 25 |     input: Option<f64>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 26 |     #[serde(default)]
[INFO] [stdout] 27 |     output: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     #[serde(default)]
[INFO] [stdout] 29 |     cache_read: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelCost` 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: variant `Parts` is never constructed
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MessageContent {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 28 |     Text(String),
[INFO] [stdout] 29 |     Parts(Vec<MessagePart>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageContent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text` and `ImageUrl` are never constructed
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum MessagePart {
[INFO] [stdout]    |      ----------- variants in this enum
[INFO] [stdout] 35 |     Text { text: String },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 36 |     ImageUrl { image_url: ImageUrlPart },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessagePart` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supports_vision` is never read
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct OpenAiCompatibleModelProvider {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     supports_vision: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usage` is never read
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:511:5
[INFO] [stdout]     |
[INFO] [stdout] 509 | struct ApiResponse {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 510 |     choices: Vec<Choice>,
[INFO] [stdout] 511 |     usage: ApiUsage,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `effective_content_options` is never used
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 528 | impl ResponseMessage {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 537 |     fn effective_content_options(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prompt_tokens`, `completion_tokens`, and `total_tokens` are never read
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:652:5
[INFO] [stdout]     |
[INFO] [stdout] 651 | struct ApiUsage {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 652 |     prompt_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 653 |     completion_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 654 |     total_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelsResponse` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | struct ModelsResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiModel` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:663:8
[INFO] [stdout]     |
[INFO] [stdout] 663 | struct ApiModel {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamToolCallAccumulator` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:671:8
[INFO] [stdout]     |
[INFO] [stdout] 671 | struct StreamToolCallAccumulator {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamToolCallDelta` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:679:8
[INFO] [stdout]     |
[INFO] [stdout] 679 | struct StreamToolCallDelta {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamFunctionDelta` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | struct StreamFunctionDelta {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `display_name` and `cooldown_key` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/reliable.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ReliableModelProviderEntry {
[INFO] [stdout]    |            -------------------------- fields in this struct
[INFO] [stdout] 12 |     display_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     cooldown_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_retries`, `base_backoff_ms`, `api_keys`, `key_index`, `model_fallbacks`, and `rate_limit_cooldowns` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/reliable.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ReliableModelProvider {
[INFO] [stdout]    |            --------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     max_retries: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     base_backoff_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     api_keys: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 37 |     key_index: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 38 |     model_fallbacks: HashMap<String, Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     rate_limit_cooldowns: Mutex<HashMap<String, Instant>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:209:20
[INFO] [stdout]     |
[INFO] [stdout] 209 |         for msg in intermediate {
[INFO] [stdout]     |                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 209 -         for msg in intermediate {
[INFO] [stdout] 209 +         while let Some(msg) = intermediate {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 209 -         for msg in intermediate {
[INFO] [stdout] 209 +         if let Some(msg) = intermediate {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     if let Some(idx) = raw_name.find(":") {}
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_model`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     default_model: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> crates/shadow-providers/src/lib.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     config: &Config,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:276:28
[INFO] [stdout]     |
[INFO] [stdout] 276 |     async fn forget(&self, key: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:282:38
[INFO] [stdout]     |
[INFO] [stdout] 282 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:282:49
[INFO] [stdout]     |
[INFO] [stdout] 282 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         agent_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]   --> crates/shadow-providers/src/models_dev.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct ModelEntry{
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     cost: Option<ModelCost>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelEntry` has a derived impl for the trait `Debug`, but this is 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: fields `input`, `output`, and `cache_read` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/models_dev.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct ModelCost{
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 24 |     #[serde(default)]
[INFO] [stdout] 25 |     input: Option<f64>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 26 |     #[serde(default)]
[INFO] [stdout] 27 |     output: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     #[serde(default)]
[INFO] [stdout] 29 |     cache_read: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelCost` 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: variant `Parts` is never constructed
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MessageContent {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 28 |     Text(String),
[INFO] [stdout] 29 |     Parts(Vec<MessagePart>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageContent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text` and `ImageUrl` are never constructed
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum MessagePart {
[INFO] [stdout]    |      ----------- variants in this enum
[INFO] [stdout] 35 |     Text { text: String },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 36 |     ImageUrl { image_url: ImageUrlPart },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessagePart` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supports_vision` is never read
[INFO] [stdout]   --> crates/shadow-providers/src/openai.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct OpenAiCompatibleModelProvider {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     supports_vision: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usage` is never read
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:511:5
[INFO] [stdout]     |
[INFO] [stdout] 509 | struct ApiResponse {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 510 |     choices: Vec<Choice>,
[INFO] [stdout] 511 |     usage: ApiUsage,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `effective_content_options` is never used
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 528 | impl ResponseMessage {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 537 |     fn effective_content_options(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prompt_tokens`, `completion_tokens`, and `total_tokens` are never read
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:652:5
[INFO] [stdout]     |
[INFO] [stdout] 651 | struct ApiUsage {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 652 |     prompt_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 653 |     completion_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 654 |     total_tokens: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelsResponse` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | struct ModelsResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiModel` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:663:8
[INFO] [stdout]     |
[INFO] [stdout] 663 | struct ApiModel {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamToolCallAccumulator` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:671:8
[INFO] [stdout]     |
[INFO] [stdout] 671 | struct StreamToolCallAccumulator {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamToolCallDelta` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:679:8
[INFO] [stdout]     |
[INFO] [stdout] 679 | struct StreamToolCallDelta {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamFunctionDelta` is never constructed
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | struct StreamFunctionDelta {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `display_name` and `cooldown_key` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/reliable.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ReliableModelProviderEntry {
[INFO] [stdout]    |            -------------------------- fields in this struct
[INFO] [stdout] 12 |     display_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     cooldown_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_retries`, `base_backoff_ms`, `api_keys`, `key_index`, `model_fallbacks`, and `rate_limit_cooldowns` are never read
[INFO] [stdout]   --> crates/shadow-providers/src/reliable.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ReliableModelProvider {
[INFO] [stdout]    |            --------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     max_retries: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     base_backoff_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     api_keys: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 37 |     key_index: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 38 |     model_fallbacks: HashMap<String, Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     rate_limit_cooldowns: Mutex<HashMap<String, Instant>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_agent_ids`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |         allowed_agent_ids: &[&str],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_agent_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |         category: MemoryCategory,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         key: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         content: &str,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> crates/shadow-providers/src/openai.rs:209:20
[INFO] [stdout]     |
[INFO] [stdout] 209 |         for msg in intermediate {
[INFO] [stdout]     |                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 209 -         for msg in intermediate {
[INFO] [stdout] 209 +         while let Some(msg) = intermediate {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 209 -         for msg in intermediate {
[INFO] [stdout] 209 +         if let Some(msg) = intermediate {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         limit: usize,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `since`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         since: Option<&str>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `until`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         until: Option<&str>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_until`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         query: &str,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |     async fn get(&self, key: &str) -> Result<Option<MemoryEntry>> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         category: Option<&MemoryCategory>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:71:28
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn forget(&self, key: &str) -> Result<bool> {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:75:38
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         category: MemoryCategory,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         agent_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         key: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         content: &str,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         limit: usize,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `since`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         since: Option<&str>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `until`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         until: Option<&str>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_until`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_agent_ids`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         allowed_agent_ids: &[&str],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_agent_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |         query: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> crates/shadow-memory/src/agent_scoped_markdown.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 Err(err) => {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/agent_scoped_markdown.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         agent_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow-tools v0.1.0 (/opt/rustwide/workdir/crates/shadow-tools)
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:276:28
[INFO] [stdout]     |
[INFO] [stdout] 276 |     async fn forget(&self, key: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:282:38
[INFO] [stdout]     |
[INFO] [stdout] 282 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:282:49
[INFO] [stdout]     |
[INFO] [stdout] 282 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> anyhow::Result<bool> {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         agent_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cached`
[INFO] [stdout]    --> crates/shadow-memory/src/sqlite/store.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let cached = tokio::task::spawn_blocking(move || -> anyhow::Result<Option<Vec<f32>>> {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_agent_ids`
[INFO] [stdout]    --> crates/shadow-memory/src/markdown.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |         allowed_agent_ids: &[&str],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_agent_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |         category: MemoryCategory,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         key: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         content: &str,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         limit: usize,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `since`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         since: Option<&str>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `until`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         until: Option<&str>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_until`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         query: &str,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |     async fn get(&self, key: &str) -> Result<Option<MemoryEntry>> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         category: Option<&MemoryCategory>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:71:28
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn forget(&self, key: &str) -> Result<bool> {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:75:38
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn forget_for_agent(&self, key: &str, agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         category: MemoryCategory,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         session_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         agent_id: Option<&str>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         key: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> crates/shadow-memory/src/none.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         content: &str,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         limit: usize,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         session_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `since`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         since: Option<&str>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `until`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         until: Option<&str>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_until`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_agent_ids`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         allowed_agent_ids: &[&str],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_agent_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> crates/shadow-memory/src/none.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |         query: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> crates/shadow-memory/src/agent_scoped_markdown.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 Err(err) => {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_id`
[INFO] [stdout]    --> crates/shadow-memory/src/agent_scoped_markdown.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         agent_id: Option<&str>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cached`
[INFO] [stdout]    --> crates/shadow-memory/src/sqlite/store.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let cached = tokio::task::spawn_blocking(move || -> anyhow::Result<Option<Vec<f32>>> {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `concrete_provider`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let Some(concrete_provider) = concrete_provider else {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_concrete_provider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backend_kind`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let backend_kind = classify_memory_backend(&backend_name);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backend_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown_context`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     unknown_context: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unknown_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ResolvedEmbeddingConfig` is more private than the item `resolve_embedding_config`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:243:1
[INFO] [stdout]     |
[INFO] [stdout] 243 | / pub fn resolve_embedding_config(
[INFO] [stdout] 244 | |     config: &MemoryConfig,
[INFO] [stdout] 245 | |     embedding_routes: &[EmbeddingRouteConfig],
[INFO] [stdout] 246 | |     api_key: Option<&str>,
[INFO] [stdout] 247 | |     providers: Option<&ModelProviders>,
[INFO] [stdout] 248 | | ) -> ResolvedEmbeddingConfig {
[INFO] [stdout]     | |____________________________^ function `resolve_embedding_config` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ResolvedEmbeddingConfig` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | struct ResolvedEmbeddingConfig {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `alias` is never read
[INFO] [stdout]   --> crates/shadow-memory/src/sqlite/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct SqliteMemory {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 45 |     alias: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `embedder_dimensions` is never used
[INFO] [stdout]    --> crates/shadow-memory/src/sqlite/recall.rs:183:19
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl SqliteMemory {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub(super) fn embedder_dimensions(&self) -> usize {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `concrete_provider`
[INFO] [stdout]   --> crates/shadow-memory/src/lib.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let Some(concrete_provider) = concrete_provider else {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_concrete_provider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backend_kind`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let backend_kind = classify_memory_backend(&backend_name);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backend_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown_context`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     unknown_context: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unknown_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ResolvedEmbeddingConfig` is more private than the item `resolve_embedding_config`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:243:1
[INFO] [stdout]     |
[INFO] [stdout] 243 | / pub fn resolve_embedding_config(
[INFO] [stdout] 244 | |     config: &MemoryConfig,
[INFO] [stdout] 245 | |     embedding_routes: &[EmbeddingRouteConfig],
[INFO] [stdout] 246 | |     api_key: Option<&str>,
[INFO] [stdout] 247 | |     providers: Option<&ModelProviders>,
[INFO] [stdout] 248 | | ) -> ResolvedEmbeddingConfig {
[INFO] [stdout]     | |____________________________^ function `resolve_embedding_config` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ResolvedEmbeddingConfig` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> crates/shadow-memory/src/lib.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | struct ResolvedEmbeddingConfig {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `alias` is never read
[INFO] [stdout]   --> crates/shadow-memory/src/sqlite/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct SqliteMemory {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 45 |     alias: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `embedder_dimensions` is never used
[INFO] [stdout]    --> crates/shadow-memory/src/sqlite/recall.rs:183:19
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl SqliteMemory {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub(super) fn embedder_dimensions(&self) -> usize {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow-runtime v0.1.0 (/opt/rustwide/workdir/crates/shadow-runtime)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 | use anyhow::{bail, Context, Result};
[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: `parking_lot::Mutex`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use parking_lot::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection` and `params`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rusqlite::{Connection, params};
[INFO] [stdout]    |                ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 | use serde_json::{Error, Value};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::Action`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use shadow_log::Action;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 | #[cfg(not(all(feature = "sandbox-landlock", target_os = "linux")))]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:210:11
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[cfg(all(feature = "sandbox-landlock", target_os = "linux"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::security::seatbelt::SeatbeltSandbox`
[INFO] [stdout]  --> crates/shadow-runtime/src/security/detect.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::security::seatbelt::SeatbeltSandbox;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_config::RuntimeKind`
[INFO] [stdout]  --> crates/shadow-runtime/src/security/detect.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shadow_config::RuntimeKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:53:23
[INFO] [stdout]    |
[INFO] [stdout] 53 |             #[cfg(all(feature = "sandbox-landlock", target_os = "linux"))]
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |             #[cfg(not(all(feature = "sandbox-landlock", target_os = "linux")))]
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 feature = "sandbox-bubblewrap",
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 feature = "sandbox-bubblewrap",
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |         #[cfg(feature = "sandbox-landlock")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:165:19
[INFO] [stdout]     |
[INFO] [stdout] 165 |             #[cfg(feature = "sandbox-bubblewrap")]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:169:23
[INFO] [stdout]     |
[INFO] [stdout] 169 |             #[cfg(not(feature = "sandbox-bubblewrap"))]
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tools::registry::ToolRegistry`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tools::registry::ToolRegistry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tools::cron::add::CronAddTool`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/attribution.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::tools::cron::add::CronAddTool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cron::CronJob`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cron::CronJob;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Schedule`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:2:44
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::tools::cron::add::{CronAddTool, Schedule};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_config::Config`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use shadow_config::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/add.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/add.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::{json, Error, Value};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LazyLock` and `Mutex`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/model_switch.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Arc, LazyLock, Mutex};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/turn.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let (response_text) = match chat_result{
[INFO] [stdout]    |             ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -         let (response_text) = match chat_result{
[INFO] [stdout] 68 +         let response_text = match chat_result{
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 (resp.text.as_deref().unwrap_or("").to_string())
[INFO] [stdout]    |                 ^                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -                 (resp.text.as_deref().unwrap_or("").to_string())
[INFO] [stdout] 70 +                 resp.text.as_deref().unwrap_or("").to_string()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::agent::turn::events::StreamDelta`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/provider_call.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::agent::turn::events::StreamDelta;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_core::kennel::provider::NativeThinkingParams`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/provider_call.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use shadow_core::kennel::provider::NativeThinkingParams;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_core::Observer`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/context.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shadow_core::Observer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::record`
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use shadow_log::record;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 | use anyhow::{bail, Context, Result};
[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: `parking_lot::Mutex`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use parking_lot::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection` and `params`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rusqlite::{Connection, params};
[INFO] [stdout]    |                ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 | use serde_json::{Error, Value};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::Action`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use shadow_log::Action;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 | #[cfg(not(all(feature = "sandbox-landlock", target_os = "linux")))]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:210:11
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[cfg(all(feature = "sandbox-landlock", target_os = "linux"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::security::seatbelt::SeatbeltSandbox`
[INFO] [stdout]  --> crates/shadow-runtime/src/security/detect.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::security::seatbelt::SeatbeltSandbox;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_config::RuntimeKind`
[INFO] [stdout]  --> crates/shadow-runtime/src/security/detect.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shadow_config::RuntimeKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:53:23
[INFO] [stdout]    |
[INFO] [stdout] 53 |             #[cfg(all(feature = "sandbox-landlock", target_os = "linux"))]
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |             #[cfg(not(all(feature = "sandbox-landlock", target_os = "linux")))]
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 feature = "sandbox-bubblewrap",
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/detect.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 feature = "sandbox-bubblewrap",
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]    = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-landlock`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |         #[cfg(feature = "sandbox-landlock")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-landlock` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:165:19
[INFO] [stdout]     |
[INFO] [stdout] 165 |             #[cfg(feature = "sandbox-bubblewrap")]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sandbox-bubblewrap`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:169:23
[INFO] [stdout]     |
[INFO] [stdout] 169 |             #[cfg(not(feature = "sandbox-bubblewrap"))]
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default` and `obs-prometheus`
[INFO] [stdout]     = help: consider adding `sandbox-bubblewrap` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use anyhow::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tools::registry::ToolRegistry`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tools::registry::ToolRegistry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tools::cron::add::CronAddTool`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/attribution.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::tools::cron::add::CronAddTool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cron::CronJob`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cron::CronJob;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Schedule`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:2:44
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::tools::cron::add::{CronAddTool, Schedule};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_config::Config`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use shadow_config::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/add.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/cron/add.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::{json, Error, Value};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LazyLock` and `Mutex`
[INFO] [stdout]  --> crates/shadow-runtime/src/tools/model_switch.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Arc, LazyLock, Mutex};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/turn.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let (response_text) = match chat_result{
[INFO] [stdout]    |             ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -         let (response_text) = match chat_result{
[INFO] [stdout] 68 +         let response_text = match chat_result{
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 (resp.text.as_deref().unwrap_or("").to_string())
[INFO] [stdout]    |                 ^                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -                 (resp.text.as_deref().unwrap_or("").to_string())
[INFO] [stdout] 70 +                 resp.text.as_deref().unwrap_or("").to_string()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::agent::turn::events::StreamDelta`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/provider_call.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::agent::turn::events::StreamDelta;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_core::kennel::provider::NativeThinkingParams`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/provider_call.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use shadow_core::kennel::provider::NativeThinkingParams;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_core::Observer`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/context.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shadow_core::Observer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::record`
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use shadow_log::record;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let mut model_name = match agent_model_provider.and_then(|e| e.model.as_deref()) {
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut streamed_live_delta = false;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut streamed_protocol_suppressed = false;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut streamed_visible_text = String::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let mut model_name = match agent_model_provider.and_then(|e| e.model.as_deref()) {
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut streamed_live_delta = false;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut streamed_protocol_suppressed = false;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut streamed_visible_text = String::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use anyhow::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_alias`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     agent_alias: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_alias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     name: Option<String>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     schedule: Schedule,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     command: &str,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delivery`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     delivery: Option<DeliveryConfig>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delivery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `approved`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     approved: bool,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_approved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     name: Option<String>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     prompt: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_target`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     session_target: crate::tools::cron::types::SessionTarget,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     model: Option<String>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `del_after_run`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     del_after_run: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_del_after_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     allowed_tools: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_run`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let next_run = next_run_for_schedule(&schedule, now)?;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let id = Uuid::new_v4().to_string();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule_json`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let schedule_json = serde_json::to_string(&schedule)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delivery`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let delivery = delivery.unwrap_or_default();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delivery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_alias`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     agent_alias: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_agent_alias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     name: Option<String>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     schedule: Schedule,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     command: &str,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delivery`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     delivery: Option<DeliveryConfig>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delivery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `approved`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     approved: bool,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_approved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     name: Option<String>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     prompt: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_target`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     session_target: crate::tools::cron::types::SessionTarget,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     model: Option<String>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `del_after_run`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     del_after_run: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_del_after_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     allowed_tools: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_run`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let next_run = next_run_for_schedule(&schedule, now)?;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let id = Uuid::new_v4().to_string();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule_json`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let schedule_json = serde_json::to_string(&schedule)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delivery`
[INFO] [stdout]   --> crates/shadow-runtime/src/cron/mod.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let delivery = delivery.unwrap_or_default();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delivery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:206:23
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn landlock_available(workspace_dir: Option<&Path>) -> bool {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut tools = Vec::new();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:544:9
[INFO] [stdout]     |
[INFO] [stdout] 544 |     let mut skills = Vec::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:543:20
[INFO] [stdout]     |
[INFO] [stdout] 543 | pub fn load_skills(workspace_dir: &Path) -> Result<Vec<Skill>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:206:23
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn landlock_available(workspace_dir: Option<&Path>) -> bool {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut tools = Vec::new();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/cron/add.rs:382:28
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 if let Err(reason) = self.security.validate_command_execution(command, approved){}
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/cron/add.rs:458:17
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Err(e) => Ok(ToolResult::err("")),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timezone`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/cron/common.rs:77:83
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let next_run_local = chrono_tz::Tz::from_str(tz).map_or(Value::Null, |timezone| {
[INFO] [stdout]    |                                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timezone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:544:9
[INFO] [stdout]     |
[INFO] [stdout] 544 |     let mut skills = Vec::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]    --> crates/shadow-runtime/src/skills/mod.rs:543:20
[INFO] [stdout]     |
[INFO] [stdout] 543 | pub fn load_skills(workspace_dir: &Path) -> Result<Vec<Skill>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/cron/add.rs:382:28
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 if let Err(reason) = self.security.validate_command_execution(command, approved){}
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/cron/add.rs:458:17
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Err(e) => Ok(ToolResult::err("")),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timezone`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/cron/common.rs:77:83
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let next_run_local = chrono_tz::Tz::from_str(tz).map_or(Value::Null, |timezone| {
[INFO] [stdout]    |                                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timezone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/model_switch.rs:137:18
[INFO] [stdout]     |
[INFO] [stdout] 137 |             Some(m) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             config,
[INFO] [stdout]    |             ^^^^^^ help: try ignoring the field: `config: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_alias`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             agent_alias,
[INFO] [stdout]    |             ^^^^^^^^^^^ help: try ignoring the field: `agent_alias: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runtime`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             runtime,
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `runtime: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_memory`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |             exclude_memory,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: try ignoring the field: `exclude_memory: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unfiltered_tool_arcs`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |             unfiltered_tool_arcs,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `unfiltered_tool_arcs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before_filter`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let before_filter = tool_registry.len();
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     memory: Arc<dyn Memory>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     workspace_dir: &std::path::Path,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `live_config`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     live_config: Option<Arc<parking_lot::RwLock<Config>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_shell_access`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let has_shell_access = runtime.has_shell_access();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_shell_access`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persistent_writes`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let persistent_writes = runtime.has_filesystem_access();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persistent_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sandbox`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let sandbox = create_sandbox(&sandbox_cfg, runtime_kind, Some(&security.workspace_dir));
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sandbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delegate_global_credential`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let delegate_global_credential = fallback_api_key.and_then(|value| {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delegate_global_credential`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider_runtime_options`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let provider_runtime_options =
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provider_runtime_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delegate_handle`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let delegate_handle: Option<&str> = if agents.is_empty() {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delegate_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:217:35
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub fn default_tools_with_runtime(security: Arc<SecurityPolicy>, runtime: Arc<dyn RuntimePlatformAdapter>)-> Vec<Box<dyn Tool>>{
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persist_writes`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |     let persist_writes = runtime.has_filesystem_access();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persist_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tools_registry`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     tools_registry: &[Box<dyn Tool>],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tools_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thinking_prefix`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     thinking_prefix: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thinking_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `native_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let native_tools = model_provider.supports_native_tools();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_native_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obs`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let obs: Arc<dyn Observer> = Arc::from(base_obs);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_obs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_switch_callback`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let model_switch_callback = get_model_switch_state();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_switch_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eff_temperature`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:310:17
[INFO] [stdout]     |
[INFO] [stdout] 310 |             let eff_temperature = temperature;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eff_temperature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runtime_capability_names`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |             let runtime_capability_names = tool_registry.iter().map(|t| t.name()).collect::<Vec<_>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime_capability_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_api_key`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_uri`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:384:50
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:401:33
[INFO] [stdout]     |
[INFO] [stdout] 401 | ...                   let model = new_model;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_api_key`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:518:38
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_uri`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:518:54
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:535:37
[INFO] [stdout]     |
[INFO] [stdout] 535 | ...                   let model = new_model;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duration`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:581:13
[INFO] [stdout]     |
[INFO] [stdout] 581 |         let duration = start.elapsed();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response` is never read
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:342:32
[INFO] [stdout]     |
[INFO] [stdout] 342 |             let mut response = String::new();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 370 |                         response = resp;
[INFO] [stdout]     |                         -------- `response` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_state_file`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     session_state_file: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_state_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     allowed_tools: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temperature`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 temperature,
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: try ignoring the field: `temperature: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel_name`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         channel_name,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: try ignoring the field: `channel_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel_reply_target`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         channel_reply_target,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `channel_reply_target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider_name`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:51:25
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let (model_provider,provider_name, model) = (model_provider, provider_name, model);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provider_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_start`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let loop_start = Instant::now();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iteration`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | ...                   iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     workspace_dir: &std::path::Path,
[INFO] [stdout]   |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_name`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     model_name: &str,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tools`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     tools: &[(&str, &str)],
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `autonomy_config`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     autonomy_config: Option<&RiskProfileConfig>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_autonomy_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_tool_calls`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     show_tool_calls: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_tool_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metric`
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:83:29
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn record_metric(&self, metric: &ObserverMetric) {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_metric`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TurnCtx<'_>` is more private than the item `call_provider`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / pub async fn call_provider(ctx: &TurnCtx<'_>,
[INFO] [stdout] 24 | |                            model_provider: &dyn ModelProvider,
[INFO] [stdout] 25 | |                            model: &str,
[INFO] [stdout] 26 | |                            messages: &[ChatMessage],
[INFO] [stdout] 27 | |                            tools: Option<&[ToolSpec]>,
[INFO] [stdout] 28 | |                            should_consume_provider_stream: bool,
[INFO] [stdout] 29 | |                            iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    | |___________________________________________________________________________^ function `call_provider` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TurnCtx<'_>` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/context.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct TurnCtx<'a>{
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ProviderCallOutcome` is more private than the item `call_provider`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / pub async fn call_provider(ctx: &TurnCtx<'_>,
[INFO] [stdout] 24 | |                            model_provider: &dyn ModelProvider,
[INFO] [stdout] 25 | |                            model: &str,
[INFO] [stdout] 26 | |                            messages: &[ChatMessage],
[INFO] [stdout] 27 | |                            tools: Option<&[ToolSpec]>,
[INFO] [stdout] 28 | |                            should_consume_provider_stream: bool,
[INFO] [stdout] 29 | |                            iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    | |___________________________________________________________________________^ function `call_provider` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ProviderCallOutcome` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) struct ProviderCallOutcome {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_OUTPUT_LEN` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/cron/mod.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const MAX_OUTPUT_LEN: usize = 10 * 1024;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `schedule_cron_expression` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/cron/schedule.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn schedule_cron_expression(schedule: &Schedule) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BLOCKED_PATTERNS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const DEFAULT_BLOCKED_PATTERNS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FORBIDDEN_PATHS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const DEFAULT_FORBIDDEN_PATHS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAFE_ENV_VARS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const SAFE_ENV_VARS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOOP_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:224:7
[INFO] [stdout]     |
[INFO] [stdout] 224 | const NOOP_DESCRIPTION: &str = "No sandboxing (application-layer security only)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LANDLOCK_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:225:7
[INFO] [stdout]     |
[INFO] [stdout] 225 | const LANDLOCK_DESCRIPTION: &str = "Linux kernel LSM sandboxing (filesystem access control)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FIREJAIL_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:226:7
[INFO] [stdout]     |
[INFO] [stdout] 226 | const FIREJAIL_DESCRIPTION: &str = "Linux user-space sandbox (requires firejail to be installed)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUBBLEWRAP_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:227:7
[INFO] [stdout]     |
[INFO] [stdout] 227 | const BUBBLEWRAP_DESCRIPTION: &str = "User namespace sandbox (requires bwrap)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOCKER_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:228:7
[INFO] [stdout]     |
[INFO] [stdout] 228 | const DOCKER_DESCRIPTION: &str = "Docker container isolation (requires docker)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEATBELT_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:229:7
[INFO] [stdout]     |
[INFO] [stdout] 229 | const SEATBELT_DESCRIPTION: &str = "macOS Seatbelt sandbox (built-in sandbox-exec)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `description` are never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl SelectedSandboxBackend {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] 231 |     fn name(self) -> &'static str {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn description(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeatbeltSandbox` is never constructed
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SeatbeltSandbox {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_workspace` and `is_installed` are never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl SeatbeltSandbox {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn with_workspace(workspace: Option<&Path>) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn is_installed() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seatbelt_string_literal` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn seatbelt_string_literal(value: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_policy` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/seatbelt.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn generate_policy(workspace: &Path) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_image` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/docker.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl DockerSandbox {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn with_image(image: String) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/model_switch.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ModelSwitchTool {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub const NAME: &'static str = "model_switch";
[INFO] [stdout] 25 |     pub fn new(security: Arc<SecurityPolicy>, config: Arc<Config>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `streamed_live_delta`, `streamed_protocol_suppressed`, and `streamed_visible_text` are never read
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) struct ProviderCallOutcome {
[INFO] [stdout]    |                   ------------------- fields in this struct
[INFO] [stdout]  9 |     pub chat_result: Result<ChatResponse>,
[INFO] [stdout] 10 |     pub streamed_live_delta: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub streamed_protocol_suppressed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub streamed_visible_text: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_delta`, `event_tx`, `turn_id`, and `agent_alias` are never read
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/context.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct TurnCtx<'a>{
[INFO] [stdout]    |                   ------- fields in this struct
[INFO] [stdout]  7 |     // pub observer: &'a dyn Observer,
[INFO] [stdout]  8 |     pub on_delta:Option<&'a Sender<StreamDelta>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  9 |     pub event_tx:Option<&'a Sender<TurnEvent>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub temperature: Option<f64>,
[INFO] [stdout] 11 |     pub turn_id: &'a str,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     pub agent_alias: Option<&'a str>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text` and `Status` are never constructed
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/events.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum StreamDelta {
[INFO] [stdout]   |          ----------- variants in this enum
[INFO] [stdout] 5 |     Text(String),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     Status(String),
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StreamDelta` 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 `scoped_id` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct BroadcastHookEntry{
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 20 |     scoped_id: Option<u64>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_scoped_id` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct BroadcastHookState {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 26 |     next_scoped_id: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/prometheus.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct PrometheusObserver {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 12 |     registry: Registry,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `encode`, `shared`, and `registry` are never used
[INFO] [stdout]    --> crates/shadow-runtime/src/observability/prometheus.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl PrometheusObserver {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn encode(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn shared() -> Arc<Self> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn registry(&self) -> &Registry {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/model_switch.rs:137:18
[INFO] [stdout]     |
[INFO] [stdout] 137 |             Some(m) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             config,
[INFO] [stdout]    |             ^^^^^^ help: try ignoring the field: `config: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent_alias`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             agent_alias,
[INFO] [stdout]    |             ^^^^^^^^^^^ help: try ignoring the field: `agent_alias: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runtime`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             runtime,
[INFO] [stdout]    |             ^^^^^^^ help: try ignoring the field: `runtime: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_memory`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |             exclude_memory,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: try ignoring the field: `exclude_memory: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unfiltered_tool_arcs`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |             unfiltered_tool_arcs,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `unfiltered_tool_arcs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before_filter`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/scoped.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let before_filter = tool_registry.len();
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     memory: Arc<dyn Memory>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     workspace_dir: &std::path::Path,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `live_config`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     live_config: Option<Arc<parking_lot::RwLock<Config>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_shell_access`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let has_shell_access = runtime.has_shell_access();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_shell_access`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persistent_writes`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let persistent_writes = runtime.has_filesystem_access();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persistent_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sandbox`
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let sandbox = create_sandbox(&sandbox_cfg, runtime_kind, Some(&security.workspace_dir));
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sandbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delegate_global_credential`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let delegate_global_credential = fallback_api_key.and_then(|value| {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delegate_global_credential`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider_runtime_options`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let provider_runtime_options =
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provider_runtime_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delegate_handle`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let delegate_handle: Option<&str> = if agents.is_empty() {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delegate_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:217:35
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub fn default_tools_with_runtime(security: Arc<SecurityPolicy>, runtime: Arc<dyn RuntimePlatformAdapter>)-> Vec<Box<dyn Tool>>{
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persist_writes`
[INFO] [stdout]    --> crates/shadow-runtime/src/tools/mod.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |     let persist_writes = runtime.has_filesystem_access();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persist_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tools_registry`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     tools_registry: &[Box<dyn Tool>],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tools_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thinking_prefix`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     thinking_prefix: Option<&str>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thinking_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `native_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let native_tools = model_provider.supports_native_tools();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_native_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obs`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let obs: Arc<dyn Observer> = Arc::from(base_obs);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_obs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_switch_callback`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let model_switch_callback = get_model_switch_state();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_switch_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eff_temperature`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:310:17
[INFO] [stdout]     |
[INFO] [stdout] 310 |             let eff_temperature = temperature;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eff_temperature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runtime_capability_names`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |             let runtime_capability_names = tool_registry.iter().map(|t| t.name()).collect::<Vec<_>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime_capability_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_api_key`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_uri`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:384:50
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:401:33
[INFO] [stdout]     |
[INFO] [stdout] 401 | ...                   let model = new_model;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_api_key`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:518:38
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `switch_uri`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:518:54
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...   let (switch_api_key, switch_uri) = api_key_and_uri_for_provider(&config, &new_model_provider, agent_model_provider);
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:535:37
[INFO] [stdout]     |
[INFO] [stdout] 535 | ...                   let model = new_model;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duration`
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:581:13
[INFO] [stdout]     |
[INFO] [stdout] 581 |         let duration = start.elapsed();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response` is never read
[INFO] [stdout]    --> crates/shadow-runtime/src/agent/loop_.rs:342:32
[INFO] [stdout]     |
[INFO] [stdout] 342 |             let mut response = String::new();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 370 |                         response = resp;
[INFO] [stdout]     |                         -------- `response` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_state_file`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     session_state_file: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_state_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed_tools`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/loop_.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     allowed_tools: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temperature`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 temperature,
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: try ignoring the field: `temperature: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel_name`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         channel_name,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: try ignoring the field: `channel_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel_reply_target`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         channel_reply_target,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `channel_reply_target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider_name`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:51:25
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let (model_provider,provider_name, model) = (model_provider, provider_name, model);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provider_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_start`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/turn.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let loop_start = Instant::now();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iteration`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | ...                   iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_dir`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     workspace_dir: &std::path::Path,
[INFO] [stdout]   |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_name`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     model_name: &str,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tools`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     tools: &[(&str, &str)],
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `autonomy_config`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     autonomy_config: Option<&RiskProfileConfig>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_autonomy_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_tool_calls`
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/system_prompt.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     show_tool_calls: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_tool_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metric`
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:83:29
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn record_metric(&self, metric: &ObserverMetric) {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_metric`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TurnCtx<'_>` is more private than the item `call_provider`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / pub async fn call_provider(ctx: &TurnCtx<'_>,
[INFO] [stdout] 24 | |                            model_provider: &dyn ModelProvider,
[INFO] [stdout] 25 | |                            model: &str,
[INFO] [stdout] 26 | |                            messages: &[ChatMessage],
[INFO] [stdout] 27 | |                            tools: Option<&[ToolSpec]>,
[INFO] [stdout] 28 | |                            should_consume_provider_stream: bool,
[INFO] [stdout] 29 | |                            iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    | |___________________________________________________________________________^ function `call_provider` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TurnCtx<'_>` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/context.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct TurnCtx<'a>{
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ProviderCallOutcome` is more private than the item `call_provider`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / pub async fn call_provider(ctx: &TurnCtx<'_>,
[INFO] [stdout] 24 | |                            model_provider: &dyn ModelProvider,
[INFO] [stdout] 25 | |                            model: &str,
[INFO] [stdout] 26 | |                            messages: &[ChatMessage],
[INFO] [stdout] 27 | |                            tools: Option<&[ToolSpec]>,
[INFO] [stdout] 28 | |                            should_consume_provider_stream: bool,
[INFO] [stdout] 29 | |                            iteration: usize) -> Result<ProviderCallOutcome> {
[INFO] [stdout]    | |___________________________________________________________________________^ function `call_provider` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ProviderCallOutcome` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) struct ProviderCallOutcome {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_OUTPUT_LEN` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/cron/mod.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const MAX_OUTPUT_LEN: usize = 10 * 1024;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `schedule_cron_expression` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/cron/schedule.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn schedule_cron_expression(schedule: &Schedule) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BLOCKED_PATTERNS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const DEFAULT_BLOCKED_PATTERNS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FORBIDDEN_PATHS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const DEFAULT_FORBIDDEN_PATHS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAFE_ENV_VARS` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const SAFE_ENV_VARS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOOP_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:224:7
[INFO] [stdout]     |
[INFO] [stdout] 224 | const NOOP_DESCRIPTION: &str = "No sandboxing (application-layer security only)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LANDLOCK_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:225:7
[INFO] [stdout]     |
[INFO] [stdout] 225 | const LANDLOCK_DESCRIPTION: &str = "Linux kernel LSM sandboxing (filesystem access control)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FIREJAIL_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:226:7
[INFO] [stdout]     |
[INFO] [stdout] 226 | const FIREJAIL_DESCRIPTION: &str = "Linux user-space sandbox (requires firejail to be installed)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUBBLEWRAP_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:227:7
[INFO] [stdout]     |
[INFO] [stdout] 227 | const BUBBLEWRAP_DESCRIPTION: &str = "User namespace sandbox (requires bwrap)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOCKER_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:228:7
[INFO] [stdout]     |
[INFO] [stdout] 228 | const DOCKER_DESCRIPTION: &str = "Docker container isolation (requires docker)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEATBELT_DESCRIPTION` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:229:7
[INFO] [stdout]     |
[INFO] [stdout] 229 | const SEATBELT_DESCRIPTION: &str = "macOS Seatbelt sandbox (built-in sandbox-exec)";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `description` are never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/detect.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl SelectedSandboxBackend {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] 231 |     fn name(self) -> &'static str {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn description(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeatbeltSandbox` is never constructed
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SeatbeltSandbox {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_workspace` and `is_installed` are never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl SeatbeltSandbox {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn with_workspace(workspace: Option<&Path>) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn is_installed() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seatbelt_string_literal` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/seatbelt.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn seatbelt_string_literal(value: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_policy` is never used
[INFO] [stdout]    --> crates/shadow-runtime/src/security/seatbelt.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn generate_policy(workspace: &Path) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_image` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/security/docker.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl DockerSandbox {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn with_image(image: String) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/shadow-runtime/src/tools/model_switch.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ModelSwitchTool {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub const NAME: &'static str = "model_switch";
[INFO] [stdout] 25 |     pub fn new(security: Arc<SecurityPolicy>, config: Arc<Config>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `streamed_live_delta`, `streamed_protocol_suppressed`, and `streamed_visible_text` are never read
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/provider_call.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) struct ProviderCallOutcome {
[INFO] [stdout]    |                   ------------------- fields in this struct
[INFO] [stdout]  9 |     pub chat_result: Result<ChatResponse>,
[INFO] [stdout] 10 |     pub streamed_live_delta: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub streamed_protocol_suppressed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub streamed_visible_text: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_delta`, `event_tx`, `turn_id`, and `agent_alias` are never read
[INFO] [stdout]   --> crates/shadow-runtime/src/agent/turn/context.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct TurnCtx<'a>{
[INFO] [stdout]    |                   ------- fields in this struct
[INFO] [stdout]  7 |     // pub observer: &'a dyn Observer,
[INFO] [stdout]  8 |     pub on_delta:Option<&'a Sender<StreamDelta>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  9 |     pub event_tx:Option<&'a Sender<TurnEvent>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub temperature: Option<f64>,
[INFO] [stdout] 11 |     pub turn_id: &'a str,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     pub agent_alias: Option<&'a str>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text` and `Status` are never constructed
[INFO] [stdout]  --> crates/shadow-runtime/src/agent/turn/events.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum StreamDelta {
[INFO] [stdout]   |          ----------- variants in this enum
[INFO] [stdout] 5 |     Text(String),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     Status(String),
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StreamDelta` 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 `scoped_id` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct BroadcastHookEntry{
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 20 |     scoped_id: Option<u64>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_scoped_id` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct BroadcastHookState {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 26 |     next_scoped_id: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> crates/shadow-runtime/src/observability/prometheus.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct PrometheusObserver {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 12 |     registry: Registry,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `encode`, `shared`, and `registry` are never used
[INFO] [stdout]    --> crates/shadow-runtime/src/observability/prometheus.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl PrometheusObserver {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn encode(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn shared() -> Arc<Self> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn registry(&self) -> &Registry {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shadow v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `shadow::config`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use shadow::config;
[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: `shadow_config::Config`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use shadow_config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::Action`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use shadow_log::Action;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_providers::ProviderDispatch`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use shadow_providers::ProviderDispatch;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StdinLock`
[INFO] [stdout]   --> src/main.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::io::{BufRead, StdinLock};
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow::config`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use shadow::config;
[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: `shadow_config::Config`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use shadow_config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_log::Action`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use shadow_log::Action;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shadow_providers::ProviderDispatch`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use shadow_providers::ProviderDispatch;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StdinLock`
[INFO] [stdout]   --> src/main.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::io::{BufRead, StdinLock};
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/main.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::io::{BufRead, StdinLock};
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/main.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::io::{BufRead, StdinLock};
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut config = Box::pin(shadow_config::Config::load_or_init()).await?;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_provider`
[INFO] [stdout]    --> src/main.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |             model_provider,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: try ignoring the field: `model_provider: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> src/main.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |             model,
[INFO] [stdout]     |             ^^^^^ help: try ignoring the field: `model: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut config = Box::pin(shadow_config::Config::load_or_init()).await?;
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_provider`
[INFO] [stdout]    --> src/main.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |             model_provider,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: try ignoring the field: `model_provider: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> src/main.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |             model,
[INFO] [stdout]     |             ^^^^^ help: try ignoring the field: `model: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STDIN_LINE_CAP` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const STDIN_LINE_CAP: usize = 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_directive` is never used
[INFO] [stdout]   --> src/main.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl LogLevel {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 57 |     fn as_directive(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_terminal` is never used
[INFO] [stdout]   --> src/main.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn is_terminal() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CappedLine` is never used
[INFO] [stdout]    --> src/main.rs:303:6
[INFO] [stdout]     |
[INFO] [stdout] 303 | enum CappedLine {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_capped_line` is never used
[INFO] [stdout]    --> src/main.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn read_capped_line<R: std::io::BufRead>(reader: R, cap: usize) -> std::io::Result<CappedLine> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discard_until_newline` is never used
[INFO] [stdout]    --> src/main.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn discard_until_newline<R: std::io::BufRead>(reader: &mut R) -> std::io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STDIN_LINE_CAP` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const STDIN_LINE_CAP: usize = 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_directive` is never used
[INFO] [stdout]   --> src/main.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl LogLevel {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 57 |     fn as_directive(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_terminal` is never used
[INFO] [stdout]   --> src/main.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn is_terminal() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CappedLine` is never used
[INFO] [stdout]    --> src/main.rs:303:6
[INFO] [stdout]     |
[INFO] [stdout] 303 | enum CappedLine {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_capped_line` is never used
[INFO] [stdout]    --> src/main.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn read_capped_line<R: std::io::BufRead>(reader: R, cap: usize) -> std::io::Result<CappedLine> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discard_until_newline` is never used
[INFO] [stdout]    --> src/main.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn discard_until_newline<R: std::io::BufRead>(reader: &mut R) -> std::io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 23s
[INFO] running `Command { std: "docker" "inspect" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d", kill_on_drop: false }`
[INFO] [stdout] 11edba8ad8c7d20b77ce1ec1e1b759977b367a78b475b307cde48d49dce0e84d
