[INFO] cloning repository https://github.com/sacaslabs/sacas-daemon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sacaslabs/sacas-daemon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsacaslabs%2Fsacas-daemon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsacaslabs%2Fsacas-daemon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 669afd30aeb2ff681989e649afdc5c75b2db8763
[INFO] checking sacaslabs/sacas-daemon/669afd30aeb2ff681989e649afdc5c75b2db8763 against 1af98b7cdf86932b76182a387f52f1be6f0c1be0 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsacaslabs%2Fsacas-daemon" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sacaslabs/sacas-daemon
[INFO] finished tweaking git repo https://github.com/sacaslabs/sacas-daemon
[INFO] tweaked toml for git repo https://github.com/sacaslabs/sacas-daemon written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sacaslabs/sacas-daemon on toolchain 1af98b7cdf86932b76182a387f52f1be6f0c1be0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "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" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 312 packages to latest compatible versions
[INFO] [stderr]       Adding base64 v0.21.7 (available: v0.23.1)
[INFO] [stderr]       Adding config v0.14.1 (available: v0.15.25)
[INFO] [stderr]       Adding core-foundation v0.9.4 (available: v0.10.1)
[INFO] [stderr]       Adding dirs v5.0.1 (available: v6.0.0)
[INFO] [stderr]       Adding ed25519-dalek v2.2.0 (available: v3.0.0)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding prost v0.12.6 (available: v0.14.4)
[INFO] [stderr]       Adding prost-types v0.12.6 (available: v0.14.4)
[INFO] [stderr]       Adding rand v0.8.7 (available: v0.10.2)
[INFO] [stderr]       Adding reqwest v0.11.27 (available: v0.13.4)
[INFO] [stderr]       Adding sha2 v0.10.9 (available: v0.11.0)
[INFO] [stderr]       Adding surge-ping v0.8.4 (available: v0.9.0)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.20)
[INFO] [stderr]       Adding tokio-tungstenite v0.21.0 (available: v0.30.0)
[INFO] [stderr]       Adding toml v0.8.23 (available: v1.1.4+spec-1.1.0)
[INFO] [stderr]       Adding tonic v0.11.0 (available: v0.14.6)
[INFO] [stderr]       Adding tonic-build v0.11.0 (available: v0.14.6)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-io-timeout v1.2.1
[INFO] [stderr]   Downloaded sha1 v0.10.7
[INFO] [stderr]   Downloaded thread_local v1.1.10
[INFO] [stderr]   Downloaded data-encoding v2.11.1
[INFO] [stderr]   Downloaded surge-ping v0.8.4
[INFO] [stderr]   Downloaded pnet_base v0.34.0
[INFO] [stderr]   Downloaded pest_meta v2.8.8
[INFO] [stderr]   Downloaded pnet_macros_support v0.34.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.77
[INFO] [stderr]   Downloaded libredox v0.1.19
[INFO] [stderr]   Downloaded zmij v1.0.23
[INFO] [stderr]   Downloaded ipnet v2.12.1
[INFO] [stderr]   Downloaded pest_generator v2.8.8
[INFO] [stderr]   Downloaded pnet_macros v0.34.0
[INFO] [stderr]   Downloaded no-std-net v0.6.0
[INFO] [stderr]   Downloaded glob v0.3.4
[INFO] [stderr]   Downloaded pest_derive v2.8.8
[INFO] [stderr]   Downloaded pnet_packet v0.34.0
[INFO] [stderr]   Downloaded clap_derive v4.6.4
[INFO] [stderr]   Downloaded clap v4.6.6
[INFO] [stderr]   Downloaded pest v2.8.8
[INFO] [stderr]   Downloaded serde_json v1.0.151
[INFO] [stderr]   Downloaded clap_builder v4.6.6
[INFO] [stderr]   Downloaded web-sys v0.3.104
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444
[INFO] running `Command { std: "docker" "start" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444", 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" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444", 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" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking futures-channel v0.3.33
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]    Compiling pest v2.8.8
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking no-std-net v0.6.0
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking pnet_base v0.34.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling pest_meta v2.8.8
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling pest_generator v2.8.8
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tokio-io-timeout v1.2.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling pnet_macros v0.34.0
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]    Compiling prost-types v0.12.6
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pest_derive v2.8.8
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking pnet_macros_support v0.34.0
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking unicode-segmentation v1.13.3
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking data-encoding v2.11.1
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling prost-build v0.12.6
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]    Compiling tonic-build v0.11.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking clap_builder v4.6.6
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]    Compiling sacas-daemon v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking pnet_packet v0.34.0
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tokio-stream v0.1.19
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.10
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking ipnet v2.12.1
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking uuid v1.24.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking clap v4.6.6
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking surge-ping v0.8.4
[INFO] [stderr]     Checking tonic v0.11.0
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]    --> src/device/identity.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     use tempfile::tempdir;
[INFO] [stdout]     |         ^^^^^^^^ use of unresolved module or unlinked crate `tempfile`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `tempfile`, use `cargo add tempfile` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ICMP`
[INFO] [stdout]  --> src/network/probe.rs:4:78
[INFO] [stdout]   |
[INFO] [stdout] 4 | use surge_ping::{Client, Config as PingConfig, PingIdentifier, PingSequence, ICMP};
[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: `proto`
[INFO] [stdout]  --> src/grpc/mod.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use service::{start_grpc_server, proto};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/sync/signed_sync.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/device/registration.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{info, warn, error};
[INFO] [stdout]   |                     ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/device/identity.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/device/identity.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, warn};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceRegistration`
[INFO] [stdout]   --> src/device/mod.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use registration::{DeviceRegistration, register_device};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/moltbook/client.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/combat/client.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/combat/client.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, debug, warn};
[INFO] [stdout]   |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::CombatClient`
[INFO] [stdout]  --> src/combat/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::CombatClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/radar/client.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/radar/client.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, debug};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::RadarClient`
[INFO] [stdout]  --> src/radar/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::RadarClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `register_device`
[INFO] [stdout]   --> src/main.rs:24:64
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::device::{MacHardwareInfo, MacValidator, VMDetector, register_device};
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::websocket::WebSocketClient`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::websocket::WebSocketClient;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ICMP`
[INFO] [stdout]  --> src/network/probe.rs:4:78
[INFO] [stdout]   |
[INFO] [stdout] 4 | use surge_ping::{Client, Config as PingConfig, PingIdentifier, PingSequence, ICMP};
[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: `proto`
[INFO] [stdout]  --> src/grpc/mod.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use service::{start_grpc_server, proto};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/sync/signed_sync.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/device/registration.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{info, warn, error};
[INFO] [stdout]   |                     ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/device/identity.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/device/identity.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, warn};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceRegistration`
[INFO] [stdout]   --> src/device/mod.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use registration::{DeviceRegistration, register_device};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/moltbook/client.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/combat/client.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/combat/client.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, debug, warn};
[INFO] [stdout]   |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::CombatClient`
[INFO] [stdout]  --> src/combat/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::CombatClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/radar/client.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/radar/client.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, debug};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::RadarClient`
[INFO] [stdout]  --> src/radar/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::RadarClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `register_device`
[INFO] [stdout]   --> src/main.rs:24:64
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::device::{MacHardwareInfo, MacValidator, VMDetector, register_device};
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::websocket::WebSocketClient`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::websocket::WebSocketClient;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/network/probe.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |         base64::encode(hash)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/device/identity.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |         base64::encode(self.verifying_key.to_bytes())
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/device/identity.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |         base64::encode(signature.to_bytes())
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode
[INFO] [stdout]   --> src/websocket/client.rs:92:41
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let private_key_bytes = base64::decode(private_key_base64)
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/websocket/client.rs:119:40
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let signature_base64 = base64::encode(signature.to_bytes());
[INFO] [stdout]     |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/network/probe.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |         base64::encode(hash)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/device/identity.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |         base64::encode(self.verifying_key.to_bytes())
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/device/identity.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |         base64::encode(signature.to_bytes())
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode
[INFO] [stdout]   --> src/websocket/client.rs:92:41
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let private_key_bytes = base64::decode(private_key_base64)
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> src/websocket/client.rs:119:40
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let signature_base64 = base64::encode(signature.to_bytes());
[INFO] [stdout]     |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `body_json` in initializer of `signed_sync::SignedSyncRequest`
[INFO] [stdout]    --> src/sync/signed_sync.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let request = SignedSyncRequest {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ missing `body_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/network/probe.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let start = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/network/probe.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let start = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/grpc/service.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let req = request.into_inner();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/grpc/service.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let req = request.into_inner();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device/identity.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut rng = rand::rngs::OsRng;
[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: `rng`
[INFO] [stdout]   --> src/device/identity.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut rng = rand::rngs::OsRng;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device/identity.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut rng = rand::rngs::OsRng;
[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: `rng`
[INFO] [stdout]   --> src/device/identity.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut rng = rand::rngs::OsRng;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let mut config = config;  // Make mutable for registration update
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `display_unclaimed_device_notice` is never used
[INFO] [stdout]    --> src/main.rs:264:4
[INFO] [stdout]     |
[INFO] [stdout] 264 | fn display_unclaimed_device_notice(claim_code: &str, device_id: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_parasite`, `update_visible_nodes`, and `update_climate` are never used
[INFO] [stdout]    --> src/state.rs:96:18
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl StateManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub async fn add_parasite(&self, parasite: Parasite) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub async fn update_visible_nodes(&self, nodes: Vec<Node>) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub async fn update_climate(&self, climate: Climate) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleSimulation` is never constructed
[INFO] [stdout]   --> src/types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct BattleSimulation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleResult` is never constructed
[INFO] [stdout]   --> src/types.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct BattleResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `success` is never read
[INFO] [stdout]    --> src/sync/signed_sync.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct SyncResponse {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 105 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SyncResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `anomaly_detected` is never read
[INFO] [stdout]    --> src/sync/signed_sync.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct AnomalyWarning {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 116 |     pub anomaly_detected: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnomalyWarning` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/moltbook/client.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct MoltbookOwner {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout]  8 |     pub x_handle: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  9 |     pub x_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub x_avatar: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     pub x_bio: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 12 |     pub x_follower_count: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub x_following_count: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub x_verified: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoltbookOwner` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `description`, `following_count`, `created_at`, `last_active`, and `owner` are never read
[INFO] [stdout]   --> src/moltbook/client.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MoltbookAgent {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 19 |     pub name: String,
[INFO] [stdout] 20 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub following_count: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub created_at: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 27 |     pub last_active: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 28 |     pub owner: Option<MoltbookOwner>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoltbookAgent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefenseConfig` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DefenseConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefenseStatus` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct DefenseStatus {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CooldownInfo` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct CooldownInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleResult` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct BattleResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleLayers` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct BattleLayers {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LayerResult` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct LayerResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LootInfo` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct LootInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleSimulation` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct BattleSimulation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Probabilities` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Probabilities {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CombatClient` is never constructed
[INFO] [stdout]   --> src/combat/client.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct CombatClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/combat/client.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl CombatClient {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  86 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub async fn configure_defense(&self, config: DefenseConfig) -> Result<serde_json::Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn get_defense_status(&self) -> Result<DefenseStatus> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub async fn attack(&self, target_id: &str) -> Result<BattleResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub async fn simulate_battle(&self, target_id: &str) -> Result<BattleSimulation> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     async fn signed_post(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     async fn signed_get(&self, url: &str) -> Result<reqwest::Response> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RadarTarget` is never constructed
[INFO] [stdout]   --> src/radar/client.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RadarTarget {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefenseInfo` is never constructed
[INFO] [stdout]   --> src/radar/client.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct DefenseInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RadarScanResult` is never constructed
[INFO] [stdout]   --> src/radar/client.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RadarScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanSummary` is never constructed
[INFO] [stdout]   --> src/radar/client.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct ScanSummary {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RadarClient` is never constructed
[INFO] [stdout]   --> src/radar/client.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct RadarClient {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `scan`, `get_locked_targets`, `find_weakest_target`, and `signed_post` are never used
[INFO] [stdout]    --> src/radar/client.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl RadarClient {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  52 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub async fn scan(&self, max_distance: Option<u64>) -> Result<RadarScanResult> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn get_locked_targets(scan: &RadarScanResult) -> Vec<&RadarTarget> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn find_weakest_target<'a>(targets: &'a [&'a RadarTarget]) -> Option<&'a RadarTarget> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     async fn signed_post(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthMessage` is never constructed
[INFO] [stdout]   --> src/websocket/client.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct AuthMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ServerMessage` is never used
[INFO] [stdout]   --> src/websocket/client.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum ServerMessage {
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleResultData` is never constructed
[INFO] [stdout]   --> src/websocket/client.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct BattleResultData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleAttackedData` is never constructed
[INFO] [stdout]   --> src/websocket/client.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct BattleAttackedData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EpicBattleData` is never constructed
[INFO] [stdout]   --> src/websocket/client.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct EpicBattleData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WebSocketClient` is never constructed
[INFO] [stdout]   --> src/websocket/client.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct WebSocketClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_auth_signature`, `connect_and_listen`, `handle_message`, and `show_notification` are never used
[INFO] [stdout]    --> src/websocket/client.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl WebSocketClient {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  90 |     pub fn new(server_url: String, device_id: String, private_key_base64: &str) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn create_auth_signature(&self) -> Result<(i64, String, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub async fn connect_and_listen(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     async fn handle_message(&self, text: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn show_notification(&self, _title: &str, _body: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let mut config = config;  // Make mutable for registration update
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0063, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0063`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sacas-daemon` (bin "sacas-daemon" test) due to 2 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444", kill_on_drop: false }`
[INFO] [stdout] f6089c201d7ed09ce60193da17563ca10e74839cbf4caed774165cbbd5bf7444
