[INFO] cloning repository https://github.com/outputlayer/espectre
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/outputlayer/espectre" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foutputlayer%2Fespectre", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foutputlayer%2Fespectre'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 882d1ae2aa857bff7f06b1dee34978293b2d7e06
[INFO] checking outputlayer/espectre against try#c86ec274072509d26d0ee52682a0c94ed012ed89 for pr-153027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foutputlayer%2Fespectre" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/outputlayer/espectre
[INFO] finished tweaking git repo https://github.com/outputlayer/espectre
[INFO] tweaked toml for git repo https://github.com/outputlayer/espectre written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/outputlayer/espectre on toolchain c86ec274072509d26d0ee52682a0c94ed012ed89
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 170 packages to latest compatible versions
[INFO] [stderr]       Adding axum v0.7.9 (available: v0.8.8)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding tower-http v0.5.2 (available: v0.6.8)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded axum-macros v0.4.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d64a8644a69c9a1505aa028a0fbd4336354784c7272d6e101d6780843e7e18ad
[INFO] running `Command { std: "docker" "start" "-a" "d64a8644a69c9a1505aa028a0fbd4336354784c7272d6e101d6780843e7e18ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d64a8644a69c9a1505aa028a0fbd4336354784c7272d6e101d6780843e7e18ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d64a8644a69c9a1505aa028a0fbd4336354784c7272d6e101d6780843e7e18ad", kill_on_drop: false }`
[INFO] [stdout] d64a8644a69c9a1505aa028a0fbd4336354784c7272d6e101d6780843e7e18ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 84a5c3043c702aaefe0f79f0d658747f5dcaefb395a72a38d2a4a6b17c63fd7a
[INFO] running `Command { std: "docker" "start" "-a" "84a5c3043c702aaefe0f79f0d658747f5dcaefb395a72a38d2a4a6b17c63fd7a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking tokio v1.51.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking espectre-wifiscan v0.1.0 (/opt/rustwide/workdir/wifiscan)
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking espectre-server v0.1.0 (/opt/rustwide/workdir/server)
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]   --> server/src/vital_signs.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VitalSignDetector {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 17 |     sample_rate: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> server/src/rvf_container.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl SegmentHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 127 |     /// Create a new header with the given type and segment ID.
[INFO] [stdout] 128 |     fn new(seg_type: u8, segment_id: u64) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `batch_loss_components` is never used
[INFO] [stdout]    --> server/src/trainer.rs:719:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | impl Trainer {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 719 |     fn batch_loss_components(params: &[f32], batch: &[TrainingSample]) -> LossComponents {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `d_proj` is never read
[INFO] [stdout]    --> server/src/embedding.rs:586:5
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub struct PoseEncoder {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 586 |     d_proj: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PoseEncoder` 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: unused variable: `pretrained_params`
[INFO] [stdout]     --> server/src/trainer.rs:1137:13
[INFO] [stdout]      |
[INFO] [stdout] 1137 |         let pretrained_params = trainer.params().to_vec();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pretrained_params`
[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]   --> server/src/adaptive_classifier.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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> server/src/espectre.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> server/src/adaptive_classifier.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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> server/src/espectre.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]   --> server/src/vital_signs.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VitalSignDetector {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 17 |     sample_rate: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `batch_loss_components` is never used
[INFO] [stdout]    --> server/src/trainer.rs:719:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | impl Trainer {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 719 |     fn batch_loss_components(params: &[f32], batch: &[TrainingSample]) -> LossComponents {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `d_proj` is never read
[INFO] [stdout]    --> server/src/embedding.rs:586:5
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub struct PoseEncoder {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 586 |     d_proj: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PoseEncoder` 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: variable `batch_count` is assigned to, but never used
[INFO] [stdout]    --> server/src/adaptive_classifier.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let mut batch_count = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_batch_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `batch_count` is never read
[INFO] [stdout]    --> server/src/adaptive_classifier.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |             batch_count += 1;
[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: unused variable: `node`
[INFO] [stdout]   --> server/src/espectre.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let node = self.nodes.entry(node_id).or_insert_with(EspectreNode::new);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_motion`
[INFO] [stdout]     --> server/src/main.rs:1249:25
[INFO] [stdout]      |
[INFO] [stdout] 1249 |             let (score, is_motion) = s_write_pre.espectre_detector.process_node(frame.node_id, &amps_f32);
[INFO] [stdout]      |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_motion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:1318:13
[INFO] [stdout]      |
[INFO] [stdout] 1318 |         let est_persons = if classification.presence {
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `batch_count` is assigned to, but never used
[INFO] [stdout]    --> server/src/adaptive_classifier.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let mut batch_count = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_batch_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `batch_count` is never read
[INFO] [stdout]    --> server/src/adaptive_classifier.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |             batch_count += 1;
[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: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:1448:9
[INFO] [stdout]      |
[INFO] [stdout] 1448 |     let est_persons = if classification.presence {
[INFO] [stdout]      |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:3018:25
[INFO] [stdout]      |
[INFO] [stdout] 3018 |                     let est_persons = if classification.motion_level == "absent" {
[INFO] [stdout]      |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:3148:13
[INFO] [stdout]      |
[INFO] [stdout] 3148 |         let est_persons = if classification.presence {
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> server/src/espectre.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let node = self.nodes.entry(node_id).or_insert_with(EspectreNode::new);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_motion`
[INFO] [stdout]     --> server/src/main.rs:1249:25
[INFO] [stdout]      |
[INFO] [stdout] 1249 |             let (score, is_motion) = s_write_pre.espectre_detector.process_node(frame.node_id, &amps_f32);
[INFO] [stdout]      |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_motion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:1318:13
[INFO] [stdout]      |
[INFO] [stdout] 1318 |         let est_persons = if classification.presence {
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:1448:9
[INFO] [stdout]      |
[INFO] [stdout] 1448 |     let est_persons = if classification.presence {
[INFO] [stdout]      |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:3018:25
[INFO] [stdout]      |
[INFO] [stdout] 3018 |                     let est_persons = if classification.motion_level == "absent" {
[INFO] [stdout]      |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `est_persons`
[INFO] [stdout]     --> server/src/main.rs:3148:13
[INFO] [stdout]      |
[INFO] [stdout] 3148 |         let est_persons = if classification.presence {
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_est_persons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> server/src/main.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 283 | struct MlpNodeState {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 284 |     prev_amps: Option<Vec<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 285 |     prev_prev_amps: Option<Vec<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 286 |     motion_ema: f32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 287 |     turb_ema: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 288 |     amp_ema: [f32; 56],
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 289 |     motion_window: Vec<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 290 |     turb_window: Vec<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MlpNodeState` has a derived impl for the trait `Clone`, 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: associated function `new` is never used
[INFO] [stdout]    --> server/src/main.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl MlpNodeState {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 293 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `presence_hold_ticks`, `mlp_node_state`, and `mlp_vote_window` are never read
[INFO] [stdout]    --> server/src/main.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 303 | struct AppStateInner {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 395 |     presence_hold_ticks: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     mlp_node_state: std::collections::HashMap<u8, MlpNodeState>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 400 |     mlp_vote_window: Vec<usize>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEG_LORA` is never used
[INFO] [stdout]   --> server/src/rvf_container.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const SEG_LORA: u8 = 0x0D;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> server/src/rvf_container.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl SegmentHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 127 |     /// Create a new header with the given type and segment ID.
[INFO] [stdout] 128 |     fn new(seg_type: u8, segment_id: u64) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_lora_profile` is never used
[INFO] [stdout]    --> server/src/rvf_container.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl RvfBuilder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn add_lora_profile(&mut self, name: &str, lora_weights: &[f32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `vital_config`, `quant_info`, `witness`, `lora_profile`, and `lora_profiles` are never used
[INFO] [stdout]    --> server/src/rvf_container.rs:547:12
[INFO] [stdout]     |
[INFO] [stdout] 438 | impl RvfReader {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn vital_config(&self) -> Option<VitalSignConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     pub fn quant_info(&self) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub fn witness(&self) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn lora_profile(&self, name: &str) -> Option<Vec<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub fn lora_profiles(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEG_WASM` is never used
[INFO] [stdout]   --> server/src/rvf_pipeline.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const SEG_WASM: u8 = 0x10;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEG_DASHBOARD` is never used
[INFO] [stdout]   --> server/src/rvf_pipeline.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const SEG_DASHBOARD: u8 = 0x11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> server/src/rvf_pipeline.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl HnswIndex {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn from_bytes(data: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_bytes`, `read_adj`, `read_u32`, `read_u64`, and `read_f32` are never used
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl OverlayGraph {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn from_bytes(data: &[u8]) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn read_adj(data: &[u8], off: &mut usize) -> Result<AdjacencyList, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn read_u32(data: &[u8], off: &mut usize) -> Result<u32, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn read_u64(data: &[u8], off: &mut usize) -> Result<u64, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn read_f32(data: &[u8], off: &mut usize) -> Result<f32, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RvfBuildInfo` is never constructed
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct RvfBuildInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_hnsw_index`, `set_overlay`, `set_quantization`, `write_to_file`, and `build_info` are never used
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl RvfModelBuilder {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn set_hnsw_index(&mut self, index: HnswIndex) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn set_overlay(&mut self, overlay: OverlayGraph) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn set_quantization(&mut self, mode: &str, scale: f32, zero_point: i32) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |     pub fn write_to_file(&self, path: &Path) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn build_info(&self) -> RvfBuildInfo {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `manifest` is never read
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:524:9
[INFO] [stdout]     |
[INFO] [stdout] 523 | pub struct LayerAData {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 524 |     pub manifest: serde_json::Value,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerAData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LayerBData` is never constructed
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub struct LayerBData {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LayerCData` is never constructed
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:539:12
[INFO] [stdout]     |
[INFO] [stdout] 539 | pub struct LayerCData {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_layer_b` and `load_layer_c` are never used
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:586:12
[INFO] [stdout]     |
[INFO] [stdout] 554 | impl ProgressiveLoader {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn load_layer_b(&mut self) -> Result<LayerBData, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 619 |     pub fn load_layer_c(&mut self) -> Result<LayerCData, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]   --> server/src/vital_signs.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VitalSignDetector {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 17 |     sample_rate: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `process`, `extract_breathing`, `extract_heartbeat`, and `reset` are never used
[INFO] [stdout]   --> server/src/vital_signs.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VitalSignDetector {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn process(&mut self, _amps: &[f32]) -> VitalSigns {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn extract_breathing(&self) -> (Option<f64>, f64) { (None, 0.0) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub fn extract_heartbeat(&self) -> (Option<f64>, f64) { (None, 0.0) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub fn reset(&mut self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bandpass_filter` is never used
[INFO] [stdout]   --> server/src/vital_signs.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn bandpass_filter(_data: &[f64], _low_hz: f64, _high_hz: f64, _sample_rate: f64) -> Vec<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `score` and `is_motion` are never read
[INFO] [stdout]  --> server/src/espectre.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EspectreNode {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] 8 |     pub score: f32,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 9 |     pub is_motion: bool,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `EspectreNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> server/src/espectre.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl EspectreNode {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn process(&mut self, _amplitudes: &[f32]) -> (f32, bool) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_path` is never read
[INFO] [stdout]   --> server/src/espectre.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct EspectreDetector {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 22 |     nodes: std::collections::HashMap<u8, EspectreNode>,
[INFO] [stdout] 23 |     data_path: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `fused_result` are never used
[INFO] [stdout]   --> server/src/espectre.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl EspectreDetector {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 27 |     pub fn new(_n_nodes: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn fused_result(&self) -> (f32, bool, Vec<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORM_MEAN` is never used
[INFO] [stdout]  --> server/src/trained_mlp.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NORM_MEAN: [f32; 27] = [10.023350, 5.734927, 16.729718, 12.602154, 5.758767, 11.844856, 3.442086, 6.131676, 3.039371, 5.255594,...
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORM_STD` is never used
[INFO] [stdout]  --> server/src/trained_mlp.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const NORM_STD: [f32; 27] = [0.600374, 0.619593, 2.227679, 1.463965, 1.614832, 2.225801, 0.682239, 1.700350, 0.584994, 0.842543, 0.40...
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W0` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const W0: [[f32; 128]; 27] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B0` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:41:7
[INFO] [stdout]    |
[INFO] [stdout] 41 | const B0: [f32; 128] = [-0.279839, -0.071854, 0.091579, -0.158707, -0.241874, -0.424984, -0.070825, 0.025296, -0.025019, -0.097251, ...
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W1` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const W1: [[f32; 64]; 128] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B1` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const B1: [f32; 64] = [-0.229588, 0.072656, -0.002946, 0.041207, -0.023129, 0.127785, -0.004024, 0.121771, 0.158384, 0.044806, 0.32...
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W2` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const W2: [[f32; 32]; 64] = [
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B2` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:247:7
[INFO] [stdout]     |
[INFO] [stdout] 247 | const B2: [f32; 32] = [-0.147687, 0.131231, 0.083644, 0.139971, -0.081397, 0.311042, 0.153273, 0.152570, 0.063977, -0.162123, 0.177...
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W3` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:251:7
[INFO] [stdout]     |
[INFO] [stdout] 251 | const W3: [[f32; 5]; 32] = [
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B3` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:286:7
[INFO] [stdout]     |
[INFO] [stdout] 286 | const B3: [f32; 5] = [-0.220450, 0.194716, 0.461845, -0.200657, -0.372752];
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLASS_NAMES` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:288:7
[INFO] [stdout]     |
[INFO] [stdout] 288 | const CLASS_NAMES: [&str; 5] = ["absent", "present_still", "present_moving", "active", "lying_still"];
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn classify(features: &[f32; 27]) -> (usize, f32, &'static str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> server/src/main.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 283 | struct MlpNodeState {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 284 |     prev_amps: Option<Vec<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 285 |     prev_prev_amps: Option<Vec<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 286 |     motion_ema: f32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 287 |     turb_ema: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 288 |     amp_ema: [f32; 56],
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 289 |     motion_window: Vec<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 290 |     turb_window: Vec<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MlpNodeState` has a derived impl for the trait `Clone`, 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: associated function `new` is never used
[INFO] [stdout]    --> server/src/main.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl MlpNodeState {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 293 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `presence_hold_ticks`, `mlp_node_state`, and `mlp_vote_window` are never read
[INFO] [stdout]    --> server/src/main.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 303 | struct AppStateInner {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 395 |     presence_hold_ticks: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     mlp_node_state: std::collections::HashMap<u8, MlpNodeState>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 400 |     mlp_vote_window: Vec<usize>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `manifest` is never read
[INFO] [stdout]    --> server/src/rvf_pipeline.rs:524:9
[INFO] [stdout]     |
[INFO] [stdout] 523 | pub struct LayerAData {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 524 |     pub manifest: serde_json::Value,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerAData` 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 `sample_rate` is never read
[INFO] [stdout]   --> server/src/vital_signs.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VitalSignDetector {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 17 |     sample_rate: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `process`, `extract_breathing`, `extract_heartbeat`, and `reset` are never used
[INFO] [stdout]   --> server/src/vital_signs.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VitalSignDetector {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn process(&mut self, _amps: &[f32]) -> VitalSigns {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn extract_breathing(&self) -> (Option<f64>, f64) { (None, 0.0) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub fn extract_heartbeat(&self) -> (Option<f64>, f64) { (None, 0.0) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub fn reset(&mut self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bandpass_filter` is never used
[INFO] [stdout]   --> server/src/vital_signs.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn bandpass_filter(_data: &[f64], _low_hz: f64, _high_hz: f64, _sample_rate: f64) -> Vec<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `score` and `is_motion` are never read
[INFO] [stdout]  --> server/src/espectre.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EspectreNode {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] 8 |     pub score: f32,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 9 |     pub is_motion: bool,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `EspectreNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> server/src/espectre.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl EspectreNode {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn process(&mut self, _amplitudes: &[f32]) -> (f32, bool) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_path` is never read
[INFO] [stdout]   --> server/src/espectre.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct EspectreDetector {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 22 |     nodes: std::collections::HashMap<u8, EspectreNode>,
[INFO] [stdout] 23 |     data_path: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `fused_result` are never used
[INFO] [stdout]   --> server/src/espectre.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl EspectreDetector {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 27 |     pub fn new(_n_nodes: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn fused_result(&self) -> (f32, bool, Vec<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORM_MEAN` is never used
[INFO] [stdout]  --> server/src/trained_mlp.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NORM_MEAN: [f32; 27] = [10.023350, 5.734927, 16.729718, 12.602154, 5.758767, 11.844856, 3.442086, 6.131676, 3.039371, 5.255594,...
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORM_STD` is never used
[INFO] [stdout]  --> server/src/trained_mlp.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const NORM_STD: [f32; 27] = [0.600374, 0.619593, 2.227679, 1.463965, 1.614832, 2.225801, 0.682239, 1.700350, 0.584994, 0.842543, 0.40...
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W0` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const W0: [[f32; 128]; 27] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B0` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:41:7
[INFO] [stdout]    |
[INFO] [stdout] 41 | const B0: [f32; 128] = [-0.279839, -0.071854, 0.091579, -0.158707, -0.241874, -0.424984, -0.070825, 0.025296, -0.025019, -0.097251, ...
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W1` is never used
[INFO] [stdout]   --> server/src/trained_mlp.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const W1: [[f32; 64]; 128] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B1` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const B1: [f32; 64] = [-0.229588, 0.072656, -0.002946, 0.041207, -0.023129, 0.127785, -0.004024, 0.121771, 0.158384, 0.044806, 0.32...
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W2` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const W2: [[f32; 32]; 64] = [
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B2` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:247:7
[INFO] [stdout]     |
[INFO] [stdout] 247 | const B2: [f32; 32] = [-0.147687, 0.131231, 0.083644, 0.139971, -0.081397, 0.311042, 0.153273, 0.152570, 0.063977, -0.162123, 0.177...
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `W3` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:251:7
[INFO] [stdout]     |
[INFO] [stdout] 251 | const W3: [[f32; 5]; 32] = [
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `B3` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:286:7
[INFO] [stdout]     |
[INFO] [stdout] 286 | const B3: [f32; 5] = [-0.220450, 0.194716, 0.461845, -0.200657, -0.372752];
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLASS_NAMES` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:288:7
[INFO] [stdout]     |
[INFO] [stdout] 288 | const CLASS_NAMES: [&str; 5] = ["absent", "present_still", "present_moving", "active", "lying_still"];
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify` is never used
[INFO] [stdout]    --> server/src/trained_mlp.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn classify(features: &[f32; 27]) -> (usize, f32, &'static str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.52s
[INFO] running `Command { std: "docker" "inspect" "84a5c3043c702aaefe0f79f0d658747f5dcaefb395a72a38d2a4a6b17c63fd7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84a5c3043c702aaefe0f79f0d658747f5dcaefb395a72a38d2a4a6b17c63fd7a", kill_on_drop: false }`
[INFO] [stdout] 84a5c3043c702aaefe0f79f0d658747f5dcaefb395a72a38d2a4a6b17c63fd7a
