[INFO] cloning repository https://github.com/sushanthpy/pipit
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sushanthpy/pipit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsushanthpy%2Fpipit", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsushanthpy%2Fpipit'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f08a5e5b9a76aa05d40da0c43ef1a177861631fa
[INFO] checking sushanthpy/pipit against try#d8be25549d5418405531341b4be6d8538fc3c42e for pr-156160
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsushanthpy%2Fpipit" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/sushanthpy/pipit
[INFO] finished tweaking git repo https://github.com/sushanthpy/pipit
[INFO] tweaked toml for git repo https://github.com/sushanthpy/pipit written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sushanthpy/pipit on toolchain d8be25549d5418405531341b4be6d8538fc3c42e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sushanthpy/pipit 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" "+d8be25549d5418405531341b4be6d8538fc3c42e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548
[INFO] running `Command { std: "docker" "start" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548", 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" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548" "/opt/rustwide/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548", 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" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548" "/opt/rustwide/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking iri-string v0.7.11
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking notify-types v1.0.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking filetime v0.2.27
[INFO] [stderr]     Checking streaming-iterator v0.1.9
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]     Checking notify v7.0.0
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tree-sitter v0.24.7
[INFO] [stderr]    Compiling tree-sitter-bash v0.25.1
[INFO] [stderr]    Compiling tree-sitter-go v0.23.4
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter-javascript v0.23.1
[INFO] [stderr]    Compiling tree-sitter-rust v0.23.3
[INFO] [stderr]     Checking eventsource-stream v0.2.3
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking vte v0.11.1
[INFO] [stderr]     Checking quick-xml v0.38.4
[INFO] [stderr]     Checking line-clipping v0.3.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling pulldown-cmark v0.12.2
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking getopts v0.2.24
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]     Checking simple-easing v1.0.2
[INFO] [stderr]     Checking pulldown-cmark-escape v0.11.0
[INFO] [stderr]     Checking colorsys v0.6.7
[INFO] [stderr]     Checking font8x8 v0.3.1
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking vt100 v0.15.2
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking sled v0.34.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking fancy-regex v0.16.2
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]    Compiling derive-getters v0.5.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]    Compiling bon-macros v3.9.1
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling derive_setters v0.1.9
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking ratatui v0.28.1
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking clap_complete v4.6.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_yaml_ng v0.10.0
[INFO] [stderr]     Checking pipit-hw-codesign v0.3.9 (/opt/rustwide/workdir/crates/pipit-hw-codesign)
[INFO] [stderr]     Checking pipit-spec v0.3.9 (/opt/rustwide/workdir/crates/pipit-spec)
[INFO] [stderr]     Checking pipit-perf v0.3.9 (/opt/rustwide/workdir/crates/pipit-perf)
[INFO] [stdout] warning: unused import: `SpecRule`
[INFO] [stdout]  --> crates/pipit-spec/src/ghost_gen.rs:9:74
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::spec_lang::{CompareOp, ConstraintValue, Spec, SpecConstraint, SpecRule, SpecType};
[INFO] [stdout]   |                                                                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-arch-evolution v0.3.9 (/opt/rustwide/workdir/crates/pipit-arch-evolution)
[INFO] [stdout] warning: unused import: `HotFunction`
[INFO] [stdout]  --> crates/pipit-perf/src/hypothesis.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::profile::{HotFunction, ProfileReport};
[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: `crate::hypothesis::OptimizationHypothesis`
[INFO] [stdout]  --> crates/pipit-perf/src/rewrite_loop.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::hypothesis::OptimizationHypothesis;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]   --> crates/pipit-spec/src/ghost_gen.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     bounds: &std::collections::HashMap<String, (f64, f64)>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-arch-evolution/src/genome.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking plist v1.8.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stdout] warning: unused variable: `generation`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/fitness.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         for generation in 0..generations {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_generation`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutation`
[INFO] [stdout]   --> crates/pipit-arch-evolution/src/genome.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mutation = match rng.gen_range(0..6) {
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/genome.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn crossover(&self, other: &Self, rng: &mut impl Rng) -> Self {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-vim v0.3.9 (/opt/rustwide/workdir/crates/pipit-vim)
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/scaffold.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn dockerfile_template(name: &str) -> String {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking pipit-lsp v0.3.9 (/opt/rustwide/workdir/crates/pipit-lsp)
[INFO] [stderr]     Checking pipit-intelligence v0.3.9 (/opt/rustwide/workdir/crates/pipit-intelligence)
[INFO] [stdout] warning: unused import: `LspDiagnostic`
[INFO] [stdout]  --> crates/pipit-lsp/src/client.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{DefinitionResult, LspDiagnostic, ReferencesResult, SourceLocation, TypeInfo};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking syntect v5.3.0
[INFO] [stderr]     Checking tui-widget-list v0.12.2
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-intelligence/src/dataflow.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-intelligence/src/dependency_health.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-intelligence/src/git_archaeology.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-intelligence/src/semantic_ir.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tui-tree-widget v0.22.0
[INFO] [stderr]     Checking pipit-bridge v0.3.9 (/opt/rustwide/workdir/crates/pipit-bridge)
[INFO] [stdout] warning: unused import: `MessageId`
[INFO] [stdout]  --> crates/pipit-bridge/src/session.rs:5:81
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocol::{BridgeCommand, BridgeEvent, BridgeMessage, BridgePayload, MessageId};
[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: `BridgePayload`
[INFO] [stdout]  --> crates/pipit-bridge/src/transport.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocol::{BridgeMessage, BridgePayload, MessageId};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `broadcast`
[INFO] [stdout]  --> crates/pipit-bridge/src/transport.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::{broadcast, mpsc};
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tui-input v0.11.1
[INFO] [stderr]     Checking tui-textarea v0.7.0
[INFO] [stderr]     Checking tui-popup v0.6.0
[INFO] [stdout] warning: field `project_root` is never read
[INFO] [stdout]   --> crates/pipit-lsp/src/manager.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LspManager {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 13 |     clients: HashMap<LspKind, LspClient>,
[INFO] [stdout] 14 |     project_root: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tui-term v0.2.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking ansi-to-tui v7.0.0
[INFO] [stderr]     Checking throbber-widgets-tui v0.8.0
[INFO] [stderr]     Checking tui-big-text v0.7.3
[INFO] [stderr]     Checking pipit-tmux v0.3.9 (/opt/rustwide/workdir/crates/pipit-tmux)
[INFO] [stderr]     Checking cron v0.15.0
[INFO] [stderr]     Checking pipit-vcs v0.3.9 (/opt/rustwide/workdir/crates/pipit-vcs)
[INFO] [stderr]     Checking pipit-mesh v0.3.9 (/opt/rustwide/workdir/crates/pipit-mesh)
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]    --> crates/pipit-intelligence/src/file_watcher.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let root = project_root.to_path_buf();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-evolve v0.3.9 (/opt/rustwide/workdir/crates/pipit-evolve)
[INFO] [stderr]     Checking pipit-compliance v0.3.9 (/opt/rustwide/workdir/crates/pipit-compliance)
[INFO] [stdout] warning: unused variable: `author`
[INFO] [stdout]    --> crates/pipit-intelligence/src/git_archaeology.rs:135:15
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for ((author, file), (weighted, _total)) in &author_file_stats {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_author`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-env v0.3.9 (/opt/rustwide/workdir/crates/pipit-env)
[INFO] [stdout] warning: unused import: `crate::session::PaneRole`
[INFO] [stdout]   --> crates/pipit-tmux/src/shell.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::session::PaneRole;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files`
[INFO] [stdout]    --> crates/pipit-intelligence/src/git_archaeology.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     files: &[String],
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_files`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-verify v0.3.9 (/opt/rustwide/workdir/crates/pipit-verify)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-compliance/src/regulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[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: `HashMap` and `HashSet`
[INFO] [stdout]  --> crates/pipit-compliance/src/taint.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/pipit-evolve/src/population.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tui-scrollview v0.6.4
[INFO] [stderr]     Checking pipit-channel v0.3.9 (/opt/rustwide/workdir/crates/pipit-channel)
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:193:27
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn detect_python_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:253:25
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn detect_rust_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:313:23
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn detect_js_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> crates/pipit-intelligence/src/repomap.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct RepoMap {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 20 |     root: PathBuf,
[INFO] [stdout] 21 |     config: IntelligenceConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-verify/src/proof_store.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-verify/src/spec_gen.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-mesh/src/delegation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[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: `Duration`
[INFO] [stdout]   --> crates/pipit-mesh/src/failure.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-mesh/src/registry.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-mesh/src/replication.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::{BTreeMap, BTreeSet, HashMap};
[INFO] [stdout]    |                                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/pipit-evolve/src/population.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> crates/pipit-tmux/src/session.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TmuxSession {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     socket: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TmuxSession` 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: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-verify/src/proof_store.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-verify/src/spec_gen.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diff_output`
[INFO] [stdout]    --> crates/pipit-evolve/src/population.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let diff_output = Command::new("git")
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diff_output`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-mesh/src/delegation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[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/pipit-mesh/src/registry.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-mesh/src/replication.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::{BTreeMap, BTreeSet, HashMap};
[INFO] [stdout]    |                                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::taint::*`
[INFO] [stdout]    --> crates/pipit-compliance/src/codegen.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     use crate::taint::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-compliance/src/regulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> crates/pipit-compliance/src/taint.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-test-universe v0.3.9 (/opt/rustwide/workdir/crates/pipit-test-universe)
[INFO] [stdout] warning: unused import: `MessageId`
[INFO] [stdout]  --> crates/pipit-bridge/src/session.rs:5:81
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocol::{BridgeCommand, BridgeEvent, BridgeMessage, BridgePayload, MessageId};
[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: `BridgePayload`
[INFO] [stdout]  --> crates/pipit-bridge/src/transport.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocol::{BridgeMessage, BridgePayload, MessageId};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `broadcast`
[INFO] [stdout]  --> crates/pipit-bridge/src/transport.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::{broadcast, mpsc};
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diff_output`
[INFO] [stdout]    --> crates/pipit-evolve/src/population.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let diff_output = Command::new("git")
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diff_output`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session::PaneRole`
[INFO] [stdout]   --> crates/pipit-tmux/src/shell.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::session::PaneRole;
[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: `LspDiagnostic`
[INFO] [stdout]  --> crates/pipit-lsp/src/client.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{DefinitionResult, LspDiagnostic, ReferencesResult, SourceLocation, TypeInfo};
[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: `SpecRule`
[INFO] [stdout]  --> crates/pipit-spec/src/ghost_gen.rs:9:74
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::spec_lang::{CompareOp, ConstraintValue, Spec, SpecConstraint, SpecRule, SpecType};
[INFO] [stdout]   |                                                                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]    --> crates/pipit-spec/src/ghost_gen.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     use std::collections::HashMap;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `project_root` is never read
[INFO] [stdout]   --> crates/pipit-lsp/src/manager.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LspManager {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 13 |     clients: HashMap<LspKind, LspClient>,
[INFO] [stdout] 14 |     project_root: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-agents v0.3.9 (/opt/rustwide/workdir/crates/pipit-agents)
[INFO] [stdout] warning: unused import: `HotFunction`
[INFO] [stdout]  --> crates/pipit-perf/src/hypothesis.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::profile::{HotFunction, ProfileReport};
[INFO] [stdout]   |                      ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `archetype`
[INFO] [stdout]    --> crates/pipit-test-universe/src/user_model.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     archetype: &UserArchetype,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_archetype`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hypothesis::OptimizationHypothesis`
[INFO] [stdout]  --> crates/pipit-perf/src/rewrite_loop.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::hypothesis::OptimizationHypothesis;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-intelligence/src/dataflow.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-intelligence/src/dependency_health.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-intelligence/src/git_archaeology.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-intelligence/src/semantic_ir.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-skills v0.3.9 (/opt/rustwide/workdir/crates/pipit-skills)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-arch-evolution/src/genome.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]   --> crates/pipit-spec/src/ghost_gen.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     bounds: &std::collections::HashMap<String, (f64, f64)>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> crates/pipit-tmux/src/session.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TmuxSession {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     socket: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TmuxSession` 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: unused variable: `archetype`
[INFO] [stdout]    --> crates/pipit-test-universe/src/user_model.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     archetype: &UserArchetype,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_archetype`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generation`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/fitness.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         for generation in 0..generations {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_generation`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stdout] warning: unused variable: `mutation`
[INFO] [stdout]   --> crates/pipit-arch-evolution/src/genome.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mutation = match rng.gen_range(0..6) {
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/genome.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn crossover(&self, other: &Self, rng: &mut impl Rng) -> Self {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/pipit-arch-evolution/src/scaffold.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn dockerfile_template(name: &str) -> String {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stdout] warning: field `model` is never read
[INFO] [stdout]   --> crates/pipit-agents/src/catalog.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct AgentFrontmatter {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     model: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentFrontmatter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> crates/pipit-vcs/src/firewall.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct ProtectedPathRule {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     description: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProtectedPathRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> crates/pipit-vcs/src/firewall.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct ProtectedPathRule {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     description: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProtectedPathRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bon v3.9.1
[INFO] [stderr]     Checking tachyonfx v0.9.3
[INFO] [stdout] warning: unused variable: `local_id`
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:259:29
[INFO] [stdout]     |
[INFO] [stdout] 259 |                         let local_id = local_id.clone();
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_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: `reader`
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:317:14
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let (reader, writer) = tokio::io::split(stream);
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_id`
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:259:29
[INFO] [stdout]     |
[INFO] [stdout] 259 |                         let local_id = local_id.clone();
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_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: `reader`
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:317:14
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let (reader, writer) = tokio::io::split(stream);
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model` is never read
[INFO] [stdout]   --> crates/pipit-agents/src/catalog.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct AgentFrontmatter {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     model: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentFrontmatter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]    --> crates/pipit-intelligence/src/file_watcher.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let root = project_root.to_path_buf();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct PeerConnection {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 161 |     agent_id: AgentId,
[INFO] [stdout] 162 |     addr: SocketAddr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `local_id` is never read
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:372:5
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub struct InProcessTransport {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 372 |     local_id: AgentId,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct PeerConnection {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 161 |     agent_id: AgentId,
[INFO] [stdout] 162 |     addr: SocketAddr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `local_id` is never read
[INFO] [stdout]    --> crates/pipit-mesh/src/transport.rs:372:5
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub struct InProcessTransport {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 372 |     local_id: AgentId,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author`
[INFO] [stdout]    --> crates/pipit-intelligence/src/git_archaeology.rs:135:15
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for ((author, file), (weighted, _total)) in &author_file_stats {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_author`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files`
[INFO] [stdout]    --> crates/pipit-intelligence/src/git_archaeology.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     files: &[String],
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_files`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MeshTaskResult`
[INFO] [stdout]  --> crates/pipit-mesh/examples/mesh_delegate.rs:9:41
[INFO] [stdout]   |
[INFO] [stdout] 9 | use pipit_mesh::{MeshMessage, MeshTask, MeshTaskResult};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:193:27
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn detect_python_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:253:25
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn detect_rust_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> crates/pipit-intelligence/src/semantic_ir.rs:313:23
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn detect_js_patterns(code: &str, logical_lines: &[String], patterns: &mut Vec<SemanticIR>) {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> crates/pipit-intelligence/src/repomap.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct RepoMap {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 20 |     root: PathBuf,
[INFO] [stdout] 21 |     config: IntelligenceConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-config v0.3.9 (/opt/rustwide/workdir/crates/pipit-config)
[INFO] [stderr]     Checking pipit-memory v0.3.9 (/opt/rustwide/workdir/crates/pipit-memory)
[INFO] [stderr]     Checking pipit-extensions v0.3.9 (/opt/rustwide/workdir/crates/pipit-extensions)
[INFO] [stderr]     Checking pipit-deps v0.3.9 (/opt/rustwide/workdir/crates/pipit-deps)
[INFO] [stderr]     Checking pipit-voice v0.3.9 (/opt/rustwide/workdir/crates/pipit-voice)
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]   --> crates/pipit-memory/src/secret_scanner.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::borrow::Cow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-memory/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]   --> crates/pipit-memory/src/secret_scanner.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::borrow::Cow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-memory/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-config/src/model_routing.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | 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: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-config/src/provider_roster.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-config/src/model_routing.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | 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: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-config/src/provider_roster.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-extensions/src/hook_kind.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> crates/pipit-extensions/src/runtime.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]    --> crates/pipit-voice/src/vad.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let events = vad.process_frame(&speech);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `vad::VadState` is more private than the item `vad::VoiceActivityDetector::state`
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) state: VadState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `vad::VoiceActivityDetector::state` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `vad::VadState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:82:1
[INFO] [stdout]    |
[INFO] [stdout] 82 | enum VadState {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> crates/pipit-voice/src/native_capture.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct AudioCapture {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 52 |     config: CaptureConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `frame_samples` is never read
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct VoiceActivityDetector {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     frame_samples: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-extensions/src/hook_kind.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> crates/pipit-extensions/src/runtime.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `VadState` is more private than the item `VoiceActivityDetector::state`
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub(crate) state: VadState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `VoiceActivityDetector::state` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `VadState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:82:1
[INFO] [stdout]    |
[INFO] [stdout] 82 | enum VadState {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> crates/pipit-voice/src/native_capture.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct AudioCapture {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 52 |     config: CaptureConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `frame_samples` is never read
[INFO] [stdout]   --> crates/pipit-voice/src/vad.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct VoiceActivityDetector {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     frame_samples: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_layer` is never read
[INFO] [stdout]   --> crates/pipit-memory/src/hnsw.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct HnswNode {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     max_layer: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HnswNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> crates/pipit-config/src/feature_flags.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn set_persist_path(&self, path: std::path::PathBuf) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> crates/pipit-config/src/feature_flags.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn set_persist_path(&self, path: std::path::PathBuf) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_layer` is never read
[INFO] [stdout]   --> crates/pipit-memory/src/hnsw.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct HnswNode {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     max_layer: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HnswNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-provider v0.3.9 (/opt/rustwide/workdir/crates/pipit-provider)
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> crates/pipit-extensions/src/runtime.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |             for (ext_id, filter, handler) in handlers {
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> crates/pipit-extensions/src/runtime.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |             for (ext_id, filter, handler) in handlers {
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/bedrock.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 485 |         use futures::StreamExt;
[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: `PreferredFormat`, `StopReason`, and `UsageMetadata`
[INFO] [stdout]   --> crates/pipit-provider/src/codex_oauth.rs:13:77
[INFO] [stdout]    |
[INFO] [stdout] 13 |     oauth, CompletionRequest, ContentEvent, LlmProvider, ModelCapabilities, PreferredFormat,
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     ProviderError, StopReason, TokenCount, UsageMetadata,
[INFO] [stdout]    |                    ^^^^^^^^^^              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-provider/src/faux.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/mistral.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         use futures::StreamExt;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-provider/src/openai_responses.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RetryEvent`
[INFO] [stdout]   --> crates/pipit-provider/src/resilience.rs:24:55
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::retry::{AdaptiveRetryPolicy, RetryContext, RetryEvent, compute_backoff};
[INFO] [stdout]    |                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> crates/pipit-provider/src/resilience.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> crates/pipit-provider/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 (lower.contains("400") && (
[INFO] [stdout]     |                 ^
[INFO] [stdout] ...
[INFO] [stdout] 133 |                 ))
[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] 124 ~                 lower.contains("400") && (
[INFO] [stdout] 125 |                     lower.contains("can only get item")
[INFO] [stdout] ...
[INFO] [stdout] 132 |                     || lower.contains("is not valid json")
[INFO] [stdout] 133 ~                 ) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> crates/pipit-extensions/src/replay.rs:148:43
[INFO] [stdout]     |
[INFO] [stdout] 148 |             entries.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/bedrock.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 485 |         use futures::StreamExt;
[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: `PreferredFormat`, `StopReason`, and `UsageMetadata`
[INFO] [stdout]   --> crates/pipit-provider/src/codex_oauth.rs:13:77
[INFO] [stdout]    |
[INFO] [stdout] 13 |     oauth, CompletionRequest, ContentEvent, LlmProvider, ModelCapabilities, PreferredFormat,
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     ProviderError, StopReason, TokenCount, UsageMetadata,
[INFO] [stdout]    |                    ^^^^^^^^^^              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-provider/src/faux.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/mistral.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         use futures::StreamExt;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-provider/src/openai_responses.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RetryEvent`
[INFO] [stdout]   --> crates/pipit-provider/src/resilience.rs:24:55
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::retry::{AdaptiveRetryPolicy, RetryContext, RetryEvent, compute_backoff};
[INFO] [stdout]    |                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> crates/pipit-provider/src/resilience.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> crates/pipit-provider/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 (lower.contains("400") && (
[INFO] [stdout]     |                 ^
[INFO] [stdout] ...
[INFO] [stdout] 133 |                 ))
[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] 124 ~                 lower.contains("400") && (
[INFO] [stdout] 125 |                     lower.contains("can only get item")
[INFO] [stdout] ...
[INFO] [stdout] 132 |                     || lower.contains("is not valid json")
[INFO] [stdout] 133 ~                 ) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> crates/pipit-extensions/src/replay.rs:148:43
[INFO] [stdout]     |
[INFO] [stdout] 148 |             entries.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/openai_responses.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         use futures::StreamExt;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]    --> crates/pipit-provider/src/openai_responses.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         use futures::StreamExt;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> crates/pipit-provider/src/bedrock.rs:595:21
[INFO] [stdout]     |
[INFO] [stdout] 595 |         if let Some(stop) = event.get("contentBlockStop") {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> crates/pipit-provider/src/bedrock.rs:595:21
[INFO] [stdout]     |
[INFO] [stdout] 595 |         if let Some(stop) = event.get("contentBlockStop") {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ensure_token` is never used
[INFO] [stdout]    --> crates/pipit-provider/src/codex_oauth.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl CodexOAuthProvider {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     async fn ensure_token(&self) -> Result<String, ProviderError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopilotToken` is never constructed
[INFO] [stdout]   --> crates/pipit-provider/src/copilot_oauth.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct CopilotToken {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopilotEndpoints` is never constructed
[INFO] [stdout]   --> crates/pipit-provider/src/copilot_oauth.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct CopilotEndpoints {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project` and `location` are never read
[INFO] [stdout]   --> crates/pipit-provider/src/vertex.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VertexProvider {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     project: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 35 |     /// GCP region (e.g., us-central1).
[INFO] [stdout] 36 |     location: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-edit v0.3.9 (/opt/rustwide/workdir/crates/pipit-edit)
[INFO] [stderr]     Checking pipit-context v0.3.9 (/opt/rustwide/workdir/crates/pipit-context)
[INFO] [stderr]     Checking pipit-permissions v0.3.9 (/opt/rustwide/workdir/crates/pipit-permissions)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-permissions/src/linear_caps.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::Arc;
[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: `TokenCount`
[INFO] [stdout]  --> crates/pipit-provider/tests/token_estimation.rs:6:75
[INFO] [stdout]   |
[INFO] [stdout] 6 | use pipit_provider::types::{ContentBlock, Message, MessageMetadata, Role, TokenCount};
[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 `if` condition
[INFO] [stdout]    --> crates/pipit-permissions/src/production_classifiers.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 |         if (cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @")) {
[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] 269 -         if (cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @")) {
[INFO] [stdout] 269 +         if cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @") {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuleSource`
[INFO] [stdout]   --> crates/pipit-permissions/src/lib.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 | use rules::{PermissionRuleSet, RuleSource};
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-permissions/src/linear_caps.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::Arc;
[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 `if` condition
[INFO] [stdout]    --> crates/pipit-permissions/src/production_classifiers.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 |         if (cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @")) {
[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] 269 -         if (cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @")) {
[INFO] [stdout] 269 +         if cmd.contains("-d @") || cmd.contains("--data @") || cmd.contains("--data-binary @") {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuleSource`
[INFO] [stdout]   --> crates/pipit-permissions/src/lib.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 | use rules::{PermissionRuleSet, RuleSource};
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `known_files`
[INFO] [stdout]   --> crates/pipit-edit/src/search_replace.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn parse(&self, response: &str, known_files: &[PathBuf]) -> Result<Vec<EditOp>, EditError> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_known_files`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `known_files`
[INFO] [stdout]   --> crates/pipit-edit/src/search_replace.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn parse(&self, response: &str, known_files: &[PathBuf]) -> Result<Vec<EditOp>, EditError> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_known_files`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `turn_number` are never read
[INFO] [stdout]   --> crates/pipit-edit/src/history.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct EditGroup {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 12 |     timestamp: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     turn_number: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `after` is never read
[INFO] [stdout]   --> crates/pipit-edit/src/history.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct UndoableEdit {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     after: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ensure_token` is never used
[INFO] [stdout]    --> crates/pipit-provider/src/codex_oauth.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl CodexOAuthProvider {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     async fn ensure_token(&self) -> Result<String, ProviderError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopilotToken` is never constructed
[INFO] [stdout]   --> crates/pipit-provider/src/copilot_oauth.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct CopilotToken {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopilotEndpoints` is never constructed
[INFO] [stdout]   --> crates/pipit-provider/src/copilot_oauth.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct CopilotEndpoints {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project` and `location` are never read
[INFO] [stdout]   --> crates/pipit-provider/src/vertex.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VertexProvider {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     project: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 35 |     /// GCP region (e.g., us-central1).
[INFO] [stdout] 36 |     location: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `turn_number` are never read
[INFO] [stdout]   --> crates/pipit-edit/src/history.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct EditGroup {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 12 |     timestamp: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     turn_number: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `after` is never read
[INFO] [stdout]   --> crates/pipit-edit/src/history.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct UndoableEdit {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     after: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-tools v0.3.9 (/opt/rustwide/workdir/crates/pipit-tools)
[INFO] [stdout] warning: unused import: `ContentBlock`
[INFO] [stdout]  --> crates/pipit-context/src/budget.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use pipit_provider::{CompletionRequest, ContentBlock, ContentEvent, LlmProvider, Message};
[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/pipit-context/src/cache_microcompact.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-context/src/session_memory_compact.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-context/src/session_memory_compact.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContentBlock`
[INFO] [stdout]  --> crates/pipit-context/src/budget.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use pipit_provider::{CompletionRequest, ContentBlock, ContentEvent, LlmProvider, Message};
[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/pipit-context/src/cache_microcompact.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-context/src/session_memory_compact.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-context/src/session_memory_compact.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> crates/pipit-permissions/src/classifiers.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let target = normalized.display().to_string();
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> crates/pipit-permissions/src/classifiers.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let target = normalized.display().to_string();
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `system_prompt_tokens`
[INFO] [stdout]   --> crates/pipit-context/src/cache.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         system_prompt_tokens: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_system_prompt_tokens`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `system_prompt_tokens`
[INFO] [stdout]   --> crates/pipit-context/src/cache.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         system_prompt_tokens: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_system_prompt_tokens`
[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/pipit-context/src/cache.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut messages = vec![
[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: `call_id`
[INFO] [stdout]   --> crates/pipit-context/src/dedup.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn content_hash(call_id: &str, content: &str) -> u64 {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_id`
[INFO] [stdout]   --> crates/pipit-context/src/dedup.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn content_hash(call_id: &str, content: &str) -> u64 {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> crates/pipit-context/src/knowledge_injection.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     task_id: &str,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> crates/pipit-context/src/knowledge_injection.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     task_id: &str,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evicted`
[INFO] [stdout]   --> crates/pipit-context/src/speculative_compact.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |             let (evicted, freed) = crate::utility::apply_eviction(&mut compacted, &keep);
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evicted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evicted`
[INFO] [stdout]   --> crates/pipit-context/src/speculative_compact.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |             let (evicted, freed) = crate::utility::apply_eviction(&mut compacted, &keep);
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evicted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/analysis.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{Tool, ToolContext, ToolDisplay, ToolError, ToolResult};
[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: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/analysis.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/analysis.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/edit_file.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/extended/production_tools.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::{Tool, ToolContext, ToolDisplay, ToolError, ToolResult};
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/extended/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/glob.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/grep.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/list_directory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/multi_edit.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/read_file.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/sandbox.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/structured_output.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/subagent/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/subagent/supervisor.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use std::os::unix::process::CommandExt;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/typed/scaffold.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::{ToolContext, ToolDisplay, ToolError};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/typed/todo.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/write_file.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-tools/src/file_history.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/mcp.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-tools/src/mcp.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-tools/src/typed_output.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> crates/pipit-tools/src/typed_output.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/analysis.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{Tool, ToolContext, ToolDisplay, ToolError, ToolResult};
[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: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/analysis.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/analysis.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/edit_file.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/extended/production_tools.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::{Tool, ToolContext, ToolDisplay, ToolError, ToolResult};
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/extended/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/glob.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/grep.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/list_directory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/memory.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     use std::path::PathBuf;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/multi_edit.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/read_file.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/sandbox.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/structured_output.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/subagent/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/subagent/supervisor.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use std::os::unix::process::CommandExt;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolDisplay`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/typed/scaffold.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::{ToolContext, ToolDisplay, ToolError};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> crates/pipit-tools/src/builtins/typed/todo.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]  --> crates/pipit-tools/src/builtins/write_file.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pipit_config::ApprovalMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-tools/src/file_history.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_config::ApprovalMode`
[INFO] [stdout]   --> crates/pipit-tools/src/mcp.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use pipit_config::ApprovalMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-tools/src/mcp.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-tools/src/typed_output.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> crates/pipit-tools/src/typed_output.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             use std::os::unix::process::CommandExt;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let mut child = child_cmd
[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: `tokens`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash_security.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let tokens: Vec<&str> = lower.split_whitespace().collect();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `project_root`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash_security.rs:624:39
[INFO] [stdout]     |
[INFO] [stdout] 624 | fn check_config_writes(command: &str, project_root: &Path) -> Option<SecurityViolation> {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             use std::os::unix::process::CommandExt;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/extended/extra_tools.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         cancel: CancellationToken,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let mut child = child_cmd
[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: `tokens`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash_security.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let tokens: Vec<&str> = lower.split_whitespace().collect();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `project_root`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/bash_security.rs:624:39
[INFO] [stdout]     |
[INFO] [stdout] 624 | fn check_config_writes(command: &str, project_root: &Path) -> Option<SecurityViolation> {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/extended/extra_tools.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         cancel: CancellationToken,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/typed/scaffold.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/typed/scaffold.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language` is never read
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/extended/extra_tools.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | struct ReplSession {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 103 |     language: 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: field `search` is never read
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/multi_edit.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 257 | struct EditOp {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 261 |     search: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shellexpand_tilde` is never used
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/sandbox.rs:446:4
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn shellexpand_tilde(path: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-core v0.3.9 (/opt/rustwide/workdir/crates/pipit-core)
[INFO] [stderr]     Checking pipit-mcp v0.3.9 (/opt/rustwide/workdir/crates/pipit-mcp)
[INFO] [stderr]     Checking pipit-browser v0.3.9 (/opt/rustwide/workdir/crates/pipit-browser)
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-mcp/src/protocol/mod.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `language` is never read
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/extended/extra_tools.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | struct ReplSession {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 103 |     language: 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: field `search` is never read
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/multi_edit.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 257 | struct EditOp {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 261 |     search: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shellexpand_tilde` is never used
[INFO] [stdout]    --> crates/pipit-tools/src/builtins/sandbox.rs:446:4
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn shellexpand_tilde(path: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-browser/src/extension_bridge.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[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: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-mcp/src/protocol/mod.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-browser/src/extension_bridge.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/pipit-browser/src/visual_diff.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut before = vec![128u8; 4 * 100];
[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: unexpected `cfg` condition value: `pipit-permissions`
[INFO] [stdout]    --> crates/pipit-core/src/lib.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[cfg(feature = "pipit-permissions")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `full`, `pipit-agents`, `pipit-arch-evolution`, `pipit-bridge`, `pipit-compliance`, `pipit-env`, `pipit-evolve`, `pipit-hw-codesign`, `pipit-memory`, `pipit-perf`, `pipit-spec`, `pipit-verify`, `pipit-voice`, and `voice`
[INFO] [stdout]     = help: consider adding `pipit-permissions` 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: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-core/src/adaptive_budget.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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 imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> crates/pipit-core/src/adversarial.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CapabilitySet`
[INFO] [stdout]  --> crates/pipit-core/src/agent.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 |     CapabilityRequest, CapabilitySet, ExecutionContext, ExecutionLineage, PolicyDecision,
[INFO] [stdout]   |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionKernelConfig`
[INFO] [stdout]   --> crates/pipit-core/src/agent.rs:17:44
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::session_kernel::{SessionKernel, SessionKernelConfig};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TurnPhase`
[INFO] [stdout]   --> crates/pipit-core/src/agent.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::turn_kernel::{TurnInput, TurnKernel, TurnOutput, TurnPhase};
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 |         /// Track the last turn that produced a file mutation (forward progress).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 725 |         let mut last_mutation_turn: u32 = 0;
[INFO] [stdout]     |         ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 726 |         /// Consecutive StopReason::Error retries (abort after 3).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 727 |         let mut consecutive_error_retries: u32 = 0;
[INFO] [stdout]     |         ------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:728:9
[INFO] [stdout]     |
[INFO] [stdout] 728 |         /// Per-turn MaxTokens continuation counter (abort after 3 continuations per turn).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 729 |         let mut max_tokens_continuations: u32 = 0;
[INFO] [stdout]     |         ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:730:9
[INFO] [stdout]     |
[INFO] [stdout] 730 | /         /// Auto-continue counter for EndTurn without tool calls.
[INFO] [stdout] 731 | |         /// Prevents infinite re-prompting when the model keeps ending without tools.
[INFO] [stdout]     | |_____________________________________________________________________________________^
[INFO] [stdout] 732 |           let mut end_turn_continuations: u32 = 0;
[INFO] [stdout]     |           ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:740:9
[INFO] [stdout]     |
[INFO] [stdout] 740 |         /// Track unique files modified across the session.
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 741 |         let mut unique_files: std::collections::HashSet<String> = std::collections::HashSet::new();
[INFO] [stdout]     |         ------------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/blob_store.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-core/src/bridge_protocol.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> crates/pipit-core/src/capability.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/capability.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlobDescriptor`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::blob_store::{BlobDescriptor, BlobStore, BlobStoreError};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecoveryAction`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::reactive::{RecoveryAction, RecoveryController, RecoveryErrorKind};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompressionStats` and `ContextManager`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:18:29
[INFO] [stdout]    |
[INFO] [stdout] 18 | use pipit_context::budget::{CompressionStats, ContextManager};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Purity`, `ToolCategory`, and `builtin_semantics`
[INFO] [stdout]  --> crates/pipit-core/src/governor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Purity, SemanticClass, ToolCategory, builtin_semantics, classify_semantically,
[INFO] [stdout]   |     ^^^^^^                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionKernelConfig`
[INFO] [stdout]   --> crates/pipit-core/src/hydration.rs:12:44
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::session_kernel::{SessionKernel, SessionKernelConfig, SessionKernelError};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `kani`
[INFO] [stdout]    --> crates/pipit-core/src/kani_proofs.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(kani)]
[INFO] [stdout]     |       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(kani)");` to the top of the `build.rs`
[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: `ConfidenceReport`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::proof::{ConfidenceReport, EvidenceArtifact, ProofPacket, RealizedEdit};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompletionRequest`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use pipit_provider::{CompletionRequest, ToolCall, ToolDeclaration};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/lineage.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/mcts.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/plan_ir.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/pipit-core/src/plugin_registry.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/prompt_kernel.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WalEntry`
[INFO] [stdout]   --> crates/pipit-core/src/replay.rs:10:48
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_context::transcript::{TranscriptWal, WalEntry, WalEntryKind, WalError};
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/replay_diff.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/scheduler.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-core/src/scheduler_boundary.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutionLineage`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Capability, CapabilitySet, ExecutionLineage, PolicyDecision, ResourceScope,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, SystemTime};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-core/src/sdd_pipeline.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DenialCounts`
[INFO] [stdout]   --> crates/pipit-core/src/sdk.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::permission_ledger::{DenialCounts, PermissionDenialRecord};
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExtensionError`
[INFO] [stdout]   --> crates/pipit-core/src/sdk.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use pipit_extensions::{ExtensionError, ExtensionRunner, NoopExtensionRunner};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BudgetSummary`
[INFO] [stdout]   --> crates/pipit-core/src/sdk_compat.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::sdk::{BudgetSummary, EngineEvent, EngineOutcome};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-core/src/service_graph.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApprovalDecision`, `AutoApproveHandler`, and `DenyAllApprovalHandler`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::events::{ApprovalDecision, ApprovalHandler, AutoApproveHandler, DenyAllApprovalHandler};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^                   ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ENGINE_PROTOCOL_VERSION`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:16:71
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::sdk::{EngineConfig, EngineHandle, InitConfig, PipitEngine, ENGINE_PROTOCOL_VERSION};
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NoopExtensionRunner`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | use pipit_extensions::{ExtensionRunner, NoopExtensionRunner};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_context::budget::ContextManager`
[INFO] [stdout]   --> crates/pipit-core/src/session_kernel.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use pipit_context::budget::ContextManager;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> crates/pipit-core/src/session_kernel.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-core/src/skill_budget.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::capability::CapabilitySet`
[INFO] [stdout]  --> crates/pipit-core/src/skill_runtime.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::capability::CapabilitySet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_budget_variants`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:11:66
[INFO] [stdout]    |
[INFO] [stdout] 11 |     InclusionLevel, SkillBudgetCandidate, allocate_skill_budget, create_budget_variants,
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExecutionMode`, `SkillSandbox`, and `SkillTokenBudget`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     CompiledSkill, ExecutionMode, SkillKernel, SkillSandbox, SkillTokenBudget, SkillTrigger,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-core/src/skill_signing.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/speculative_exec.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/speculative_exec.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/two_phase.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/typed_envelope.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/unified_timeline.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pipit-permissions`
[INFO] [stdout]    --> crates/pipit-core/src/lib.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[cfg(feature = "pipit-permissions")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `full`, `pipit-agents`, `pipit-arch-evolution`, `pipit-bridge`, `pipit-compliance`, `pipit-env`, `pipit-evolve`, `pipit-hw-codesign`, `pipit-memory`, `pipit-perf`, `pipit-spec`, `pipit-verify`, `pipit-voice`, and `voice`
[INFO] [stdout]     = help: consider adding `pipit-permissions` 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: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-core/src/adaptive_budget.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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 imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> crates/pipit-core/src/adversarial.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CapabilitySet`
[INFO] [stdout]  --> crates/pipit-core/src/agent.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 |     CapabilityRequest, CapabilitySet, ExecutionContext, ExecutionLineage, PolicyDecision,
[INFO] [stdout]   |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionKernelConfig`
[INFO] [stdout]   --> crates/pipit-core/src/agent.rs:17:44
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::session_kernel::{SessionKernel, SessionKernelConfig};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TurnPhase`
[INFO] [stdout]   --> crates/pipit-core/src/agent.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::turn_kernel::{TurnInput, TurnKernel, TurnOutput, TurnPhase};
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 |         /// Track the last turn that produced a file mutation (forward progress).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 725 |         let mut last_mutation_turn: u32 = 0;
[INFO] [stdout]     |         ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 726 |         /// Consecutive StopReason::Error retries (abort after 3).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 727 |         let mut consecutive_error_retries: u32 = 0;
[INFO] [stdout]     |         ------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:728:9
[INFO] [stdout]     |
[INFO] [stdout] 728 |         /// Per-turn MaxTokens continuation counter (abort after 3 continuations per turn).
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 729 |         let mut max_tokens_continuations: u32 = 0;
[INFO] [stdout]     |         ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:730:9
[INFO] [stdout]     |
[INFO] [stdout] 730 | /         /// Auto-continue counter for EndTurn without tool calls.
[INFO] [stdout] 731 | |         /// Prevents infinite re-prompting when the model keeps ending without tools.
[INFO] [stdout]     | |_____________________________________________________________________________________^
[INFO] [stdout] 732 |           let mut end_turn_continuations: u32 = 0;
[INFO] [stdout]     |           ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> crates/pipit-core/src/agent.rs:740:9
[INFO] [stdout]     |
[INFO] [stdout] 740 |         /// Track unique files modified across the session.
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 741 |         let mut unique_files: std::collections::HashSet<String> = std::collections::HashSet::new();
[INFO] [stdout]     |         ------------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/blob_store.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/pipit-core/src/bridge_protocol.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> crates/pipit-core/src/capability.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/capability.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlobDescriptor`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::blob_store::{BlobDescriptor, BlobStore, BlobStoreError};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecoveryAction`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::reactive::{RecoveryAction, RecoveryController, RecoveryErrorKind};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompressionStats` and `ContextManager`
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:18:29
[INFO] [stdout]    |
[INFO] [stdout] 18 | use pipit_context::budget::{CompressionStats, ContextManager};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Purity`, `ToolCategory`, and `builtin_semantics`
[INFO] [stdout]  --> crates/pipit-core/src/governor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Purity, SemanticClass, ToolCategory, builtin_semantics, classify_semantically,
[INFO] [stdout]   |     ^^^^^^                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionKernelConfig`
[INFO] [stdout]   --> crates/pipit-core/src/hydration.rs:12:44
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::session_kernel::{SessionKernel, SessionKernelConfig, SessionKernelError};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `kani`
[INFO] [stdout]    --> crates/pipit-core/src/kani_proofs.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(kani)]
[INFO] [stdout]     |       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(kani)");` to the top of the `build.rs`
[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: `ConfidenceReport`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::proof::{ConfidenceReport, EvidenceArtifact, ProofPacket, RealizedEdit};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompletionRequest`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use pipit_provider::{CompletionRequest, ToolCall, ToolDeclaration};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-core/src/kernel.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/lineage.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/mcts.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/plan_ir.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/pipit-core/src/plugin_registry.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/prompt_kernel.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WalEntry`
[INFO] [stdout]   --> crates/pipit-core/src/replay.rs:10:48
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_context::transcript::{TranscriptWal, WalEntry, WalEntryKind, WalError};
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/replay_diff.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/scheduler.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-core/src/scheduler_boundary.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutionLineage`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Capability, CapabilitySet, ExecutionLineage, PolicyDecision, ResourceScope,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> crates/pipit-core/src/scoped_capability.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, SystemTime};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-core/src/sdd_pipeline.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DenialCounts`
[INFO] [stdout]   --> crates/pipit-core/src/sdk.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::permission_ledger::{DenialCounts, PermissionDenialRecord};
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExtensionError`
[INFO] [stdout]   --> crates/pipit-core/src/sdk.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use pipit_extensions::{ExtensionError, ExtensionRunner, NoopExtensionRunner};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-core/src/service_graph.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApprovalDecision`, `AutoApproveHandler`, and `DenyAllApprovalHandler`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::events::{ApprovalDecision, ApprovalHandler, AutoApproveHandler, DenyAllApprovalHandler};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^                   ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ENGINE_PROTOCOL_VERSION`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:16:71
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::sdk::{EngineConfig, EngineHandle, InitConfig, PipitEngine, ENGINE_PROTOCOL_VERSION};
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NoopExtensionRunner`
[INFO] [stdout]   --> crates/pipit-core/src/session_builder.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | use pipit_extensions::{ExtensionRunner, NoopExtensionRunner};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipit_context::budget::ContextManager`
[INFO] [stdout]   --> crates/pipit-core/src/session_kernel.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use pipit_context::budget::ContextManager;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> crates/pipit-core/src/session_kernel.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-core/src/skill_budget.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::capability::CapabilitySet`
[INFO] [stdout]  --> crates/pipit-core/src/skill_runtime.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::capability::CapabilitySet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_budget_variants`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:11:66
[INFO] [stdout]    |
[INFO] [stdout] 11 |     InclusionLevel, SkillBudgetCandidate, allocate_skill_budget, create_budget_variants,
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillSandbox` and `SkillTokenBudget`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:14:48
[INFO] [stdout]    |
[INFO] [stdout] 14 |     CompiledSkill, ExecutionMode, SkillKernel, SkillSandbox, SkillTokenBudget, SkillTrigger,
[INFO] [stdout]    |                                                ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/skill_runtime.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> crates/pipit-core/src/skill_signing.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/speculative_exec.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-core/src/speculative_exec.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/two_phase.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/src/typed_envelope.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-core/src/unified_timeline.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files_so_far`
[INFO] [stdout]    --> crates/pipit-core/src/adaptive_budget.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let files_so_far = signals.total_unique_files;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_files_so_far`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end_turn_continuations` is never read
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:1239:21
[INFO] [stdout]      |
[INFO] [stdout] 1239 |                     end_turn_continuations = 0;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_tool_calls` is never read
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:2032:45
[INFO] [stdout]      |
[INFO] [stdout] 2032 | ...                   has_tool_calls = true;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:2343:22
[INFO] [stdout]      |
[INFO] [stdout] 2343 |             let Some(tool) = self.tools.get(&call.tool_name) else {
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `blob_store`
[INFO] [stdout]    --> crates/pipit-core/src/continuation.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         blob_store: Option<&mut BlobStore>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_blob_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files_so_far`
[INFO] [stdout]    --> crates/pipit-core/src/adaptive_budget.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let files_so_far = signals.total_unique_files;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_files_so_far`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_cost` is never read
[INFO] [stdout]    --> crates/pipit-core/src/export.rs:52:26
[INFO] [stdout]     |
[INFO] [stdout]  52 |     let mut total_cost = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 161 |                 total_cost = *cost;
[INFO] [stdout]     |                 ------------------ `total_cost` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end_turn_continuations` is never read
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:1239:21
[INFO] [stdout]      |
[INFO] [stdout] 1239 |                     end_turn_continuations = 0;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_tool_calls` is never read
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:2032:45
[INFO] [stdout]      |
[INFO] [stdout] 2032 | ...                   has_tool_calls = true;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]     --> crates/pipit-core/src/agent.rs:2343:22
[INFO] [stdout]      |
[INFO] [stdout] 2343 |             let Some(tool) = self.tools.get(&call.tool_name) else {
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `blob_store`
[INFO] [stdout]    --> crates/pipit-core/src/continuation.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         blob_store: Option<&mut BlobStore>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_blob_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pi`
[INFO] [stdout]    --> crates/pipit-core/src/plan_ir.rs:264:14
[INFO] [stdout]     |
[INFO] [stdout] 264 |         for (pi, phase) in self.phases.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_pi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mentions_website`
[INFO] [stdout]    --> crates/pipit-core/src/planner.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mentions_website = statement.contains("website")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mentions_website`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_cost` is never read
[INFO] [stdout]    --> crates/pipit-core/src/export.rs:52:26
[INFO] [stdout]     |
[INFO] [stdout]  52 |     let mut total_cost = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 161 |                 total_cost = *cost;
[INFO] [stdout]     |                 ------------------ `total_cost` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/pipit-core/src/replay_diff.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, (exp, act)) in expected.tool_calls.iter().zip(&actual.tool_calls).enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:465:9
[INFO] [stdout]     |
[INFO] [stdout] 465 |         message: String,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |         let cancel = self.cancel.clone();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_prefix`
[INFO] [stdout]    --> crates/pipit-core/src/skill_activation.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let dir_prefix = if let Some(stripped) = pattern.strip_prefix("**/") {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/pipit-core/src/skill_budget.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     name: &str,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:411:21
[INFO] [stdout]     |
[INFO] [stdout] 411 |                 let from = self.phase;
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_desc`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:650:21
[INFO] [stdout]     |
[INFO] [stdout] 650 |                 let input_desc = format!("{:?}", "unknown");
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_desc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pi`
[INFO] [stdout]    --> crates/pipit-core/src/plan_ir.rs:264:14
[INFO] [stdout]     |
[INFO] [stdout] 264 |         for (pi, phase) in self.phases.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_pi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mentions_website`
[INFO] [stdout]    --> crates/pipit-core/src/planner.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mentions_website = statement.contains("website")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mentions_website`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recovery` is never read
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ContinuationController {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 81 |     recovery: RecoveryController,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session_start` is never read
[INFO] [stdout]   --> crates/pipit-core/src/file_provenance.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FileProvenance {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 74 |     files: HashMap<PathBuf, FileActivity>,
[INFO] [stdout] 75 |     session_start: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> crates/pipit-core/src/ledger.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct SessionLedger {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 257 |     /// Path to the ledger file.
[INFO] [stdout] 258 |     path: PathBuf,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now_ms` is never used
[INFO] [stdout]    --> crates/pipit-core/src/plan_ir.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn now_ms() -> u64 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model_id` is never read
[INFO] [stdout]   --> crates/pipit-core/src/planner_llm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct LlmPlanner {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 24 |     provider: Arc<dyn LlmProvider>,
[INFO] [stdout] 25 |     model_id: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_amplification_threshold` is never read
[INFO] [stdout]    --> crates/pipit-core/src/query_profiler.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct TelemetryController {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     tool_amplification_threshold: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `steering_tx`, `approval_decision_tx`, and `approval_request_rx` are never read
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct PipitEngine {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     steering_tx: mpsc::Sender<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     approval_decision_tx: mpsc::Sender<(String, ApprovalDecision)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 299 |     approval_request_rx: mpsc::Receiver<(String, String, serde_json::Value)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEGAL_TRANSITIONS` is never used
[INFO] [stdout]   --> crates/pipit-core/src/turn_kernel.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | const LEGAL_TRANSITIONS: &[(TurnPhase, &str, TurnPhase)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_legal_transition` is never used
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn is_legal_transition(from: TurnPhase, input_kind: &str) -> Option<TurnPhase> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl TurnInput {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 221 |     /// The transition-table key for this input.
[INFO] [stdout] 222 |     fn kind(&self) -> &str {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model_id` is never read
[INFO] [stdout]   --> crates/pipit-core/src/verifier_llm.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LlmVerifier {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 28 |     provider: Arc<dyn LlmProvider>,
[INFO] [stdout] 29 |     model_id: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repo_root` is never read
[INFO] [stdout]   --> crates/pipit-core/src/worktree.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct WorktreeHandle {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     repo_root: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/pipit-core/src/replay_diff.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, (exp, act)) in expected.tool_calls.iter().zip(&actual.tool_calls).enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/pipit-core/src/replay_diff.rs:316:13
[INFO] [stdout]     |
[INFO] [stdout] 316 |         let mut modified_turn = TraceTurn {
[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: `message`
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:465:9
[INFO] [stdout]     |
[INFO] [stdout] 465 |         message: String,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |         let cancel = self.cancel.clone();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_prefix`
[INFO] [stdout]    --> crates/pipit-core/src/skill_activation.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let dir_prefix = if let Some(stripped) = pattern.strip_prefix("**/") {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/pipit-core/src/skill_budget.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     name: &str,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-rules v0.3.9 (/opt/rustwide/workdir/crates/pipit-rules)
[INFO] [stderr]     Checking pipit-io v0.3.9 (/opt/rustwide/workdir/crates/pipit-io)
[INFO] [stderr]     Checking pipit-bench v0.3.9 (/opt/rustwide/workdir/crates/pipit-bench)
[INFO] [stderr]     Checking pipit-daemon v0.3.9 (/opt/rustwide/workdir/crates/pipit-daemon)
[INFO] [stdout] warning: unused imports: `HydrationStage`, `MandatoryBoundary`, and `hydrate_session`
[INFO] [stdout]   --> crates/pipit-core/tests/crash_recovery_conformance.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 | use pipit_core::hydration::{HydrationStage, MandatoryBoundary, hydrate_session};
[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: `pipit_core::ledger::SessionEvent`
[INFO] [stdout]   --> crates/pipit-core/tests/crash_recovery_conformance.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use pipit_core::ledger::SessionEvent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionKernelError`
[INFO] [stdout]   --> crates/pipit-core/tests/crash_recovery_conformance.rs:14:70
[INFO] [stdout]    |
[INFO] [stdout] 14 | use pipit_core::session_kernel::{SessionKernel, SessionKernelConfig, SessionKernelError};
[INFO] [stdout]    |                                                                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/pipit-core/tests/crash_recovery_conformance.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/pipit-core/tests/recovery_integration.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut ctrl = RecoveryController::new();
[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: `ctrl`
[INFO] [stdout]    --> crates/pipit-core/tests/recovery_integration.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut ctrl = RecoveryController::new();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctrl`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VerificationKind`
[INFO] [stdout]  --> crates/pipit-core/tests/benchmark_planner.rs:8:72
[INFO] [stdout]   |
[INFO] [stdout] 8 | use pipit_core::proof::{ConfidenceReport, EvidenceArtifact, Objective, VerificationKind};
[INFO] [stdout]   |                                                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `messages`
[INFO] [stdout]   --> crates/pipit-core/tests/crash_recovery_conformance.rs:56:23
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let (event_count, messages) = recovered.resume().unwrap();
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_messages`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `messages`
[INFO] [stdout]    --> crates/pipit-core/tests/crash_recovery_conformance.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let (event_count, messages) = recovered.resume().unwrap();
[INFO] [stdout]     |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_messages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id2`
[INFO] [stdout]    --> crates/pipit-core/src/speculative_exec.rs:304:13
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let id2 = exec.register_candidate("b").unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_id2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TurnSnapshot`
[INFO] [stdout]   --> crates/pipit-core/tests/turn_fsm_conformance.rs:21:77
[INFO] [stdout]    |
[INFO] [stdout] 21 | use pipit_core::turn_kernel::{TurnInput, TurnKernel, TurnOutput, TurnPhase, TurnSnapshot};
[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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-bench/src/history.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | 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: `PathBuf`
[INFO] [stdout]   --> crates/pipit-bench/src/lib.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecoveryErrorKind` and `RecoveryState`
[INFO] [stdout]   --> crates/pipit-core/tests/property_tests.rs:16:64
[INFO] [stdout]    |
[INFO] [stdout] 16 | use pipit_core::reactive::{RecoveryAction, RecoveryController, RecoveryErrorKind, RecoveryState};
[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: `TurnOutput`
[INFO] [stdout]   --> crates/pipit-core/tests/property_tests.rs:17:54
[INFO] [stdout]    |
[INFO] [stdout] 17 | use pipit_core::turn_kernel::{TurnInput, TurnKernel, TurnOutput, TurnPhase};
[INFO] [stdout]    |                                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> crates/pipit-bench/src/history.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | 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: `PathBuf`
[INFO] [stdout]   --> crates/pipit-bench/src/lib.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]    --> crates/pipit-core/src/telemetry_facade.rs:732:13
[INFO] [stdout]     |
[INFO] [stdout] 732 |         let dir = tempfile::tempdir().unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `terminal_phase` is assigned to, but never used
[INFO] [stdout]   --> crates/pipit-core/tests/property_tests.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut terminal_phase = None;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_terminal_phase` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outputs`
[INFO] [stdout]   --> crates/pipit-core/tests/property_tests.rs:94:29
[INFO] [stdout]    |
[INFO] [stdout] 94 |                         let outputs = kernel.transition(input);
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `terminal_phase` is never read
[INFO] [stdout]    --> crates/pipit-core/tests/property_tests.rs:87:25
[INFO] [stdout]     |
[INFO] [stdout]  87 |                         terminal_phase = None;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 109 |                 terminal_phase = Some(kernel.phase);
[INFO] [stdout]     |                 ----------------------------------- `terminal_phase` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `terminal_phase` is never read
[INFO] [stdout]    --> crates/pipit-core/tests/property_tests.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 terminal_phase = Some(kernel.phase);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `done_turn` is never used
[INFO] [stdout]   --> crates/pipit-core/tests/adaptive_budget_integration.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn done_turn() -> TurnSignals {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlobSet`
[INFO] [stdout]  --> crates/pipit-rules/src/compile.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use globset::{Glob, GlobSet, GlobSetBuilder};
[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: `RuleKind`
[INFO] [stdout]  --> crates/pipit-rules/src/conflict.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::rule::{Rule, RuleId, RuleKind};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrantDeclaration`
[INFO] [stdout]  --> crates/pipit-rules/src/loader.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     GrantDeclaration, Rule, RuleFrontmatter, RuleId, RuleKind, RuleTrustTier,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rule::RuleId`
[INFO] [stdout]  --> crates/pipit-rules/src/watcher.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rule::RuleId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outputs`
[INFO] [stdout]    --> crates/pipit-core/tests/turn_fsm_conformance.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let outputs = kernel.transition(TurnInput::Cancelled);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outputs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlobSet`
[INFO] [stdout]  --> crates/pipit-rules/src/compile.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use globset::{Glob, GlobSet, GlobSetBuilder};
[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: `RuleKind`
[INFO] [stdout]  --> crates/pipit-rules/src/conflict.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::rule::{Rule, RuleId, RuleKind};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrantDeclaration`
[INFO] [stdout]  --> crates/pipit-rules/src/loader.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     GrantDeclaration, Rule, RuleFrontmatter, RuleId, RuleKind, RuleTrustTier,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rule::RuleId`
[INFO] [stdout]  --> crates/pipit-rules/src/watcher.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rule::RuleId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wrap`
[INFO] [stdout]  --> crates/pipit-io/src/components/data.rs:8:77
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Block, Borders, Cell, List, ListItem, Paragraph, Row, Sparkline, Table, Wrap,
[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: `Wrap`
[INFO] [stdout]  --> crates/pipit-io/src/components/feedback.rs:7:58
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, Gauge, Paragraph, Wrap};
[INFO] [stdout]   |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> crates/pipit-io/src/components/input.rs:7:63
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph};
[INFO] [stdout]   |                                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LinesWithEndings`
[INFO] [stdout]  --> crates/pipit-io/src/render.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use syntect::util::{LinesWithEndings, as_24_bit_terminal_escaped};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Theme`
[INFO] [stdout]   --> crates/pipit-io/src/render_engine.rs:12:36
[INFO] [stdout]    |
[INFO] [stdout] 12 | use syntect::highlighting::{Style, Theme, ThemeSet};
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:411:21
[INFO] [stdout]     |
[INFO] [stdout] 411 |                 let from = self.phase;
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_desc`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:650:21
[INFO] [stdout]     |
[INFO] [stdout] 650 |                 let input_desc = format!("{:?}", "unknown");
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_desc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outputs`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:735:13
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let outputs = kernel.transition(TurnInput::RequestSent);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outputs`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:739:13
[INFO] [stdout]     |
[INFO] [stdout] 739 |         let outputs = kernel.transition(TurnInput::StreamStarted);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outputs`
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:766:13
[INFO] [stdout]     |
[INFO] [stdout] 766 |         let outputs = kernel.transition(TurnInput::ToolCallsReceived { call_count: 2 });
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wrap`
[INFO] [stdout]  --> crates/pipit-io/src/components/data.rs:8:77
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Block, Borders, Cell, List, ListItem, Paragraph, Row, Sparkline, Table, Wrap,
[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: `Wrap`
[INFO] [stdout]  --> crates/pipit-io/src/components/feedback.rs:7:58
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, Gauge, Paragraph, Wrap};
[INFO] [stdout]   |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> crates/pipit-io/src/components/input.rs:7:63
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph};
[INFO] [stdout]   |                                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LinesWithEndings`
[INFO] [stdout]  --> crates/pipit-io/src/render.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use syntect::util::{LinesWithEndings, as_24_bit_terminal_escaped};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Theme`
[INFO] [stdout]   --> crates/pipit-io/src/render_engine.rs:12:36
[INFO] [stdout]    |
[INFO] [stdout] 12 | use syntect::highlighting::{Style, Theme, ThemeSet};
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/slack.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | 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: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/slack.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/config.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]  --> crates/pipit-daemon/src/forge_github.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DependencyHealthReport`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use pipit_intelligence::{DependencyHealthReport, analyze_dependencies};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WorkerHandle` and `WorkerId`
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::worker::{WorkerHandle, WorkerId, WorkerState, WorkerStatus};
[INFO] [stdout]    |                     ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> crates/pipit-daemon/src/reporter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChannelId`
[INFO] [stdout]   --> crates/pipit-daemon/src/reporter.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_channel::{ChannelId, ChannelRegistry, MessageOrigin, TaskUpdate, TaskUpdateKind};
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/runner.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> crates/pipit-daemon/src/server.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::Stream`
[INFO] [stdout]   --> crates/pipit-daemon/src/server.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use futures::stream::Stream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TaskUpdate`
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:24:61
[INFO] [stdout]    |
[INFO] [stdout] 24 | use pipit_channel::{NormalizedTask, TaskRecord, TaskStatus, TaskUpdate, TaskUpdateKind};
[INFO] [stdout]    |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorkerMessage`
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::worker::{WorkerHandle, WorkerMessage};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recovery` is never read
[INFO] [stdout]   --> crates/pipit-core/src/continuation.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ContinuationController {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 81 |     recovery: RecoveryController,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session_start` is never read
[INFO] [stdout]   --> crates/pipit-core/src/file_provenance.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FileProvenance {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 74 |     files: HashMap<PathBuf, FileActivity>,
[INFO] [stdout] 75 |     session_start: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> crates/pipit-core/src/ledger.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct SessionLedger {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 257 |     /// Path to the ledger file.
[INFO] [stdout] 258 |     path: PathBuf,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now_ms` is never used
[INFO] [stdout]    --> crates/pipit-core/src/plan_ir.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn now_ms() -> u64 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model_id` is never read
[INFO] [stdout]   --> crates/pipit-core/src/planner_llm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct LlmPlanner {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 24 |     provider: Arc<dyn LlmProvider>,
[INFO] [stdout] 25 |     model_id: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_amplification_threshold` is never read
[INFO] [stdout]    --> crates/pipit-core/src/query_profiler.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct TelemetryController {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     tool_amplification_threshold: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `steering_tx`, `approval_decision_tx`, and `approval_request_rx` are never read
[INFO] [stdout]    --> crates/pipit-core/src/sdk.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct PipitEngine {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     steering_tx: mpsc::Sender<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     approval_decision_tx: mpsc::Sender<(String, ApprovalDecision)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 299 |     approval_request_rx: mpsc::Receiver<(String, String, serde_json::Value)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEGAL_TRANSITIONS` is never used
[INFO] [stdout]   --> crates/pipit-core/src/turn_kernel.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | const LEGAL_TRANSITIONS: &[(TurnPhase, &str, TurnPhase)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_legal_transition` is never used
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn is_legal_transition(from: TurnPhase, input_kind: &str) -> Option<TurnPhase> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> crates/pipit-core/src/turn_kernel.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl TurnInput {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 221 |     /// The transition-table key for this input.
[INFO] [stdout] 222 |     fn kind(&self) -> &str {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model_id` is never read
[INFO] [stdout]   --> crates/pipit-core/src/verifier_llm.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LlmVerifier {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 28 |     provider: Arc<dyn LlmProvider>,
[INFO] [stdout] 29 |     model_id: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repo_root` is never read
[INFO] [stdout]   --> crates/pipit-core/src/worktree.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct WorktreeHandle {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     repo_root: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/slack.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | 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: `std::sync::Arc`
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/slack.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/config.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]  --> crates/pipit-daemon/src/forge_github.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DependencyHealthReport`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use pipit_intelligence::{DependencyHealthReport, analyze_dependencies};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WorkerHandle` and `WorkerId`
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::worker::{WorkerHandle, WorkerId, WorkerState, WorkerStatus};
[INFO] [stdout]    |                     ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> crates/pipit-daemon/src/reporter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChannelId`
[INFO] [stdout]   --> crates/pipit-daemon/src/reporter.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipit_channel::{ChannelId, ChannelRegistry, MessageOrigin, TaskUpdate, TaskUpdateKind};
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/pipit-daemon/src/runner.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> crates/pipit-daemon/src/server.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::Stream`
[INFO] [stdout]   --> crates/pipit-daemon/src/server.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use futures::stream::Stream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TaskUpdate`
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:24:61
[INFO] [stdout]    |
[INFO] [stdout] 24 | use pipit_channel::{NormalizedTask, TaskRecord, TaskStatus, TaskUpdate, TaskUpdateKind};
[INFO] [stdout]    |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorkerMessage`
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::worker::{WorkerHandle, WorkerMessage};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> crates/pipit-core/src/telemetry_facade.rs:656:17
[INFO] [stdout]     |
[INFO] [stdout] 656 |         assert!(span.duration_ms().unwrap() >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wc`
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:2622:68
[INFO] [stdout]      |
[INFO] [stdout] 2622 | fn draw_task_mode(frame: &mut Frame, area: Rect, state: &TuiState, wc: WidthClass) {
[INFO] [stdout]      |                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_wc`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuleTrustTier`
[INFO] [stdout]  --> crates/pipit-rules/tests/rules_integration_tests.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pipit_rules::rule::{RuleId, RuleKind, RuleTrustTier};
[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: `RuleRegistry`
[INFO] [stdout]  --> crates/pipit-rules/tests/rules_integration_tests.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use pipit_rules::{RuleLoader, RuleRegistry};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `char_count`
[INFO] [stdout]    --> crates/pipit-io/src/composer.rs:316:62
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn add_pasted_text_attachment(&mut self, path: &str, char_count: usize) {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_char_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `border_title`
[INFO] [stdout]     --> crates/pipit-io/src/composer.rs:1162:24
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     let (border_color, border_title) = if composer.is_empty() {
[INFO] [stdout]      |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_border_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `motion`
[INFO] [stdout]    --> crates/pipit-io/src/editor_integration.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 motion,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `motion: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wc`
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:2622:68
[INFO] [stdout]      |
[INFO] [stdout] 2622 | fn draw_task_mode(frame: &mut Frame, area: Rect, state: &TuiState, wc: WidthClass) {
[INFO] [stdout]      |                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_wc`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `in_code_block` is never read
[INFO] [stdout]    --> crates/pipit-io/src/app.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub struct TuiState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 327 |     in_code_block: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TuiState` 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: function `draw_task_activity` is never used
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:2886:4
[INFO] [stdout]      |
[INFO] [stdout] 2886 | fn draw_task_activity(frame: &mut Frame, area: Rect, state: &TuiState) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_time_ago` is never used
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:4453:4
[INFO] [stdout]      |
[INFO] [stdout] 4453 | fn format_time_ago(instant: std::time::Instant) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `in_approval_view` is never read
[INFO] [stdout]    --> crates/pipit-io/src/editor_integration.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct EditorController {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 114 |     in_approval_view: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking pipit-cli v0.3.9 (/opt/rustwide/workdir/crates/pipit-cli)
[INFO] [stdout] warning: unused variable: `char_count`
[INFO] [stdout]    --> crates/pipit-io/src/composer.rs:316:62
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn add_pasted_text_attachment(&mut self, path: &str, char_count: usize) {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_char_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `border_title`
[INFO] [stdout]     --> crates/pipit-io/src/composer.rs:1162:24
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     let (border_color, border_title) = if composer.is_empty() {
[INFO] [stdout]      |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_border_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `motion`
[INFO] [stdout]    --> crates/pipit-io/src/editor_integration.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 motion,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `motion: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/pipit-cli/src/init.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::Path;
[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: `PathBuf` and `Path`
[INFO] [stdout]  --> crates/pipit-cli/src/persistence_v2.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> crates/pipit-cli/src/plugin.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         use std::io::Write;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanningState`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 | use pipit_core::{AgentLoop, AgentLoopConfig, AgentOutcome, PlanningState};
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `prompt_builder::build_system_prompt`: use build_composed_prompt() which routes through the typed prompt kernel
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:151:39
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let (full_prompt, boot_listing) = build_system_prompt(
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `in_code_block` is never read
[INFO] [stdout]    --> crates/pipit-io/src/app.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub struct TuiState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 327 |     in_code_block: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TuiState` 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: function `draw_task_activity` is never used
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:2886:4
[INFO] [stdout]      |
[INFO] [stdout] 2886 | fn draw_task_activity(frame: &mut Frame, area: Rect, state: &TuiState) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_time_ago` is never used
[INFO] [stdout]     --> crates/pipit-io/src/app.rs:4453:4
[INFO] [stdout]      |
[INFO] [stdout] 4453 | fn format_time_ago(instant: std::time::Instant) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `in_approval_view` is never read
[INFO] [stdout]    --> crates/pipit-io/src/editor_integration.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct EditorController {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 114 |     in_approval_view: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> crates/pipit-cli/src/init.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::Path;
[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: `PathBuf` and `Path`
[INFO] [stdout]  --> crates/pipit-cli/src/persistence_v2.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> crates/pipit-cli/src/plugin.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         use std::io::Write;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanningState`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 | use pipit_core::{AgentLoop, AgentLoopConfig, AgentOutcome, PlanningState};
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `prompt_builder::build_system_prompt`: use build_composed_prompt() which routes through the typed prompt kernel
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:151:39
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let (full_prompt, boot_listing) = build_system_prompt(
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/pipit-cli/src/plugin.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut hasher = sha2_hash(&bytes);
[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/pipit-cli/src/plugin.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut hasher = sha2_hash(&bytes);
[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: `author_id`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:576:13
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let author_id: u64 = author
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_author_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: `sink`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:766:27
[INFO] [stdout]     |
[INFO] [stdout] 766 |     async fn start(&self, sink: TaskSink) -> Result<(), ChannelError> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::CommandFactory`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use clap::CommandFactory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use tokio::io::AsyncReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::CommandFactory`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use clap::CommandFactory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]   --> crates/pipit-cli/src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use tokio::io::AsyncReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/slack.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |         let cancel = self.cancel.clone();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_text`
[INFO] [stdout]     --> crates/pipit-cli/src/tui.rs:1959:39
[INFO] [stdout]      |
[INFO] [stdout] 1959 |         AgentEvent::ContentComplete { full_text } => {
[INFO] [stdout]      |                                       ^^^^^^^^^ help: try ignoring the field: `full_text: _`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config_content`
[INFO] [stdout]    --> crates/pipit-cli/src/web_ui.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let config_content = std::fs::read_to_string(&config_path).unwrap_or_default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sink`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:381:27
[INFO] [stdout]     |
[INFO] [stdout] 381 |     async fn start(&self, sink: TaskSink) -> Result<(), ChannelError> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_text`
[INFO] [stdout]     --> crates/pipit-cli/src/tui.rs:1959:39
[INFO] [stdout]      |
[INFO] [stdout] 1959 |         AgentEvent::ContentComplete { full_text } => {
[INFO] [stdout]      |                                       ^^^^^^^^^ help: try ignoring the field: `full_text: _`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config_content`
[INFO] [stdout]    --> crates/pipit-cli/src/web_ui.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let config_content = std::fs::read_to_string(&config_path).unwrap_or_default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author_id`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:576:13
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let author_id: u64 = author
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_author_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: `sink`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:766:27
[INFO] [stdout]     |
[INFO] [stdout] 766 |     async fn start(&self, sink: TaskSink) -> Result<(), ChannelError> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch_name`
[INFO] [stdout]   --> crates/pipit-daemon/src/cron.rs:53:88
[INFO] [stdout]    |
[INFO] [stdout] 53 |                     let notify_origin = sched_config.notify_channel.as_ref().and_then(|ch_name| {
[INFO] [stdout]    |                                                                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ch_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channels`
[INFO] [stdout]   --> crates/pipit-daemon/src/cron.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         channels: &HashMap<String, ChannelConfig>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 |     store: Arc<DaemonStore>,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt_result`
[INFO] [stdout]     --> crates/pipit-cli/src/main.rs:3132:37
[INFO] [stdout]      |
[INFO] [stdout] 3132 | ...                   let rt_result = tokio::runtime::Handle::try_current();
[INFO] [stdout]      |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rt_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancel`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/slack.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |         let cancel = self.cancel.clone();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt_result`
[INFO] [stdout]     --> crates/pipit-cli/src/main.rs:3132:37
[INFO] [stdout]      |
[INFO] [stdout] 3132 | ...                   let rt_result = tokio::runtime::Handle::try_current();
[INFO] [stdout]      |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rt_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `branch_name`
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:225:33
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     if let Some(ref branch_name) = branch {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sink`
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:381:27
[INFO] [stdout]     |
[INFO] [stdout] 381 |     async fn start(&self, sink: TaskSink) -> Result<(), ChannelError> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `capability_grants`
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let capability_grants = agent_lock.config.capability_grants.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capability_grants`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_log`
[INFO] [stdout]    --> crates/pipit-daemon/src/reporter.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 |             TaskUpdateKind::Progress { text, tool_log } => {
[INFO] [stdout]     |                                              ^^^^^^^^ help: try ignoring the field: `tool_log: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cron_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let cron_handle = cron.spawn();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cron_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let server_handle = server::spawn_server(
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let queue_handle = tokio::spawn(async move {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> crates/pipit-daemon/src/server.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let task_id = task.task_id.clone();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_SCHEMA_VERSION` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CURRENT_SCHEMA_VERSION: u32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Migration` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Migration {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIGRATIONS` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MIGRATIONS: &[Migration] = &[
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrate_session` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn migrate_session(mut value: Value) -> Result<Value, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stamp_version` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn stamp_version(value: &mut Value) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionLock` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SessionLock {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `acquire` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/persistence.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl SessionLock {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn acquire(project_root: &Path) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_SCHEMA_VERSION` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const CURRENT_SCHEMA_VERSION: u32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionHeader` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SessionHeader {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistedSession` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PersistedSession {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistedMessage` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct PersistedMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistedToolCall` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PersistedToolCall {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenUsage` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct TokenUsage {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrate` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/persistence_v2.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn migrate(mut session: serde_json::Value) -> Result<serde_json::Value, String> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fork_session` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/persistence_v2.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn fork_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportFormat` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/persistence_v2.rs:149:10
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub enum ExportFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_session` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/persistence_v2.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn export_session(session: &PersistedSession, format: ExportFormat) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `author` is never read
[INFO] [stdout]    --> crates/pipit-cli/src/plugin.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | struct RegistryEntry {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 198 |     author: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RegistryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_system_prompt` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/prompt_builder.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn build_system_prompt(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_prompt_with_cache_sections` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn build_prompt_with_cache_sections(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_composed_prompt` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub fn build_composed_prompt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_cache_breakpoints` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn compute_cache_breakpoints(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `looks_like_internal_paragraph` is never used
[INFO] [stdout]     --> crates/pipit-cli/src/tui.rs:1694:4
[INFO] [stdout]      |
[INFO] [stdout] 1694 | fn looks_like_internal_paragraph(paragraph: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_internal_paragraphs` is never used
[INFO] [stdout]     --> crates/pipit-cli/src/tui.rs:1734:4
[INFO] [stdout]      |
[INFO] [stdout] 1734 | fn strip_internal_paragraphs(text: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_response_markdown` is never used
[INFO] [stdout]     --> crates/pipit-cli/src/tui.rs:1761:4
[INFO] [stdout]      |
[INFO] [stdout] 1761 | fn normalize_response_markdown(text: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cors` is never read
[INFO] [stdout]   --> crates/pipit-cli/src/web_ui.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct WebUiConfig {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub cors: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WebUiConfig` 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 `load_rules` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl WorkflowAssets {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn load_rules(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model`, `tools`, and `path` are never read
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct AgentDefinition {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub model: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 364 |     pub tools: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 365 |     pub path: PathBuf,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgentDefinition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `md_files_recursive` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:457:4
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn md_files_recursive(dir: &Path) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCORD_GATEWAY_URL` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/discord.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const DISCORD_GATEWAY_URL: &str = "wss://gateway.discord.gg/?v=10&encoding=json";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/discord.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct DiscordChannel {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 34 |     /// Bot's own user ID (discovered on READY).
[INFO] [stdout] 35 |     bot_user_id: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     /// Set of configured project names for prefix parsing.
[INFO] [stdout] 37 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     /// Default project name when no prefix is given.
[INFO] [stdout] 39 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     /// Last known gateway sequence number for resume/heartbeat.
[INFO] [stdout] 41 |     sequence: Arc<Mutex<Option<u64>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 42 |     /// Session ID for RESUME (from READY event).
[INFO] [stdout] 43 |     session_id: Mutex<Option<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 44 |     /// Resume gateway URL (from READY event).
[INFO] [stdout] 45 |     resume_gateway_url: Mutex<Option<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Heartbeat ACK tracking — true if we're waiting for an ACK.
[INFO] [stdout] 47 |     awaiting_ack: Arc<std::sync::atomic::AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `edit_message`, `gateway_loop`, `handle_gateway_event_v2`, `handle_message_create`, `parse_project_prefix`, and `handle_command` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:187:14
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl DiscordChannel {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     async fn edit_message(&self, channel_id: u64, message_id: u64, content: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     async fn gateway_loop(&self, sink: TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     async fn handle_gateway_event_v2(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 567 |     async fn handle_message_create(&self, d: &serde_json::Value, sink: &TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     fn parse_project_prefix(&self, text: &str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     async fn handle_command(&self, text: &str, channel_id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GatewayAction` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:932:6
[INFO] [stdout]     |
[INFO] [stdout] 932 | enum GatewayAction {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GatewayEvent` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:940:8
[INFO] [stdout]     |
[INFO] [stdout] 940 | struct GatewayEvent {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `channel_id`, and `content` are never read
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:949:5
[INFO] [stdout]     |
[INFO] [stdout] 948 | struct DiscordMessage {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 949 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 950 |     channel_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 951 |     content: Option<String>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DiscordMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_message` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/slack.rs:135:14
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl SlackChannel {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     async fn update_message(&self, channel: &str, ts: &str, text: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POLL_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/telegram.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const POLL_TIMEOUT_SECS: u64 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel`, `project_names`, and `default_project` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/telegram.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct TelegramChannel {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     /// Default project name when no prefix is given.
[INFO] [stdout] 36 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poll_loop`, `is_allowed_user`, `handle_message`, `parse_project_prefix`, `handle_command`, and `send_markdown` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:158:14
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl TelegramChannel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn poll_loop(&self, sink: TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn is_allowed_user(&self, user_id: Option<i64>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     async fn handle_message(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn parse_project_prefix<'a>(&self, text: &'a str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     async fn handle_command(&self, text: &str, chat_id: i64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     async fn send_markdown(&self, chat_id: i64, text: &str) -> Result<TelegramMessage> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TelegramUpdate` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | struct TelegramUpdate {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel`, `project_names`, and `default_project` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/webhook.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct WebhookChannel {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 29 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 30 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiFailurePayload` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CiFailurePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiFixResult` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CiFixResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_failure` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn classify_failure(log: &str) -> FailureKind {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FailureKind` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum FailureKind {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fix_prompt` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl FailureKind {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 88 |     /// Generate the agent prompt for fixing this type of failure.
[INFO] [stdout] 89 |     pub fn fix_prompt(&self, log: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_fix_worktree` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/ci_fix.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn prepare_fix_worktree(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_and_push_fix` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/ci_fix.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn commit_and_push_fix(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GitHubForgeAdapter` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GitHubForgeAdapter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenBucket` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct TokenBucket {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `acquire` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl TokenBucket {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 30 |     fn new(rate: f64, max_tokens: f64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn acquire(&self) -> std::time::Duration {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `request` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl GitHubForgeAdapter {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new(token: &str, owner: &str, repo: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     async fn request(
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `current_branch` and `checkout_branch` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/git.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GitSafety {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn current_branch(project_root: &Path) -> Result<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn checkout_branch(project_root: &Path, branch: &str) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtectedPaths` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/git.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ProtectedPaths {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `compile`, `check`, and `is_empty` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/git.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl ProtectedPaths {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 115 |     /// Compile glob patterns from config.
[INFO] [stdout] 116 |     pub fn compile(patterns: &[String]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn check(&self, path: &str) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EWMA_ALPHA` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const EWMA_ALPHA: f64 = 0.3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_HEALTH_THRESHOLD` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const DEFAULT_HEALTH_THRESHOLD: f64 = 0.6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METRICS` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const METRICS: &[(&str, f64)] = &[
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectHealth` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ProjectHealth {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EwmaMetric` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct EwmaMetric {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl EwmaMetric {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 54 |     pub fn new(name: &str, weight: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn update(&mut self, raw: f64) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `recompute`, `needs_remediation`, and `remediation_prompt` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl ProjectHealth {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  77 |     pub fn new(project: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn recompute(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn needs_remediation(&self, threshold: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn remediation_prompt(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_project_health` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn check_project_health(health: &mut ProjectHealth, project_config: &ProjectConfig) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `health_monitor_loop` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:206:14
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub async fn health_monitor_loop(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlackMessagingAdapter` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/messaging_slack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SlackMessagingAdapter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `should_throttle`, and `update_ema` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/messaging_slack.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SlackMessagingAdapter {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(bot_token: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn should_throttle(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn update_ema(&self, latency_ms: f64) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerMetricSnapshot` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct WorkerMetricSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FleetMetrics` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct FleetMetrics {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_snapshots` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/observability.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl FleetMetrics {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 71 |     /// Compute from a set of worker snapshots.
[INFO] [stdout] 72 |     pub fn from_snapshots(snapshots: Vec<WorkerMetricSnapshot>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AlertRule` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct AlertRule {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AlertMetric` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum AlertMetric {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AlertComparison` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:133:10
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub enum AlertComparison {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AlertSeverity` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:140:10
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum AlertSeverity {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Alert` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct Alert {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl AlertRule {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 158 |     /// Evaluate this rule against fleet metrics.
[INFO] [stdout] 159 |     pub fn evaluate(&self, metrics: &FleetMetrics) -> Option<Alert> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_dashboard` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn render_dashboard(metrics: &FleetMetrics) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn truncate(s: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_alert_rules` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn default_alert_rules() -> Vec<AlertRule> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NodeId` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type NodeId = String;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PipelineNode` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct PipelineNode {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillPipeline` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct SkillPipeline {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeOutput` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct NodeOutput {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionPlan` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ExecutionPlan {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PipelineError` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub enum PipelineError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/pipeline.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl SkillPipeline {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 107 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn add_node(&mut self, node: PipelineNode) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn validate(&self) -> Result<(), PipelineError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn execution_plan(&self) -> Result<ExecutionPlan, PipelineError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn topological_sort(&self) -> Result<Vec<Vec<NodeId>>, PipelineError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn resolve_inputs(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn get_node(&self, id: &str) -> Option<&PipelineNode> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn node_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn edge_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PipelineBuilder` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/pipeline.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct PipelineBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `add_wired`, and `build` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/pipeline.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl PipelineBuilder {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 261 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn add(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn add_wired(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn build(self) -> Result<SkillPipeline, PipelineError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `project_name` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/pool.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ProjectAgent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 26 |     pub project_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/pool.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct AgentPool {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     store: Arc<DaemonStore>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_busy`, `current_task`, and `project_names` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:91:18
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl AgentPool {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub async fn is_busy(&self, project: &str) -> bool {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub async fn current_task(&self, project: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub async fn project_names(&self) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_write_bytes` is never read
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:700:5
[INFO] [stdout]     |
[INFO] [stdout] 696 | pub struct DaemonApprovalHandler {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 700 |     max_write_bytes: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `origin` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/reporter.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct TaskProgress {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     origin: MessageOrigin,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SubmitTaskResponse` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/server.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct SubmitTaskResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store_path` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct DaemonStore {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     store_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/store.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl DaemonStore {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn open_ephemeral() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn delete(&self, key: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn scan(&self, prefix: &str) -> Result<Vec<(String, Vec<u8>)>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn list_tasks(&self) -> Result<Vec<TaskRecord>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn list_project_tasks(&self, project: &str) -> Result<Vec<TaskRecord>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn verify_event_chain(&self, task_id: &str) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn get_task_events(&self, task_id: &str) -> Result<Vec<serde_json::Value>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn store_vector(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub fn load_vector(&self, task_id: &str) -> Result<Option<(Vec<f32>, serde_json::Value)>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub fn search_similar_tasks(&self, query: &[f32], k: usize) -> Result<Vec<(String, f32)>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub fn path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 646 |     pub fn store_knowledge_unit(&self, unit: &KnowledgeUnit) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn list_knowledge_units(&self, limit: usize) -> Result<Vec<KnowledgeUnit>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub fn search_knowledge(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KnowledgeUnit` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/store.rs:713:12
[INFO] [stdout]     |
[INFO] [stdout] 713 | pub struct KnowledgeUnit {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot_product` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/store.rs:726:4
[INFO] [stdout]     |
[INFO] [stdout] 726 | fn dot_product(a: &[f32], b: &[f32]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SledTeamStore` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/teams_store.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SledTeamStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `team_key`, and `user_key` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/teams_store.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SledTeamStore {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 15 |     pub fn new(db_path: &std::path::Path) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn team_key(id: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn user_key(user_id: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `user_team_ids` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/teams_store.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl SledTeamStore {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 163 |     fn user_team_ids(&self, user_id: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventTrigger` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait EventTrigger: Send + Sync + 'static {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriggerEvent` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TriggerEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriggerEventKind` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum TriggerEventKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileChangeType` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:65:10
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub enum FileChangeType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriggerError` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum TriggerError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileSystemTrigger` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct FileSystemTrigger {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `matches_filters` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl FileSystemTrigger {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 101 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn matches_filters(&self, path: &Path) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebhookTriggerConfig` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct WebhookTriggerConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebhookPayload` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub struct WebhookPayload {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_prompt` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 265 | impl WebhookPayload {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 266 |     /// Extract a human-readable prompt from common webhook formats.
[INFO] [stdout] 267 |     pub fn to_prompt(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriggerRouter` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub struct TriggerRouter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_route`, `add_worker`, and `route` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl TriggerRouter {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 319 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn add_route(&mut self, trigger_id: impl Into<String>, worker_id: impl Into<String>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn add_worker(&mut self, worker_id: impl Into<String>, handle: WorkerHandle) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub async fn route(&self, event: TriggerEvent) -> bool {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `glob_match` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn glob_match(pattern: &str, path: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconcilerConfig` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/vcs_reconciler.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ReconcilerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hydrate_workspace_state` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/vcs_reconciler.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn hydrate_workspace_state(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_workspace_timestamps` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn extract_workspace_timestamps(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reconcile_pass` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn reconcile_pass(project_root: &PathBuf, config: &ReconcilerConfig) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_causal_snapshot` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn build_causal_snapshot(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerId` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct WorkerId(pub String);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerConfig` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct WorkerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_concurrent` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn default_max_concurrent() -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_idle_timeout_secs` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn default_idle_timeout_secs() -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RestartPolicy` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum RestartPolicy {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerMessage` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub enum WorkerMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerState` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub enum WorkerState {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerStatus` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct WorkerStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerMemory` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct WorkerMemory {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerLearning` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct WorkerLearning {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerLifetimeStats` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct WorkerLifetimeStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load`, `save`, `path`, `record_learning`, `record_completion`, and `success_rate` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl WorkerMemory {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 161 |     /// Load from disk.
[INFO] [stdout] 162 |     pub fn load(project_root: &Path, worker_id: &WorkerId) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn save(&self, project_root: &Path, worker_id: &WorkerId) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn path(project_root: &Path, worker_id: &WorkerId) -> PathBuf {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn record_learning(&mut self, concept: &str, outcome: &str, confidence: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn record_completion(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Worker` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub struct Worker {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerHandle` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub struct WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_task`, `steer`, `shutdown`, and `ping` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout] 270 | impl WorkerHandle {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 271 |     /// Send a task to the worker.
[INFO] [stdout] 272 |     pub async fn send_task(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub async fn steer(&self, msg: String) -> Result<(), mpsc::error::SendError<WorkerMessage>> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub async fn shutdown(&self) -> Result<(), mpsc::error::SendError<WorkerMessage>> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub async fn ping(&self) -> Option<WorkerStatus> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `spawn`, `run`, `execute_task`, and `status` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:307:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl Worker {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 306 |     /// Spawn a new worker, returning its handle.
[INFO] [stdout] 307 |     pub fn spawn(config: WorkerConfig, project_root: &Path) -> WorkerHandle {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     async fn run(&mut self, project_root: &Path) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     async fn execute_task(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     fn status(&self) -> WorkerStatus {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskResult` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:452:8
[INFO] [stdout]     |
[INFO] [stdout] 452 | struct TaskResult {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerSupervisor` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct WorkerSupervisor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 469 | impl WorkerSupervisor {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 470 |     pub fn new(project_root: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_worker(&mut self, config: WorkerConfig) -> WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn get(&self, id: &WorkerId) -> Option<&WorkerHandle> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub async fn health_check(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub async fn shutdown_all(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub async fn all_statuses(&self) -> Vec<WorkerStatus> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     pub fn worker_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch_name`
[INFO] [stdout]   --> crates/pipit-daemon/src/cron.rs:53:88
[INFO] [stdout]    |
[INFO] [stdout] 53 |                     let notify_origin = sched_config.notify_channel.as_ref().and_then(|ch_name| {
[INFO] [stdout]    |                                                                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ch_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channels`
[INFO] [stdout]   --> crates/pipit-daemon/src/cron.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         channels: &HashMap<String, ChannelConfig>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stamp_version` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/migrations.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn stamp_version(value: &mut Value) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionLock` is never constructed
[INFO] [stdout]   --> crates/pipit-cli/src/persistence.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SessionLock {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `acquire` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/persistence.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl SessionLock {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn acquire(project_root: &Path) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Json` is never constructed
[INFO] [stdout]    --> crates/pipit-cli/src/persistence_v2.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub enum ExportFormat {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] 150 |     Json,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExportFormat` 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 `author` is never read
[INFO] [stdout]    --> crates/pipit-cli/src/plugin.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | struct RegistryEntry {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 198 |     author: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RegistryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_system_prompt` is never used
[INFO] [stdout]   --> crates/pipit-cli/src/prompt_builder.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn build_system_prompt(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_prompt_with_cache_sections` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn build_prompt_with_cache_sections(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_composed_prompt` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub fn build_composed_prompt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_cache_breakpoints` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/prompt_builder.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn compute_cache_breakpoints(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cors` is never read
[INFO] [stdout]   --> crates/pipit-cli/src/web_ui.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct WebUiConfig {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub cors: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WebUiConfig` 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 `load_rules` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl WorkflowAssets {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn load_rules(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model`, `tools`, and `path` are never read
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct AgentDefinition {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub model: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 364 |     pub tools: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 365 |     pub path: PathBuf,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgentDefinition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `md_files_recursive` is never used
[INFO] [stdout]    --> crates/pipit-cli/src/workflow.rs:457:4
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn md_files_recursive(dir: &Path) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 |     store: Arc<DaemonStore>,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `branch_name`
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:225:33
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     if let Some(ref branch_name) = branch {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `capability_grants`
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let capability_grants = agent_lock.config.capability_grants.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capability_grants`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_log`
[INFO] [stdout]    --> crates/pipit-daemon/src/reporter.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 |             TaskUpdateKind::Progress { text, tool_log } => {
[INFO] [stdout]     |                                              ^^^^^^^^ help: try ignoring the field: `tool_log: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cron_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let cron_handle = cron.spawn();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cron_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let server_handle = server::spawn_server(
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_handle`
[INFO] [stdout]    --> crates/pipit-daemon/src/runner.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let queue_handle = tokio::spawn(async move {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> crates/pipit-daemon/src/server.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let task_id = task.task_id.clone();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:561:13
[INFO] [stdout]     |
[INFO] [stdout] 561 |         let id = WorkerId("test-worker".to_string());
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCORD_GATEWAY_URL` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/discord.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const DISCORD_GATEWAY_URL: &str = "wss://gateway.discord.gg/?v=10&encoding=json";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/discord.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct DiscordChannel {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 34 |     /// Bot's own user ID (discovered on READY).
[INFO] [stdout] 35 |     bot_user_id: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     /// Set of configured project names for prefix parsing.
[INFO] [stdout] 37 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     /// Default project name when no prefix is given.
[INFO] [stdout] 39 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     /// Last known gateway sequence number for resume/heartbeat.
[INFO] [stdout] 41 |     sequence: Arc<Mutex<Option<u64>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 42 |     /// Session ID for RESUME (from READY event).
[INFO] [stdout] 43 |     session_id: Mutex<Option<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 44 |     /// Resume gateway URL (from READY event).
[INFO] [stdout] 45 |     resume_gateway_url: Mutex<Option<String>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Heartbeat ACK tracking — true if we're waiting for an ACK.
[INFO] [stdout] 47 |     awaiting_ack: Arc<std::sync::atomic::AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `edit_message`, `gateway_loop`, `handle_gateway_event_v2`, `handle_message_create`, `parse_project_prefix`, and `handle_command` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:187:14
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl DiscordChannel {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     async fn edit_message(&self, channel_id: u64, message_id: u64, content: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     async fn gateway_loop(&self, sink: TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     async fn handle_gateway_event_v2(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 567 |     async fn handle_message_create(&self, d: &serde_json::Value, sink: &TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     fn parse_project_prefix(&self, text: &str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     async fn handle_command(&self, text: &str, channel_id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GatewayAction` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:932:6
[INFO] [stdout]     |
[INFO] [stdout] 932 | enum GatewayAction {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GatewayEvent` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:940:8
[INFO] [stdout]     |
[INFO] [stdout] 940 | struct GatewayEvent {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `channel_id`, and `content` are never read
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/discord.rs:949:5
[INFO] [stdout]     |
[INFO] [stdout] 948 | struct DiscordMessage {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 949 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 950 |     channel_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 951 |     content: Option<String>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DiscordMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_message` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/slack.rs:135:14
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl SlackChannel {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     async fn update_message(&self, channel: &str, ts: &str, text: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POLL_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/telegram.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const POLL_TIMEOUT_SECS: u64 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel`, `project_names`, and `default_project` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/telegram.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct TelegramChannel {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     /// Default project name when no prefix is given.
[INFO] [stdout] 36 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poll_loop`, `is_allowed_user`, `handle_message`, `parse_project_prefix`, `handle_command`, and `send_markdown` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:158:14
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl TelegramChannel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn poll_loop(&self, sink: TaskSink) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn is_allowed_user(&self, user_id: Option<i64>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     async fn handle_message(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn parse_project_prefix<'a>(&self, text: &'a str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     async fn handle_command(&self, text: &str, chat_id: i64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     async fn send_markdown(&self, chat_id: i64, text: &str) -> Result<TelegramMessage> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TelegramUpdate` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/channels/telegram.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | struct TelegramUpdate {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel`, `project_names`, and `default_project` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/channels/webhook.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct WebhookChannel {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     cancel: CancellationToken,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 29 |     project_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 30 |     default_project: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiFailurePayload` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CiFailurePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiFixResult` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CiFixResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fix_prompt` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/ci_fix.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl FailureKind {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 88 |     /// Generate the agent prompt for fixing this type of failure.
[INFO] [stdout] 89 |     pub fn fix_prompt(&self, log: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_fix_worktree` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/ci_fix.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn prepare_fix_worktree(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_and_push_fix` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/ci_fix.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn commit_and_push_fix(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GitHubForgeAdapter` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GitHubForgeAdapter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `request` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/forge_github.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl GitHubForgeAdapter {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new(token: &str, owner: &str, repo: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     async fn request(
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `current_branch` and `checkout_branch` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/git.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GitSafety {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn current_branch(project_root: &Path) -> Result<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn checkout_branch(project_root: &Path, branch: &str) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_HEALTH_THRESHOLD` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/health_monitor.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const DEFAULT_HEALTH_THRESHOLD: f64 = 0.6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_project_health` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn check_project_health(health: &mut ProjectHealth, project_config: &ProjectConfig) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `health_monitor_loop` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/health_monitor.rs:206:14
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub async fn health_monitor_loop(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `thread_map` and `reverse_map` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/messaging_slack.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SlackMessagingAdapter {
[INFO] [stdout]    |            --------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     thread_map: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 15 |     /// Reverse map (thread_ts → session_id).
[INFO] [stdout] 16 |     reverse_map: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_alert_rules` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/observability.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn default_alert_rules() -> Vec<AlertRule> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `node_id`, `skill_name`, `success`, `elapsed_ms`, and `error` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct NodeOutput {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 53 |     pub node_id: NodeId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 54 |     pub skill_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 55 |     pub outputs: HashMap<String, serde_json::Value>,
[INFO] [stdout] 56 |     pub success: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 57 |     pub elapsed_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub error: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeOutput` 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 `MissingNode` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/pipeline.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub enum PipelineError {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 73 |     CycleDetected,
[INFO] [stdout] 74 |     MissingNode(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PipelineError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `node_count` and `edge_count` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/pipeline.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl SkillPipeline {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn node_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn edge_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `project_name` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/pool.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ProjectAgent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 26 |     pub project_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/pool.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct AgentPool {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     store: Arc<DaemonStore>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_busy`, `current_task`, and `project_names` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:91:18
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl AgentPool {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub async fn is_busy(&self, project: &str) -> bool {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub async fn current_task(&self, project: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub async fn project_names(&self) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_write_bytes` is never read
[INFO] [stdout]    --> crates/pipit-daemon/src/pool.rs:700:5
[INFO] [stdout]     |
[INFO] [stdout] 696 | pub struct DaemonApprovalHandler {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 700 |     max_write_bytes: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `origin` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/reporter.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct TaskProgress {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     origin: MessageOrigin,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SubmitTaskResponse` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/server.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct SubmitTaskResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `store_path` is never read
[INFO] [stdout]   --> crates/pipit-daemon/src/store.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct DaemonStore {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     store_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/store.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl DaemonStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn list_tasks(&self) -> Result<Vec<TaskRecord>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn list_project_tasks(&self, project: &str) -> Result<Vec<TaskRecord>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn verify_event_chain(&self, task_id: &str) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn get_task_events(&self, task_id: &str) -> Result<Vec<serde_json::Value>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub fn path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 646 |     pub fn store_knowledge_unit(&self, unit: &KnowledgeUnit) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn list_knowledge_units(&self, limit: usize) -> Result<Vec<KnowledgeUnit>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub fn search_knowledge(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KnowledgeUnit` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/store.rs:713:12
[INFO] [stdout]     |
[INFO] [stdout] 713 | pub struct KnowledgeUnit {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SledTeamStore` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/teams_store.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SledTeamStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `team_key`, and `user_key` are never used
[INFO] [stdout]   --> crates/pipit-daemon/src/teams_store.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SledTeamStore {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 15 |     pub fn new(db_path: &std::path::Path) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn team_key(id: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn user_key(user_id: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `user_team_ids` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/teams_store.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl SledTeamStore {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 163 |     fn user_team_ids(&self, user_id: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventTrigger` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait EventTrigger: Send + Sync + 'static {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriggerEvent` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TriggerEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriggerEventKind` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum TriggerEventKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileChangeType` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:65:10
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub enum FileChangeType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriggerError` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum TriggerError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `watch_paths`, and `debounce_ms` are never read
[INFO] [stdout]   --> crates/pipit-daemon/src/triggers.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct FileSystemTrigger {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 89 |     id: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 90 |     /// Paths to watch (directories).
[INFO] [stdout] 91 |     watch_paths: Vec<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     debounce_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebhookTriggerConfig` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct WebhookTriggerConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriggerRouter` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub struct TriggerRouter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_route`, `add_worker`, and `route` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/triggers.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl TriggerRouter {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 319 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn add_route(&mut self, trigger_id: impl Into<String>, worker_id: impl Into<String>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn add_worker(&mut self, worker_id: impl Into<String>, handle: WorkerHandle) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub async fn route(&self, event: TriggerEvent) -> bool {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconcilerConfig` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/vcs_reconciler.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ReconcilerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hydrate_workspace_state` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/vcs_reconciler.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn hydrate_workspace_state(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_workspace_timestamps` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn extract_workspace_timestamps(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reconcile_pass` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn reconcile_pass(project_root: &PathBuf, config: &ReconcilerConfig) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_causal_snapshot` is never used
[INFO] [stdout]    --> crates/pipit-daemon/src/vcs_reconciler.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn build_causal_snapshot(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerConfig` is never constructed
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct WorkerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_concurrent` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn default_max_concurrent() -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_idle_timeout_secs` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn default_idle_timeout_secs() -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RestartPolicy` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum RestartPolicy {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerMessage` is never used
[INFO] [stdout]   --> crates/pipit-daemon/src/worker.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub enum WorkerMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load`, `save`, and `path` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl WorkerMemory {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 161 |     /// Load from disk.
[INFO] [stdout] 162 |     pub fn load(project_root: &Path, worker_id: &WorkerId) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn save(&self, project_root: &Path, worker_id: &WorkerId) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn path(project_root: &Path, worker_id: &WorkerId) -> PathBuf {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Worker` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub struct Worker {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerHandle` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub struct WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_task`, `steer`, `shutdown`, and `ping` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout] 270 | impl WorkerHandle {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 271 |     /// Send a task to the worker.
[INFO] [stdout] 272 |     pub async fn send_task(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub async fn steer(&self, msg: String) -> Result<(), mpsc::error::SendError<WorkerMessage>> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub async fn shutdown(&self) -> Result<(), mpsc::error::SendError<WorkerMessage>> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub async fn ping(&self) -> Option<WorkerStatus> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `spawn`, `run`, `execute_task`, and `status` are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:307:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl Worker {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 306 |     /// Spawn a new worker, returning its handle.
[INFO] [stdout] 307 |     pub fn spawn(config: WorkerConfig, project_root: &Path) -> WorkerHandle {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     async fn run(&mut self, project_root: &Path) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     async fn execute_task(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     fn status(&self) -> WorkerStatus {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskResult` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:452:8
[INFO] [stdout]     |
[INFO] [stdout] 452 | struct TaskResult {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerSupervisor` is never constructed
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct WorkerSupervisor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/pipit-daemon/src/worker.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 469 | impl WorkerSupervisor {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 470 |     pub fn new(project_root: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_worker(&mut self, config: WorkerConfig) -> WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn get(&self, id: &WorkerId) -> Option<&WorkerHandle> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub async fn health_check(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub async fn shutdown_all(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub async fn all_statuses(&self) -> Vec<WorkerStatus> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     pub fn worker_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 16s
[INFO] running `Command { std: "docker" "inspect" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548", kill_on_drop: false }`
[INFO] [stdout] 65908ed46444a74cbaef51088eab2ca4c6b3adaaafe64ee9fac3f0c4e5a63548
