[INFO] fetching crate zc2 0.0.16...
[INFO] testing zc2-0.0.16 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate zc2 0.0.16 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate zc2 0.0.16
[INFO] finished tweaking crates.io crate zc2 0.0.16
[INFO] tweaked toml for crates.io crate zc2 0.0.16 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate zc2 0.0.16 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate zc2 0.0.16 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 71ded97c99f8774954fc75c9a30a37f9bdf4bfc347015899b4e489bee27b291f
[INFO] running `Command { std: "docker" "start" "-a" "71ded97c99f8774954fc75c9a30a37f9bdf4bfc347015899b4e489bee27b291f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "71ded97c99f8774954fc75c9a30a37f9bdf4bfc347015899b4e489bee27b291f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71ded97c99f8774954fc75c9a30a37f9bdf4bfc347015899b4e489bee27b291f", kill_on_drop: false }`
[INFO] [stdout] 71ded97c99f8774954fc75c9a30a37f9bdf4bfc347015899b4e489bee27b291f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0cb54d124e5af790d90fbf9463c9857099762dc756cba53310c0b3355b347425
[INFO] running `Command { std: "docker" "start" "-a" "0cb54d124e5af790d90fbf9463c9857099762dc756cba53310c0b3355b347425", kill_on_drop: false }`
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling siphasher v0.2.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling string_cache_shared v0.3.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling phf_shared v0.7.24
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling phf v0.7.24
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling rustls v0.20.9
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling rustls-native-certs v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling phf_generator v0.7.24
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling string_cache_codegen v0.4.4
[INFO] [stderr]    Compiling phf_codegen v0.7.24
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling nix v0.8.1
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling compact_str v0.7.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling fallible v0.1.3
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling string_cache v0.7.5
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling match_cfg v0.1.0
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling hostname v0.3.1
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling clone v0.1.2
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling command-macros v0.2.9
[INFO] [stderr]    Compiling broadcast v0.1.0
[INFO] [stderr]    Compiling ifaces v0.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling html5ever v0.22.5
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling quinn-udp v0.4.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.26.3
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling webpki v0.22.4
[INFO] [stderr]    Compiling rcgen v0.12.1
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling webpki-roots v0.22.6
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_yaml v0.9.25
[INFO] [stderr]    Compiling markup5ever v0.7.5
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling quinn-proto v0.10.6
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.7.8
[INFO] [stderr]    Compiling cargo-lock v8.0.3
[INFO] [stderr]    Compiling ureq v2.6.2
[INFO] [stderr]    Compiling built v0.5.2
[INFO] [stderr]    Compiling soup v0.5.1
[INFO] [stderr]    Compiling zc2 v0.0.16 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling quinn v0.10.2
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/broker/worker.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Arc, Mutex};
[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: `fetch_broker_config`
[INFO] [stdout]   --> src/broker/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub use config::{fetch_broker_config, get_tailscale_auth_key};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserCredits`
[INFO] [stdout]   --> src/broker/mod.rs:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use credits::{CreditManager, UserCredits};
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DiscoveryMode`, `Discovery`, and `detect_discovery_mode`
[INFO] [stdout]   --> src/broker/mod.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub use discovery::{detect_discovery_mode, Discovery, DiscoveryConfig, DiscoveryMode};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LedgerError`
[INFO] [stdout]   --> src/broker/mod.rs:40:26
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub use ledger::{Ledger, LedgerError};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RoutingStrategy`
[INFO] [stdout]   --> src/broker/mod.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub use router::{Router, RoutingStrategy};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StatsResponse` and `WorkerStats`
[INFO] [stdout]   --> src/broker/mod.rs:43:33
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub use stats::{StatsCollector, StatsResponse, WorkerStats};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `run_tui`
[INFO] [stdout]   --> src/broker/mod.rs:44:49
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub use tui::{cleanup_terminal, run_remote_tui, run_tui};
[INFO] [stdout]    |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HardwareInfo` and `Worker`
[INFO] [stdout]   --> src/broker/mod.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use worker::{HardwareInfo, Worker, WorkerRegistry, WorkerStatus};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/common/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]   --> src/common/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use colored::Colorize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/broker/quic.rs:301:24
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let (mut send, mut recv) = conn
[INFO] [stdout]     |                        ----^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/broker/quic.rs:534:5
[INFO] [stdout]     |
[INFO] [stdout] 534 |     mut recv: quinn::RecvStream,
[INFO] [stdout]     |     ----^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]   --> src/broker/config.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let api_key = match std::env::var("ZAKURO_API_KEY") {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/broker/config.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let api_url = match std::env::var("ZAKURO_API_URL") {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `recv`
[INFO] [stdout]    --> src/broker/quic.rs:534:5
[INFO] [stdout]     |
[INFO] [stdout] 534 |     mut recv: quinn::RecvStream,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirements`
[INFO] [stdout]    --> src/broker/router.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |         requirements: &ResourceRequirements,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_self_owned`
[INFO] [stdout]     --> src/broker/server.rs:1410:5
[INFO] [stdout]      |
[INFO] [stdout] 1410 |     is_self_owned: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_self_owned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `alive`
[INFO] [stdout]    --> src/common/mod.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn logs(alive: bool) {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_alive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_credits` is never read
[INFO] [stdout]    --> src/broker/mod.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct BrokerConfig {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub min_credits: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BrokerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/broker/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl BrokerState {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 219 |     /// Create a new broker state with default configuration
[INFO] [stdout] 220 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_credits`, `deduct`, and `add` are never used
[INFO] [stdout]    --> src/broker/credits.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl UserCredits {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn has_credits(&self, amount: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn deduct(&mut self, amount: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn add(&mut self, amount: f64) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_authoritative`, `has_credits`, `set_rate_limit`, and `set_rate_limits` are never used
[INFO] [stdout]    --> src/broker/credits.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl CreditManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn set_authoritative(&self, user_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn has_credits(&self, user_id: &str, amount: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn set_rate_limit(&self, user_id: &str, limit: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn set_rate_limits(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enable_dns` is never read
[INFO] [stdout]   --> src/broker/discovery.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct DiscoveryConfig {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub enable_dns: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiscoveryConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mode` is never used
[INFO] [stdout]    --> src/broker/discovery.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Discovery {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn mode(&self) -> &DiscoveryMode {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ColorExt` is never used
[INFO] [stdout]    --> src/broker/discovery.rs:605:7
[INFO] [stdout]     |
[INFO] [stdout] 605 | trait ColorExt {
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]   --> src/broker/flush.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl TransactionBuffer {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LedgerTransaction` is never constructed
[INFO] [stdout]   --> src/broker/ledger.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LedgerTransaction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionType` is never used
[INFO] [stdout]   --> src/broker/ledger.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum TransactionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectionFailed` and `DatabaseError` are never constructed
[INFO] [stdout]   --> src/broker/ledger.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum LedgerError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 39 |     ConnectionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     DatabaseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LedgerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_authoritative_balance` and `authoritative_balance_snapshot` are never used
[INFO] [stdout]    --> src/broker/ledger.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl Ledger {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn get_authoritative_balance(&self, user_id: &str) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn authoritative_balance_snapshot(&self) -> Vec<(String, f64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `base_url` is never used
[INFO] [stdout]    --> src/broker/peer.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl PeerClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn base_url(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_quic_port` is never used
[INFO] [stdout]    --> src/broker/peer.rs:568:12
[INFO] [stdout]     |
[INFO] [stdout] 394 | impl PeerManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn set_quic_port(&self, peer_url: &str, port: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `subscriber_urls` is never used
[INFO] [stdout]    --> src/broker/quic.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl QuicTransport {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn subscriber_urls(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `available_strategies` is never used
[INFO] [stdout]    --> src/broker/router.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl Router {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn available_strategies() -> Vec<RoutingStrategy> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreditBalanceResponse` is never constructed
[INFO] [stdout]    --> src/broker/server.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct CreditBalanceResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]    --> src/broker/server.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 206 | struct AddCreditsRequest {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     description: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AddCreditsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/broker/stats.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl TransactionStatus {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 78 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/broker/stats.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct DataPoint {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 90 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DataPoint` 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: constant `BG` is never used
[INFO] [stdout]   --> src/broker/tui.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const BG: Color = Color::Reset;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BG` is never used
[INFO] [stdout]   --> src/broker/tui.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const HEADER_BG: Color = Color::Rgb(30, 30, 40);
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `price_score` is never used
[INFO] [stdout]   --> src/broker/worker.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl WorkerPricing {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn price_score(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_capable` and `count` are never used
[INFO] [stdout]    --> src/broker/worker.rs:415:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl WorkerRegistry {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn find_capable(&self, cpus: f64, memory_bytes: u64, gpus: u32) -> Vec<Worker> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean` is never used
[INFO] [stdout]    --> src/common/mod.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn clean(c: String) -> String {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_soup` is never used
[INFO] [stdout]    --> src/common/mod.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn get_tag_soup(soup: Soup, c: &str) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag` is never used
[INFO] [stdout]    --> src/common/mod.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn get_tag(node: Rc<Node>, c: &str) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_text` is never used
[INFO] [stdout]    --> src/common/mod.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn get_tag_text(node: Rc<Node>, c: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_rec` is never used
[INFO] [stdout]    --> src/common/mod.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn get_tag_rec(node: Rc<Node>, cs: &mut Vec<&str>) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_all` is never used
[INFO] [stdout]    --> src/common/mod.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 |     fn get_all(node: Rc<Node>, c: &str) -> Vec<Rc<Node>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_fn` is never used
[INFO] [stdout]    --> src/exec/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn execute_fn<T: Debug + Any>(response: Result<T, Box<dyn StdError>>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HANDLER` is never used
[INFO] [stdout]    --> src/up.rs:426:16
[INFO] [stdout]     |
[INFO] [stdout] 426 |         static HANDLER: OnceLock<Mutex<Option<Arc<AtomicBool>>>> = OnceLock::new();
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/up.rs:433:40
[INFO] [stdout]     |
[INFO] [stdout] 433 |     libc::signal(libc::SIGINT, handler as libc::sighandler_t);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 433 |     libc::signal(libc::SIGINT, handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.71s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, html5ever v0.22.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "0cb54d124e5af790d90fbf9463c9857099762dc756cba53310c0b3355b347425", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0cb54d124e5af790d90fbf9463c9857099762dc756cba53310c0b3355b347425", kill_on_drop: false }`
[INFO] [stdout] 0cb54d124e5af790d90fbf9463c9857099762dc756cba53310c0b3355b347425
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9c8feca8e4071a81a510ce183f51b968f3b79634bb2a33e7c67bef53fd5c479a
[INFO] running `Command { std: "docker" "start" "-a" "9c8feca8e4071a81a510ce183f51b968f3b79634bb2a33e7c67bef53fd5c479a", kill_on_drop: false }`
[INFO] [stderr]    Compiling zc2 v0.0.16 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/broker/worker.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Arc, Mutex};
[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: `fetch_broker_config`
[INFO] [stdout]   --> src/broker/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub use config::{fetch_broker_config, get_tailscale_auth_key};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserCredits`
[INFO] [stdout]   --> src/broker/mod.rs:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use credits::{CreditManager, UserCredits};
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DiscoveryMode`, `Discovery`, and `detect_discovery_mode`
[INFO] [stdout]   --> src/broker/mod.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub use discovery::{detect_discovery_mode, Discovery, DiscoveryConfig, DiscoveryMode};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LedgerError`
[INFO] [stdout]   --> src/broker/mod.rs:40:26
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub use ledger::{Ledger, LedgerError};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RoutingStrategy`
[INFO] [stdout]   --> src/broker/mod.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub use router::{Router, RoutingStrategy};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StatsResponse` and `WorkerStats`
[INFO] [stdout]   --> src/broker/mod.rs:43:33
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub use stats::{StatsCollector, StatsResponse, WorkerStats};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `run_tui`
[INFO] [stdout]   --> src/broker/mod.rs:44:49
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub use tui::{cleanup_terminal, run_remote_tui, run_tui};
[INFO] [stdout]    |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HardwareInfo` and `Worker`
[INFO] [stdout]   --> src/broker/mod.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use worker::{HardwareInfo, Worker, WorkerRegistry, WorkerStatus};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/common/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]   --> src/common/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use colored::Colorize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WorkerPricing`, `WorkerRegistration`, and `WorkerResources`
[INFO] [stdout]   --> src/integration_tests.rs:31:18
[INFO] [stdout]    |
[INFO] [stdout] 31 |         worker::{WorkerPricing, WorkerRegistration, WorkerResources},
[INFO] [stdout]    |                  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/broker/quic.rs:301:24
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let (mut send, mut recv) = conn
[INFO] [stdout]     |                        ----^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/broker/quic.rs:534:5
[INFO] [stdout]     |
[INFO] [stdout] 534 |     mut recv: quinn::RecvStream,
[INFO] [stdout]     |     ----^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]     --> src/integration_tests.rs:1604:13
[INFO] [stdout]      |
[INFO] [stdout] 1604 |         use std::io::Read as IoRead;
[INFO] [stdout]      |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]   --> src/broker/config.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let api_key = match std::env::var("ZAKURO_API_KEY") {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/broker/config.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let api_url = match std::env::var("ZAKURO_API_URL") {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `recv`
[INFO] [stdout]    --> src/broker/quic.rs:534:5
[INFO] [stdout]     |
[INFO] [stdout] 534 |     mut recv: quinn::RecvStream,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requirements`
[INFO] [stdout]    --> src/broker/router.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |         requirements: &ResourceRequirements,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w1`
[INFO] [stdout]    --> src/broker/router.rs:889:13
[INFO] [stdout]     |
[INFO] [stdout] 889 |         let w1 = registry.register(make_reg("w1", 0, 4.0, 4, 0, 0.001));
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_w1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w2`
[INFO] [stdout]    --> src/broker/router.rs:890:13
[INFO] [stdout]     |
[INFO] [stdout] 890 |         let w2 = registry.register(make_reg("w2", 1, 4.0, 4, 0, 0.01));
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_self_owned`
[INFO] [stdout]     --> src/broker/server.rs:1410:5
[INFO] [stdout]      |
[INFO] [stdout] 1410 |     is_self_owned: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_self_owned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `alive`
[INFO] [stdout]    --> src/common/mod.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn logs(alive: bool) {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_alive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w1_port`
[INFO] [stdout]     --> src/integration_tests.rs:2006:22
[INFO] [stdout]      |
[INFO] [stdout] 2006 |         let (w1_uri, w1_port) = start_fibonacci_worker("127.0.0.2");
[INFO] [stdout]      |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_w1_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w2_port`
[INFO] [stdout]     --> src/integration_tests.rs:2007:22
[INFO] [stdout]      |
[INFO] [stdout] 2007 |         let (w2_uri, w2_port) = start_fibonacci_worker("127.0.0.3");
[INFO] [stdout]      |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_w2_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `free`
[INFO] [stdout]     --> src/integration_tests.rs:2120:13
[INFO] [stdout]      |
[INFO] [stdout] 2120 |         let free     = rows.iter().filter(|r| r.cost == 0.0 && r.ok).count();
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_free`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1_ch`
[INFO] [stdout]     --> src/integration_tests.rs:2142:22
[INFO] [stdout]      |
[INFO] [stdout] 2142 |         let (n1_cnt, n1_ch, n1_fr, n1_cost, n1_lat) = node_stats("Node01");
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n1_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1_fr`
[INFO] [stdout]     --> src/integration_tests.rs:2142:29
[INFO] [stdout]      |
[INFO] [stdout] 2142 |         let (n1_cnt, n1_ch, n1_fr, n1_cost, n1_lat) = node_stats("Node01");
[INFO] [stdout]      |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n1_fr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2_ch`
[INFO] [stdout]     --> src/integration_tests.rs:2143:22
[INFO] [stdout]      |
[INFO] [stdout] 2143 |         let (n2_cnt, n2_ch, n2_fr, n2_cost, n2_lat) = node_stats("Node02");
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n2_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2_fr`
[INFO] [stdout]     --> src/integration_tests.rs:2143:29
[INFO] [stdout]      |
[INFO] [stdout] 2143 |         let (n2_cnt, n2_ch, n2_fr, n2_cost, n2_lat) = node_stats("Node02");
[INFO] [stdout]      |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n2_fr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_credits` is never read
[INFO] [stdout]    --> src/broker/mod.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct BrokerConfig {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub min_credits: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BrokerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enable_dns` is never read
[INFO] [stdout]   --> src/broker/discovery.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct DiscoveryConfig {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub enable_dns: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiscoveryConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mode` is never used
[INFO] [stdout]    --> src/broker/discovery.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Discovery {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn mode(&self) -> &DiscoveryMode {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ColorExt` is never used
[INFO] [stdout]    --> src/broker/discovery.rs:605:7
[INFO] [stdout]     |
[INFO] [stdout] 605 | trait ColorExt {
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LedgerTransaction` is never constructed
[INFO] [stdout]   --> src/broker/ledger.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LedgerTransaction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionType` is never used
[INFO] [stdout]   --> src/broker/ledger.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum TransactionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectionFailed` and `DatabaseError` are never constructed
[INFO] [stdout]   --> src/broker/ledger.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum LedgerError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 39 |     ConnectionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     DatabaseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LedgerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_authoritative_balance` and `authoritative_balance_snapshot` are never used
[INFO] [stdout]    --> src/broker/ledger.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl Ledger {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn get_authoritative_balance(&self, user_id: &str) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn authoritative_balance_snapshot(&self) -> Vec<(String, f64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `base_url` is never used
[INFO] [stdout]    --> src/broker/peer.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl PeerClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn base_url(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_quic_port` is never used
[INFO] [stdout]    --> src/broker/peer.rs:568:12
[INFO] [stdout]     |
[INFO] [stdout] 394 | impl PeerManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn set_quic_port(&self, peer_url: &str, port: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `subscriber_urls` is never used
[INFO] [stdout]    --> src/broker/quic.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl QuicTransport {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn subscriber_urls(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `available_strategies` is never used
[INFO] [stdout]    --> src/broker/router.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl Router {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn available_strategies() -> Vec<RoutingStrategy> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreditBalanceResponse` is never constructed
[INFO] [stdout]    --> src/broker/server.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct CreditBalanceResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]    --> src/broker/server.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 206 | struct AddCreditsRequest {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     description: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AddCreditsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/broker/stats.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl TransactionStatus {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 78 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/broker/stats.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct DataPoint {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 90 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DataPoint` 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: constant `BG` is never used
[INFO] [stdout]   --> src/broker/tui.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const BG: Color = Color::Reset;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BG` is never used
[INFO] [stdout]   --> src/broker/tui.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const HEADER_BG: Color = Color::Rgb(30, 30, 40);
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `path` is never used
[INFO] [stdout]    --> src/broker/wal.rs:283:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Wal {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn path(&self) -> &std::path::Path {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean` is never used
[INFO] [stdout]    --> src/common/mod.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn clean(c: String) -> String {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_soup` is never used
[INFO] [stdout]    --> src/common/mod.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn get_tag_soup(soup: Soup, c: &str) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag` is never used
[INFO] [stdout]    --> src/common/mod.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn get_tag(node: Rc<Node>, c: &str) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_text` is never used
[INFO] [stdout]    --> src/common/mod.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn get_tag_text(node: Rc<Node>, c: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tag_rec` is never used
[INFO] [stdout]    --> src/common/mod.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn get_tag_rec(node: Rc<Node>, cs: &mut Vec<&str>) -> Rc<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_all` is never used
[INFO] [stdout]    --> src/common/mod.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 |     fn get_all(node: Rc<Node>, c: &str) -> Vec<Rc<Node>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_fn` is never used
[INFO] [stdout]    --> src/exec/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn execute_fn<T: Debug + Any>(response: Result<T, Box<dyn StdError>>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HANDLER` is never used
[INFO] [stdout]    --> src/up.rs:426:16
[INFO] [stdout]     |
[INFO] [stdout] 426 |         static HANDLER: OnceLock<Mutex<Option<Arc<AtomicBool>>>> = OnceLock::new();
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `worker` is never read
[INFO] [stdout]     --> src/integration_tests.rs:2371:13
[INFO] [stdout]      |
[INFO] [stdout] 2367 |         struct Row {
[INFO] [stdout]      |                --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2371 |             worker: String,
[INFO] [stdout]      |             ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Row` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/up.rs:433:40
[INFO] [stdout]     |
[INFO] [stdout] 433 |     libc::signal(libc::SIGINT, handler as libc::sighandler_t);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 433 |     libc::signal(libc::SIGINT, handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.24s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, html5ever v0.22.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "9c8feca8e4071a81a510ce183f51b968f3b79634bb2a33e7c67bef53fd5c479a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c8feca8e4071a81a510ce183f51b968f3b79634bb2a33e7c67bef53fd5c479a", kill_on_drop: false }`
[INFO] [stdout] 9c8feca8e4071a81a510ce183f51b968f3b79634bb2a33e7c67bef53fd5c479a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a607920b29f6f7851602b861c1343b816cbfcaa3a94ef8ae2f5d0dba5dffcd95
[INFO] running `Command { std: "docker" "start" "-a" "a607920b29f6f7851602b861c1343b816cbfcaa3a94ef8ae2f5d0dba5dffcd95", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Arc`
[INFO] [stderr]  --> src/broker/worker.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fetch_broker_config`
[INFO] [stderr]   --> src/broker/mod.rs:37:18
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub use config::{fetch_broker_config, get_tailscale_auth_key};
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `UserCredits`
[INFO] [stderr]   --> src/broker/mod.rs:38:34
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub use credits::{CreditManager, UserCredits};
[INFO] [stderr]    |                                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DiscoveryMode`, `Discovery`, and `detect_discovery_mode`
[INFO] [stderr]   --> src/broker/mod.rs:39:21
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub use discovery::{detect_discovery_mode, Discovery, DiscoveryConfig, DiscoveryMode};
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LedgerError`
[INFO] [stderr]   --> src/broker/mod.rs:40:26
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub use ledger::{Ledger, LedgerError};
[INFO] [stderr]    |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RoutingStrategy`
[INFO] [stderr]   --> src/broker/mod.rs:41:26
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub use router::{Router, RoutingStrategy};
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `StatsResponse` and `WorkerStats`
[INFO] [stderr]   --> src/broker/mod.rs:43:33
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub use stats::{StatsCollector, StatsResponse, WorkerStats};
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `run_tui`
[INFO] [stderr]   --> src/broker/mod.rs:44:49
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub use tui::{cleanup_terminal, run_remote_tui, run_tui};
[INFO] [stderr]    |                                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HardwareInfo` and `Worker`
[INFO] [stderr]   --> src/broker/mod.rs:48:18
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub use worker::{HardwareInfo, Worker, WorkerRegistry, WorkerStatus};
[INFO] [stderr]    |                  ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::HashMap`
[INFO] [stderr]  --> src/common/mod.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::{collections::HashMap, fs::File};
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]   --> src/common/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use colored::Colorize;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `WorkerPricing`, `WorkerRegistration`, and `WorkerResources`
[INFO] [stderr]   --> src/integration_tests.rs:31:18
[INFO] [stderr]    |
[INFO] [stderr] 31 |         worker::{WorkerPricing, WorkerRegistration, WorkerResources},
[INFO] [stderr]    |                  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/broker/quic.rs:301:24
[INFO] [stderr]     |
[INFO] [stderr] 301 |         let (mut send, mut recv) = conn
[INFO] [stderr]     |                        ----^^^^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/broker/quic.rs:534:5
[INFO] [stderr]     |
[INFO] [stderr] 534 |     mut recv: quinn::RecvStream,
[INFO] [stderr]     |     ----^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Read`
[INFO] [stderr]     --> src/integration_tests.rs:1604:13
[INFO] [stderr]      |
[INFO] [stderr] 1604 |         use std::io::Read as IoRead;
[INFO] [stderr]      |             ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `api_key`
[INFO] [stderr]   --> src/broker/config.rs:59:9
[INFO] [stderr]    |
[INFO] [stderr] 59 |     let api_key = match std::env::var("ZAKURO_API_KEY") {
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `api_url`
[INFO] [stderr]   --> src/broker/config.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let api_url = match std::env::var("ZAKURO_API_URL") {
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `recv`
[INFO] [stderr]    --> src/broker/quic.rs:534:5
[INFO] [stderr]     |
[INFO] [stderr] 534 |     mut recv: quinn::RecvStream,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recv`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `requirements`
[INFO] [stderr]    --> src/broker/router.rs:243:9
[INFO] [stderr]     |
[INFO] [stderr] 243 |         requirements: &ResourceRequirements,
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requirements`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w1`
[INFO] [stderr]    --> src/broker/router.rs:889:13
[INFO] [stderr]     |
[INFO] [stderr] 889 |         let w1 = registry.register(make_reg("w1", 0, 4.0, 4, 0, 0.001));
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_w1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w2`
[INFO] [stderr]    --> src/broker/router.rs:890:13
[INFO] [stderr]     |
[INFO] [stderr] 890 |         let w2 = registry.register(make_reg("w2", 1, 4.0, 4, 0, 0.01));
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_self_owned`
[INFO] [stderr]     --> src/broker/server.rs:1410:5
[INFO] [stderr]      |
[INFO] [stderr] 1410 |     is_self_owned: bool,
[INFO] [stderr]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_self_owned`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `alive`
[INFO] [stderr]    --> src/common/mod.rs:189:13
[INFO] [stderr]     |
[INFO] [stderr] 189 | pub fn logs(alive: bool) {
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_alive`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w1_port`
[INFO] [stderr]     --> src/integration_tests.rs:2006:22
[INFO] [stderr]      |
[INFO] [stderr] 2006 |         let (w1_uri, w1_port) = start_fibonacci_worker("127.0.0.2");
[INFO] [stderr]      |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_w1_port`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w2_port`
[INFO] [stderr]     --> src/integration_tests.rs:2007:22
[INFO] [stderr]      |
[INFO] [stderr] 2007 |         let (w2_uri, w2_port) = start_fibonacci_worker("127.0.0.3");
[INFO] [stderr]      |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_w2_port`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `free`
[INFO] [stderr]     --> src/integration_tests.rs:2120:13
[INFO] [stderr]      |
[INFO] [stderr] 2120 |         let free     = rows.iter().filter(|r| r.cost == 0.0 && r.ok).count();
[INFO] [stderr]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_free`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n1_ch`
[INFO] [stderr]     --> src/integration_tests.rs:2142:22
[INFO] [stderr]      |
[INFO] [stderr] 2142 |         let (n1_cnt, n1_ch, n1_fr, n1_cost, n1_lat) = node_stats("Node01");
[INFO] [stderr]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n1_ch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n1_fr`
[INFO] [stderr]     --> src/integration_tests.rs:2142:29
[INFO] [stderr]      |
[INFO] [stderr] 2142 |         let (n1_cnt, n1_ch, n1_fr, n1_cost, n1_lat) = node_stats("Node01");
[INFO] [stderr]      |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n1_fr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n2_ch`
[INFO] [stderr]     --> src/integration_tests.rs:2143:22
[INFO] [stderr]      |
[INFO] [stderr] 2143 |         let (n2_cnt, n2_ch, n2_fr, n2_cost, n2_lat) = node_stats("Node02");
[INFO] [stderr]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n2_ch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n2_fr`
[INFO] [stderr]     --> src/integration_tests.rs:2143:29
[INFO] [stderr]      |
[INFO] [stderr] 2143 |         let (n2_cnt, n2_ch, n2_fr, n2_cost, n2_lat) = node_stats("Node02");
[INFO] [stderr]      |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n2_fr`
[INFO] [stderr] 
[INFO] [stderr] warning: field `min_credits` is never read
[INFO] [stderr]    --> src/broker/mod.rs:111:9
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub struct BrokerConfig {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub min_credits: f64,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `BrokerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `enable_dns` is never read
[INFO] [stderr]   --> src/broker/discovery.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct DiscoveryConfig {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub enable_dns: bool,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DiscoveryConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `mode` is never used
[INFO] [stderr]    --> src/broker/discovery.rs:110:12
[INFO] [stderr]     |
[INFO] [stderr] 102 | impl Discovery {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn mode(&self) -> &DiscoveryMode {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ColorExt` is never used
[INFO] [stderr]    --> src/broker/discovery.rs:605:7
[INFO] [stderr]     |
[INFO] [stderr] 605 | trait ColorExt {
[INFO] [stderr]     |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LedgerTransaction` is never constructed
[INFO] [stderr]   --> src/broker/ledger.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct LedgerTransaction {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TransactionType` is never used
[INFO] [stderr]   --> src/broker/ledger.rs:27:10
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub enum TransactionType {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ConnectionFailed` and `DatabaseError` are never constructed
[INFO] [stderr]   --> src/broker/ledger.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub enum LedgerError {
[INFO] [stderr]    |          ----------- variants in this enum
[INFO] [stderr] 39 |     ConnectionFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     DatabaseError(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LedgerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_authoritative_balance` and `authoritative_balance_snapshot` are never used
[INFO] [stderr]    --> src/broker/ledger.rs:461:12
[INFO] [stderr]     |
[INFO] [stderr] 435 | impl Ledger {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 461 |     pub fn get_authoritative_balance(&self, user_id: &str) -> Option<f64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 564 |     pub fn authoritative_balance_snapshot(&self) -> Vec<(String, f64)> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `base_url` is never used
[INFO] [stderr]    --> src/broker/peer.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr] 101 | impl PeerClient {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn base_url(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_quic_port` is never used
[INFO] [stderr]    --> src/broker/peer.rs:568:12
[INFO] [stderr]     |
[INFO] [stderr] 394 | impl PeerManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 568 |     pub fn set_quic_port(&self, peer_url: &str, port: u16) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `subscriber_urls` is never used
[INFO] [stderr]    --> src/broker/quic.rs:276:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | impl QuicTransport {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 276 |     pub fn subscriber_urls(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `available_strategies` is never used
[INFO] [stderr]    --> src/broker/router.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 215 | impl Router {
[INFO] [stderr]     | ----------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 224 |     pub fn available_strategies() -> Vec<RoutingStrategy> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CreditBalanceResponse` is never constructed
[INFO] [stderr]    --> src/broker/server.rs:189:12
[INFO] [stderr]     |
[INFO] [stderr] 189 | pub struct CreditBalanceResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `description` is never read
[INFO] [stderr]    --> src/broker/server.rs:209:5
[INFO] [stderr]     |
[INFO] [stderr] 206 | struct AddCreditsRequest {
[INFO] [stderr]     |        ----------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 209 |     description: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `AddCreditsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> src/broker/stats.rs:78:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | impl TransactionStatus {
[INFO] [stderr]    | ---------------------- method in this implementation
[INFO] [stderr] 78 |     pub fn as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `timestamp` is never read
[INFO] [stderr]   --> src/broker/stats.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub struct DataPoint {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 90 |     pub timestamp: Instant,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DataPoint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BG` is never used
[INFO] [stderr]   --> src/broker/tui.rs:39:15
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub const BG: Color = Color::Reset;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_BG` is never used
[INFO] [stderr]   --> src/broker/tui.rs:47:15
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub const HEADER_BG: Color = Color::Rgb(30, 30, 40);
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `path` is never used
[INFO] [stderr]    --> src/broker/wal.rs:283:12
[INFO] [stderr]     |
[INFO] [stderr] 115 | impl Wal {
[INFO] [stderr]     | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 283 |     pub fn path(&self) -> &std::path::Path {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clean` is never used
[INFO] [stderr]    --> src/common/mod.rs:190:8
[INFO] [stderr]     |
[INFO] [stderr] 190 |     fn clean(c: String) -> String {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_tag_soup` is never used
[INFO] [stderr]    --> src/common/mod.rs:194:8
[INFO] [stderr]     |
[INFO] [stderr] 194 |     fn get_tag_soup(soup: Soup, c: &str) -> Rc<Node> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_tag` is never used
[INFO] [stderr]    --> src/common/mod.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 |     fn get_tag(node: Rc<Node>, c: &str) -> Rc<Node> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_tag_text` is never used
[INFO] [stderr]    --> src/common/mod.rs:206:8
[INFO] [stderr]     |
[INFO] [stderr] 206 |     fn get_tag_text(node: Rc<Node>, c: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_tag_rec` is never used
[INFO] [stderr]    --> src/common/mod.rs:209:8
[INFO] [stderr]     |
[INFO] [stderr] 209 |     fn get_tag_rec(node: Rc<Node>, cs: &mut Vec<&str>) -> Rc<Node> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_all` is never used
[INFO] [stderr]    --> src/common/mod.rs:217:8
[INFO] [stderr]     |
[INFO] [stderr] 217 |     fn get_all(node: Rc<Node>, c: &str) -> Vec<Rc<Node>> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_fn` is never used
[INFO] [stderr]    --> src/exec/mod.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn execute_fn<T: Debug + Any>(response: Result<T, Box<dyn StdError>>) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `HANDLER` is never used
[INFO] [stderr]    --> src/up.rs:426:16
[INFO] [stderr]     |
[INFO] [stderr] 426 |         static HANDLER: OnceLock<Mutex<Option<Arc<AtomicBool>>>> = OnceLock::new();
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `worker` is never read
[INFO] [stderr]     --> src/integration_tests.rs:2371:13
[INFO] [stderr]      |
[INFO] [stderr] 2367 |         struct Row {
[INFO] [stderr]      |                --- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 2371 |             worker: String,
[INFO] [stderr]      |             ^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `Row` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: direct cast of function item into an integer
[INFO] [stderr]    --> src/up.rs:433:40
[INFO] [stderr]     |
[INFO] [stderr] 433 |     libc::signal(libc::SIGINT, handler as libc::sighandler_t);
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stderr] help: first cast to a pointer `as *const ()`
[INFO] [stderr]     |
[INFO] [stderr] 433 |     libc::signal(libc::SIGINT, handler as *const () as libc::sighandler_t);
[INFO] [stderr]     |                                        ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `zc2` (bin "zc" test) generated 59 warnings (run `cargo fix --bin "zc" -p zc2 --tests` to apply 30 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, html5ever v0.22.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/zc-25f554236856fbd5)
[INFO] [stdout] 
[INFO] [stdout] running 148 tests
[INFO] [stdout] test broker::credits::tests::test_add_increases_balance_and_total_added ... ok
[INFO] [stdout] test broker::credits::tests::test_deduct_fails_on_insufficient_balance ... ok
[INFO] [stdout] test broker::credits::tests::test_deduct_success_updates_balance_and_spent ... ok
[INFO] [stdout] test async_exec::tests::spawn_blocking_returns_handle ... ok
[INFO] [stdout] test broker::credits::tests::test_has_credits ... ok
[INFO] [stdout] test broker::credits::tests::test_check_rate_limit_unknown_user_returns_false ... ok
[INFO] [stdout] test broker::credits::tests::test_get_returns_none_for_unknown_user ... ok
[INFO] [stdout] test broker::credits::tests::test_get_or_create_initialises_balance ... ok
[INFO] [stdout] test broker::credits::tests::test_has_credits_check ... ok
[INFO] [stdout] test broker::credits::tests::test_new_user_initial_balance ... ok
[INFO] [stdout] test broker::credits::tests::test_rate_limit_manager_check ... ok
[INFO] [stdout] test broker::credits::tests::test_rate_limit_per_day_blocks_after_limit ... ok
[INFO] [stdout] test broker::credits::tests::test_rate_limit_per_minute_blocks_after_limit ... ok
[INFO] [stdout] test broker::credits::tests::test_rate_limit_per_second_blocks_after_limit ... ok
[INFO] [stdout] test broker::credits::tests::test_set_balance_syncs_from_ledger ... ok
[INFO] [stdout] test broker::ledger::tests::test_extract_user_from_key ... ok
[INFO] [stdout] test broker::ledger::tests::test_local_fallback ... ok
[INFO] [stdout] test broker::peer::tests::test_determine_authority_disabled ... ok
[INFO] [stdout] test broker::peer::tests::test_determine_authority_single_broker ... ok
[INFO] [stdout] test broker::peer::tests::test_simple_hash_deterministic ... ok
[INFO] [stdout] test broker::peer::tests::test_simple_hash_distribution ... ok
[INFO] [stdout] test broker::router::tests::test_estimate_cost_no_workers_returns_none ... ok
[INFO] [stdout] test broker::router::tests::test_insufficient_credits_returns_error ... ok
[INFO] [stdout] test broker::router::tests::test_rate_limited_returns_error ... ok
[INFO] [stdout] test broker::router::tests::test_best_price_selects_cheapest_worker ... ok
[INFO] [stdout] test broker::router::tests::test_best_latency_selects_fastest_worker ... ok
[INFO] [stdout] test broker::router::tests::test_tag_filter_requires_all_tags ... ok
[INFO] [stdout] test broker::router::tests::test_timeout_incompatible_returns_error ... ok
[INFO] [stdout] test broker::router::tests::test_timeout_unlimited_worker_accepts_any_timeout ... ok
[INFO] [stdout] test broker::router::tests::test_estimate_cost_returns_min_and_max ... ok
[INFO] [stdout] test broker::router::tests::test_local_mode_returns_first_worker_free ... ok
[INFO] [stdout] test broker::router::tests::test_price_change_affects_routing_decision ... ok
[INFO] [stdout] test broker::router::tests::test_no_healthy_workers_returns_no_workers ... ok
[INFO] [stdout] test broker::router::tests::test_local_mode_no_workers_returns_error ... ok
[INFO] [stdout] test broker::router::tests::test_no_capacity_returns_no_capacity ... ok
[INFO] [stdout] test broker::router::tests::test_round_robin_cycles_through_workers ... ok
[INFO] [stdout] test broker::router::tests::test_worker_type_match_routes_correctly ... ok
[INFO] [stdout] test broker::worker::tests::test_can_handle_exact_match ... ok
[INFO] [stdout] test broker::router::tests::test_worker_type_mismatch_returns_error ... ok
[INFO] [stdout] test broker::worker::tests::test_can_handle_gpu_required_but_none_fails ... ok
[INFO] [stdout] test broker::worker::tests::test_can_handle_over_cpu_fails ... ok
[INFO] [stdout] test broker::worker::tests::test_can_handle_over_memory_fails ... ok
[INFO] [stdout] test broker::worker::tests::test_can_handle_unhealthy_worker_fails ... ok
[INFO] [stdout] test broker::worker::tests::test_heartbeat_unknown_worker_returns_none ... ok
[INFO] [stdout] test broker::worker::tests::test_heartbeat_updates_resources_and_status ... ok
[INFO] [stdout] test broker::worker::tests::test_find_capable_filters_by_resources ... ok
[INFO] [stdout] test broker::worker::tests::test_healthy_list_excludes_unhealthy ... ok
[INFO] [stdout] test broker::worker::tests::test_increment_active_and_decrement_on_record ... ok
[INFO] [stdout] test broker::worker::tests::test_pricing_cost_formula ... ok
[INFO] [stdout] test broker::worker::tests::test_pricing_min_charge_enforced ... ok
[INFO] [stdout] test broker::worker::tests::test_pricing_price_score_weighted ... ok
[INFO] [stdout] test broker::worker::tests::test_mark_stale_sets_unhealthy ... ok
[INFO] [stdout] test broker::worker_quic::tests::network_roundtrip ... ignored
[INFO] [stdout] test broker::worker::tests::test_record_request_latency_ema ... ok
[INFO] [stdout] test broker::worker::tests::test_register_stores_fields ... ok
[INFO] [stdout] test broker::worker::tests::test_remove_worker ... ok
[INFO] [stdout] test broker::worker_quic::tests::parse_uri_ok ... ok
[INFO] [stdout] test broker::worker::tests::test_register_assigns_unique_id ... ok
[INFO] [stdout] test broker::worker::tests::test_refresh_heartbeat_restores_healthy ... ok
[INFO] [stdout] test broker::worker_quic::tests::parse_uri_default_port ... ok
[INFO] [stdout] test broker::worker_quic::tests::parse_uri_rejects_http ... ok
[INFO] [stdout] test integration_tests::integration::test_api_key_format_zk_user_hex_resolves_user_id ... ok
[INFO] [stdout] test integration_tests::integration::test_api_key_invalid_format_rejected ... ok
[INFO] [stdout] test broker::worker_quic::tests::parse_uri_strips_trailing_path ... ok
[INFO] [stdout] test integration_tests::integration::test_api_mode_credit_cycle_uses_local_only ... ok
[INFO] [stdout] test integration_tests::integration::test_api_mode_skips_pg_pool_creation ... ok
[INFO] [stdout] test integration_tests::integration::test_api_mode_wal_recovery_cancel_uses_local_fallback ... ok
[INFO] [stdout] test broker::wal::tests::test_update_status_unknown_request_is_noop ... ok
[INFO] [stdout] test broker::wal::tests::test_open_creates_file ... ok
[INFO] [stdout] test integration_tests::integration::test_budget_credits_derives_correct_timeout_and_reservation ... ok
[INFO] [stdout] test integration_tests::integration::test_cost_calculation_price_consistency ... ok
[INFO] [stdout] test broker::wal::tests::test_append_then_flush_persists_to_disk ... ok
[INFO] [stdout] test broker::wal::tests::test_read_uncommitted_excludes_committed_and_failed ... ok
[INFO] [stdout] test integration_tests::integration::test_api_mode_wal_recovery_commit_uses_local_fallback ... ok
[INFO] [stdout] test broker::wal::tests::test_full_lifecycle_reserved_executed_committed ... ok
[INFO] [stdout] test broker::wal::tests::test_update_status_appends_new_line ... ok
[INFO] [stdout] test broker::wal::tests::test_reload_populates_index_from_disk ... ok
[INFO] [stdout] test broker::wal::tests::test_compact_also_clears_failed_entries ... ok
[INFO] [stdout] test broker::wal::tests::test_compact_removes_committed_entries_from_disk ... ok
[INFO] [stdout] test integration_tests::integration::test_ledger_local_add_credits_accumulates ... ok
[INFO] [stdout] test integration_tests::integration::test_ledger_local_cancel_restores_full_balance ... ok
[INFO] [stdout] test integration_tests::integration::test_ledger_local_fallback_full_cycle ... ok
[INFO] [stdout] test integration_tests::integration::test_ledger_local_reserve_insufficient_rejects ... ok
[INFO] [stdout] test integration_tests::integration::test_ledger_local_reserve_commit_refunds_difference ... ok
[INFO] [stdout] test integration_tests::integration::test_multi_window_rate_limits_enforced_together ... ok
[INFO] [stdout] test integration_tests::integration::test_concurrent_reservations_no_overdraft ... ok
[INFO] [stdout] test integration_tests::integration::test_non_api_mode_attempts_pg_connection ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_authority_deterministic_with_two_brokers ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_authority_distribution_two_brokers ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_authority_is_deterministic ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_authority_peer_url_stable ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_local_reserve_commit_balance_consistency ... ok
[INFO] [stdout] test integration_tests::integration::test_broker_state_local_mode_flag ... ok
[INFO] [stdout] test integration_tests::integration::test_is_local_worker_comprehensive ... ok
[INFO] [stdout] test integration_tests::integration::test_is_local_worker_all_local_in_local_mode ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_mesh_fibonacci_500_api ... ok
[INFO] [stdout] test integration_tests::integration::test_is_local_worker_localhost ... ok
[INFO] [stdout] test async_exec::tests::spawn_detached_runs ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_reserve_insufficient_returns_402 ... ok
[INFO] [stdout] test integration_tests::integration::test_add_credits_and_read_balance ... ok
[INFO] [stdout] test integration_tests::integration::test_prefetched_balance_status_transitions ... ok
[INFO] [stdout] test integration_tests::integration::test_execute_local_mode_no_worker_returns_no_workers ... ok
[INFO] [stdout] test integration_tests::integration::test_execute_negative_budget_credits_rejected ... ok
[INFO] [stdout] test integration_tests::integration::test_quic_throughput_benchmark ... ok
[INFO] [stdout] test integration_tests::integration::test_rate_limit_per_second_blocks_excess_requests ... ok
[INFO] [stdout] test integration_tests::integration::test_reconciliation_needed_after_staleness ... ok
[INFO] [stdout] test integration_tests::integration::test_credits_endpoint_returns_balance_status ... ok
[INFO] [stdout] test integration_tests::integration::test_execute_insufficient_credits_rejected ... ok
[INFO] [stdout] test integration_tests::integration::test_execute_no_auth_returns_unauthorized_when_local_mode_disabled ... ok
[INFO] [stdout] test integration_tests::integration::test_reserve_uses_authoritative_balance_as_fallback ... ok
[INFO] [stdout] test integration_tests::integration::test_price_estimate_with_workers ... ok
[INFO] [stdout] test integration_tests::integration::test_health_check_no_auth_required ... ok
[INFO] [stdout] test integration_tests::integration::test_multiple_topups_accumulate ... ok
[INFO] [stdout] test integration_tests::integration::test_multiple_workers_registered ... ok
[INFO] [stdout] test integration_tests::integration::test_round_robin_even_distribution ... ok
[INFO] [stdout] test integration_tests::integration::test_local_mode_mock_worker_execute_no_credits_charged ... ok
[INFO] [stdout] test integration_tests::integration::test_scenario_register_worker_and_verify_price ... ok
[INFO] [stdout] test integration_tests::integration::test_stale_worker_marked_unhealthy ... ok
[INFO] [stdout] test integration_tests::integration::test_standalone_billing_cancel_full_refund ... ok
[INFO] [stdout] test integration_tests::integration::test_standalone_billing_insufficient_credits ... ok
[INFO] [stdout] test integration_tests::integration::test_standalone_billing_cycle_reserve_commit ... ok
[INFO] [stdout] test integration_tests::integration::test_transaction_buffer_balance_snapshots ... ok
[INFO] [stdout] test integration_tests::integration::test_transaction_buffer_push_and_drain ... ok
[INFO] [stdout] test integration_tests::integration::test_two_broker_balance_sheet_consistency ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_health_accessible_without_key ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_health_rejects_wrong_key ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_cancel_refunds_via_http ... ok
[INFO] [stdout] test integration_tests::integration::test_user_balances_are_independent ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_reserve_commit_cycle_via_http ... ok
[INFO] [stdout] test integration_tests::integration::test_wal_proof_of_execution_full_lifecycle ... ok
[INFO] [stdout] test integration_tests::integration::test_wal_recovery_cancels_reserved_entries ... ok
[INFO] [stdout] test integration_tests::integration::test_wal_recovery_cancels_stale_reservations ... ok
[INFO] [stdout] test integration_tests::integration::test_wal_recovery_commits_executed_entries ... ok
[INFO] [stdout] test integration_tests::integration::test_peer_workers_only_returns_local_workers ... ok
[INFO] [stdout] test integration_tests::integration::test_price_estimate_no_workers_returns_error ... ok
[INFO] [stdout] test integration_tests::integration::test_register_worker_appears_in_list ... ok
[INFO] [stdout] test integration_tests::integration::test_remote_mode_requires_bearer_auth ... ok
[INFO] [stdout] test integration_tests::integration::test_retry_exhausts_all_workers_returns_503 ... ok
[INFO] [stdout] test integration_tests::integration::test_retry_failure_then_new_healthy_worker_succeeds ... ok
[INFO] [stdout] test integration_tests::integration::test_retry_marks_unreachable_workers_unhealthy ... ok
[INFO] [stdout] test integration_tests::integration::test_scenario_add_credits_then_execute_path ... ok
[INFO] [stdout] test integration_tests::integration::test_unregister_worker_removes_from_list ... ok
[INFO] [stdout] test integration_tests::integration::test_worker_list_empty_on_fresh_broker ... ok
[INFO] [stdout] test integration_tests::integration::test_worker_heartbeat_accepted ... ok
[INFO] [stdout] test integration_tests::integration::test_worker_price_affects_estimate ... ok
[INFO] [stdout] test integration_tests::integration::test_remote_mode_enforces_credits_for_non_local_worker ... ok
[INFO] [stdout] test integration_tests::integration::test_p2p_mesh_fibonacci_500 ... ok
[INFO] [stdout] test integration_tests::integration::test_two_broker_round_robin_credit_accounting ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 147 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.74s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a607920b29f6f7851602b861c1343b816cbfcaa3a94ef8ae2f5d0dba5dffcd95", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a607920b29f6f7851602b861c1343b816cbfcaa3a94ef8ae2f5d0dba5dffcd95", kill_on_drop: false }`
[INFO] [stdout] a607920b29f6f7851602b861c1343b816cbfcaa3a94ef8ae2f5d0dba5dffcd95
