[INFO] cloning repository https://github.com/maxischmaxi/callhive
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maxischmaxi/callhive" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxischmaxi%2Fcallhive", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxischmaxi%2Fcallhive'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aac32e33486ede7d7623f4f155699ff72a9a475f
[INFO] checking maxischmaxi/callhive against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxischmaxi%2Fcallhive" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/maxischmaxi/callhive
[INFO] finished tweaking git repo https://github.com/maxischmaxi/callhive
[INFO] tweaked toml for git repo https://github.com/maxischmaxi/callhive written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maxischmaxi/callhive on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/maxischmaxi/callhive 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" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rubato v0.16.2
[INFO] [stderr]   Downloaded opus v0.3.1
[INFO] [stderr]   Downloaded generic_singleton v0.5.2
[INFO] [stderr]   Downloaded easyfft v0.4.2
[INFO] [stderr]   Downloaded nnnoiseless v0.5.2
[INFO] [stderr]   Downloaded audiopus_sys v0.2.2
[INFO] [stderr]   Downloaded coreaudio-rs v0.14.0
[INFO] [stderr]   Downloaded der_derive v0.7.3
[INFO] [stderr]   Downloaded flagset v0.4.7
[INFO] [stderr]   Downloaded str0m-proto v0.4.0
[INFO] [stderr]   Downloaded x509-cert v0.2.5
[INFO] [stderr]   Downloaded dimpl v0.5.0
[INFO] [stderr]   Downloaded is v0.8.0
[INFO] [stderr]   Downloaded sctp-proto v0.9.0
[INFO] [stderr]   Downloaded str0m-aws-lc-rs v0.3.0
[INFO] [stderr]   Downloaded str0m v0.18.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 06b68d32065141d02ef09734652cf871cf4d0a3bd8fdad900592b401926b93ed
[INFO] running `Command { std: "docker" "start" "-a" "06b68d32065141d02ef09734652cf871cf4d0a3bd8fdad900592b401926b93ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "06b68d32065141d02ef09734652cf871cf4d0a3bd8fdad900592b401926b93ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "06b68d32065141d02ef09734652cf871cf4d0a3bd8fdad900592b401926b93ed", kill_on_drop: false }`
[INFO] [stdout] 06b68d32065141d02ef09734652cf871cf4d0a3bd8fdad900592b401926b93ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 36e5cdbc3f93319a14b17c806d426e94d7530f21c479ea0d4ba5314744fca41f
[INFO] running `Command { std: "docker" "start" "-a" "36e5cdbc3f93319a14b17c806d426e94d7530f21c479ea0d4ba5314744fca41f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking dasp_frame v0.11.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling prost-types v0.13.5
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]    Compiling der_derive v0.7.3
[INFO] [stderr]     Checking flagset v0.4.7
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking dasp_ring_buffer v0.11.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking fastbloom v0.14.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]     Checking dasp_rms v0.11.0
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]     Checking dasp_peak v0.11.0
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling bindgen v0.65.1
[INFO] [stderr]     Checking lru-slab v0.1.2
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking dasp_envelope v0.11.0
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]     Checking dasp_interpolate v0.11.0
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking dasp_window v0.11.1
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]     Checking anymap3 v1.0.1
[INFO] [stderr]     Checking generic_singleton v0.5.2
[INFO] [stderr]     Checking x509-cert v0.2.5
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking dasp_signal v0.11.0
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking dasp_slice v0.11.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking array-init v2.1.0
[INFO] [stderr]     Checking textwrap v0.16.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blake3 v1.8.3
[INFO] [stderr]    Compiling aws-lc-sys v0.39.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling audiopus_sys v0.2.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]    Compiling cpal v0.17.3
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]     Checking dasp v0.11.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking opus v0.3.1
[INFO] [stderr]    Compiling callhive-protocol v0.1.0 (/opt/rustwide/workdir/crates/callhive-protocol)
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking sctp-proto v0.9.0
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]    Compiling callhive-video v0.1.0 (/opt/rustwide/workdir/crates/callhive-video)
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking realfft v3.5.0
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking easyfft v0.4.2
[INFO] [stderr]     Checking rubato v0.16.2
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking nnnoiseless v0.5.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking callhive-audio v0.1.0 (/opt/rustwide/workdir/crates/callhive-audio)
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stdout] warning: unused import: `Sender`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crossbeam_channel::{Sender, bounded};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> crates/callhive-audio/src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod mic_test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CaptureError`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::capture::{AudioCapture, CaptureError};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> crates/callhive-audio/src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod mic_test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlaybackError`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::playback::{AudioPlayback, PlaybackError};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> crates/callhive-audio/src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod mic_test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/capture.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let device_name = device.name().unwrap_or_else(|_| "unknown".into());
[INFO] [stdout]    |                                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/devices.rs:75:67
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let default_name = host.default_input_device().and_then(|d| d.name().ok());
[INFO] [stdout]    |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/devices.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 |             if let Ok(name) = device.name() {
[INFO] [stdout]    |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:106:68
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let default_name = host.default_output_device().and_then(|d| d.name().ok());
[INFO] [stdout]     |                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:113:38
[INFO] [stdout]     |
[INFO] [stdout] 113 |             if let Ok(name) = device.name() {
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |         d.name()
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:154:11
[INFO] [stdout]     |
[INFO] [stdout] 154 |         d.name()
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/playback.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let device_name = device.name().unwrap_or_else(|_| "unknown".into());
[INFO] [stdout]    |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking callhive-devices v0.1.0 (/opt/rustwide/workdir/crates/callhive-devices)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> crates/callhive-audio/src/denoise.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 .map(|i| ((i as f32 * 0.1).sin() * 0.3))
[INFO] [stdout]    |                          ^                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 .map(|i| ((i as f32 * 0.1).sin() * 0.3))
[INFO] [stdout] 84 +                 .map(|i| (i as f32 * 0.1).sin() * 0.3 )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sender`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crossbeam_channel::{Sender, bounded};
[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: `CaptureError`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::capture::{AudioCapture, CaptureError};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlaybackError`
[INFO] [stdout]  --> crates/callhive-audio/src/mic_test.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::playback::{AudioPlayback, PlaybackError};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> crates/callhive-audio/src/pipeline.rs:410:48
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let input: Vec<f32> = (0..240).map(|i| (i as f32 / 240.0)).collect();
[INFO] [stdout]     |                                                ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 410 -         let input: Vec<f32> = (0..240).map(|i| (i as f32 / 240.0)).collect();
[INFO] [stdout] 410 +         let input: Vec<f32> = (0..240).map(|i| i as f32 / 240.0 ).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/capture.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let device_name = device.name().unwrap_or_else(|_| "unknown".into());
[INFO] [stdout]    |                                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/devices.rs:75:67
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let default_name = host.default_input_device().and_then(|d| d.name().ok());
[INFO] [stdout]    |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/devices.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 |             if let Ok(name) = device.name() {
[INFO] [stdout]    |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:106:68
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let default_name = host.default_output_device().and_then(|d| d.name().ok());
[INFO] [stdout]     |                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:113:38
[INFO] [stdout]     |
[INFO] [stdout] 113 |             if let Ok(name) = device.name() {
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |         d.name()
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]    --> crates/callhive-audio/src/devices.rs:154:11
[INFO] [stdout]     |
[INFO] [stdout] 154 |         d.name()
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stdout] warning: use of deprecated method `cpal::traits::DeviceTrait::name`: Use `description()` for comprehensive device information including name, manufacturer, and device type. Use `id()` for a unique, stable device identifier that persists across reboots and reconnections.
[INFO] [stdout]   --> crates/callhive-audio/src/playback.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let device_name = device.name().unwrap_or_else(|_| "unknown".into());
[INFO] [stdout]    |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]    Compiling v4l2-sys-mit v0.3.0
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking callhive-crypto v0.1.0 (/opt/rustwide/workdir/crates/callhive-crypto)
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking quinn-proto v0.11.14
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> crates/callhive-crypto/src/identity.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     use std::path::PathBuf;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `aes_gcm::aead::generic_array::GenericArray::<T, N>::from_slice`: please upgrade to generic-array 1.x
[INFO] [stdout]   --> crates/callhive-crypto/src/e2ee.rs:49:28
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let nonce = Nonce::from_slice(nonce);
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `aes_gcm::aead::generic_array::GenericArray::<T, N>::from_slice`: please upgrade to generic-array 1.x
[INFO] [stdout]   --> crates/callhive-crypto/src/e2ee.rs:57:28
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let nonce = Nonce::from_slice(nonce);
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `aes_gcm::aead::generic_array::GenericArray::<T, N>::from_slice`: please upgrade to generic-array 1.x
[INFO] [stdout]   --> crates/callhive-crypto/src/e2ee.rs:49:28
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let nonce = Nonce::from_slice(nonce);
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `aes_gcm::aead::generic_array::GenericArray::<T, N>::from_slice`: please upgrade to generic-array 1.x
[INFO] [stdout]   --> crates/callhive-crypto/src/e2ee.rs:57:28
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let nonce = Nonce::from_slice(nonce);
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> crates/callhive-crypto/benches/crypto_bench.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let data = b"test password for benchmarking";
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking v4l v0.14.0
[INFO] [stderr]     Checking callhive-quic v0.1.0 (/opt/rustwide/workdir/crates/callhive-quic)
[INFO] [stderr]     Checking callhive-client-core v0.1.0 (/opt/rustwide/workdir/crates/callhive-client-core)
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stdout] warning: unused import: `callhive_protocol::datagram::MediaDatagram`
[INFO] [stdout]  --> crates/callhive-client-core/src/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use callhive_protocol::datagram::MediaDatagram;
[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: `Ping`
[INFO] [stdout]  --> crates/callhive-client-core/src/connection.rs:5:80
[INFO] [stdout]   |
[INFO] [stdout] 5 | use callhive_protocol::signaling::{AuthResponse, Authenticate, ControlMessage, Ping};
[INFO] [stdout]   |                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `callhive_protocol::datagram::MediaDatagram`
[INFO] [stdout]  --> crates/callhive-client-core/src/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use callhive_protocol::datagram::MediaDatagram;
[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: `Ping`
[INFO] [stdout]  --> crates/callhive-client-core/src/connection.rs:5:80
[INFO] [stdout]   |
[INFO] [stdout] 5 | use callhive_protocol::signaling::{AuthResponse, Authenticate, ControlMessage, Ping};
[INFO] [stdout]   |                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking callhive_native v0.1.0 (/opt/rustwide/workdir/app/native/callhive_native)
[INFO] [stdout] warning: function `runtime` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn runtime() -> &'static tokio::runtime::Runtime {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CLIENT` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | static CLIENT: Mutex<Option<CallHiveClient>> = Mutex::new(None);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MIC_TEST` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | static MIC_TEST: Mutex<Option<MicTest>> = Mutex::new(None);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GENERAL_ROOM_ID` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const GENERAL_ROOM_ID: &str = "00000000-0000-0000-0000-000000000001";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParticipantInfo` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ParticipantInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoomInfo` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct RoomInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ServerChannelDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ServerChannelDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PresenceRoomDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct PresenceRoomDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct EventDto {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextChannelDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct TextChannelDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceInfoDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct DeviceInfoDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_participant_info` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn build_participant_info(client: &CallHiveClient) -> Vec<ParticipantInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_room_info` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn build_room_info(client: &CallHiveClient) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_client` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn init_client() {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn connect(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn get_current_room() -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_server_channels` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn get_server_channels() -> Vec<ServerChannelDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disconnect` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn disconnect() -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `join_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn join_room(room_id: String) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `join_voice_channel` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:223:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub fn join_voice_channel(room_id: String) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn leave_room() -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_voice_channel` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn leave_voice_channel() -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_muted` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn set_muted(muted: bool) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_noise_suppression` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn set_noise_suppression(enabled: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_connected` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn is_connected() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub fn is_in_room() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_input_devices` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub fn get_input_devices() -> Vec<DeviceInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_output_devices` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:311:8
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub fn get_output_devices() -> Vec<DeviceInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_input_device` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn set_input_device(name: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_output_device` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn set_output_device(name: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mic_test` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:340:8
[INFO] [stdout]     |
[INFO] [stdout] 340 | pub fn start_mic_test(input_device: String, loopback: bool) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mic_test_level` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | pub fn get_mic_test_level() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_mic_test` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub fn stop_mic_test() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VideoFrameDto` is never constructed
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub struct VideoFrameDto {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_video_frames` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn poll_video_frames() -> Vec<VideoFrameDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_cameras` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn list_cameras() -> Vec<CameraInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CameraInfoDto` is never constructed
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:403:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub struct CameraInfoDto {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_video` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:409:8
[INFO] [stdout]     |
[INFO] [stdout] 409 | pub fn start_video(_camera_index: u32) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_video` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub fn stop_video() {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_chat_message` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn send_chat_message(channel_id: String, content: String) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_chat_history` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub fn request_chat_history(channel_id: String) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_events` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | pub fn poll_events() -> Vec<EventDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_encode` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:640:4
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn hex_encode(bytes: &[u8]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `runtime` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn runtime() -> &'static tokio::runtime::Runtime {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MIC_TEST` is never used
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | static MIC_TEST: Mutex<Option<MicTest>> = Mutex::new(None);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `display_name`, `speaking`, `muted`, and `audio_level` are never read
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ParticipantInfo {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 34 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 35 |     pub display_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub speaking: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 37 |     pub muted: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 38 |     pub audio_level: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParticipantInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoomInfo` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct RoomInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `room_id`, `room_name`, `voice_enabled`, and `participants` are never read
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct PresenceRoomDto {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 59 |     pub room_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 60 |     pub room_name: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 61 |     pub voice_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub participants: Vec<ParticipantInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PresenceRoomDto` 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: multiple fields are never read
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct EventDto {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 68 |     pub kind: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 69 |     pub participant_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub display_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 71 |     pub room_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 72 |     pub room_name: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 73 |     pub from_room_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 74 |     pub to_room_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 75 |     pub voice_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub speaking: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 77 |     pub muted: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 78 |     pub audio_level: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 79 |     pub rooms: Vec<PresenceRoomDto>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 80 |     // Chat fields (empty/0 for non-chat events)
[INFO] [stdout] 81 |     pub message_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 82 |     pub channel_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 83 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 84 |     pub timestamp_us: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventDto` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextChannelDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct TextChannelDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceInfoDto` is never constructed
[INFO] [stdout]   --> app/native/callhive_native/src/api.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct DeviceInfoDto {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_participant_info` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn build_participant_info(client: &CallHiveClient) -> Vec<ParticipantInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_room_info` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn build_room_info(client: &CallHiveClient) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn connect(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn get_current_room() -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disconnect` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn disconnect() -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `join_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn join_room(room_id: String) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `join_voice_channel` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:223:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub fn join_voice_channel(room_id: String) -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_room` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn leave_room() -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_voice_channel` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn leave_voice_channel() -> anyhow::Result<RoomInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_muted` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn set_muted(muted: bool) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_noise_suppression` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn set_noise_suppression(enabled: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_input_devices` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub fn get_input_devices() -> Vec<DeviceInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_output_devices` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:311:8
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub fn get_output_devices() -> Vec<DeviceInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_input_device` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn set_input_device(name: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_output_device` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn set_output_device(name: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mic_test` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:340:8
[INFO] [stdout]     |
[INFO] [stdout] 340 | pub fn start_mic_test(input_device: String, loopback: bool) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mic_test_level` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | pub fn get_mic_test_level() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_mic_test` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub fn stop_mic_test() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VideoFrameDto` is never constructed
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub struct VideoFrameDto {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_video_frames` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn poll_video_frames() -> Vec<VideoFrameDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_cameras` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn list_cameras() -> Vec<CameraInfoDto> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CameraInfoDto` is never constructed
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:403:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub struct CameraInfoDto {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_video` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:409:8
[INFO] [stdout]     |
[INFO] [stdout] 409 | pub fn start_video(_camera_index: u32) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_video` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub fn stop_video() {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_chat_message` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn send_chat_message(channel_id: String, content: String) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_chat_history` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub fn request_chat_history(channel_id: String) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_encode` is never used
[INFO] [stdout]    --> app/native/callhive_native/src/api.rs:640:4
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn hex_encode(bytes: &[u8]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking rcgen v0.14.7
[INFO] [stderr]     Checking dimpl v0.5.0
[INFO] [stderr]     Checking str0m-proto v0.4.0
[INFO] [stderr]     Checking str0m-aws-lc-rs v0.3.0
[INFO] [stderr]     Checking is v0.8.0
[INFO] [stderr]     Checking str0m v0.18.0
[INFO] [stderr]     Checking callhive-webrtc v0.1.0 (/opt/rustwide/workdir/crates/callhive-webrtc)
[INFO] [stdout] warning: unused imports: `DatagramFlags` and `MediaDatagram`
[INFO] [stdout]  --> crates/callhive-webrtc/src/bridge.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use callhive_protocol::datagram::{DatagramFlags, MediaDatagram};
[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: `str0m::net::Receive`
[INFO] [stdout]  --> crates/callhive-webrtc/src/session.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use str0m::net::Receive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]  --> crates/callhive-webrtc/src/session.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use str0m::{Candidate, Event, Input, Output, Rtc, RtcError};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DatagramFlags` and `MediaDatagram`
[INFO] [stdout]  --> crates/callhive-webrtc/src/bridge.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use callhive_protocol::datagram::{DatagramFlags, MediaDatagram};
[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: `str0m::net::Receive`
[INFO] [stdout]  --> crates/callhive-webrtc/src/session.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use str0m::net::Receive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]  --> crates/callhive-webrtc/src/session.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use str0m::{Candidate, Event, Input, Output, Rtc, RtcError};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut earliest = Instant::now() + std::time::Duration::from_secs(1);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 |         for session in self.sessions.values() {
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:199:29
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 if let Some(mut writer) = session.rtc.writer(mid) {
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut earliest = Instant::now() + std::time::Duration::from_secs(1);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 |         for session in self.sessions.values() {
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/callhive-webrtc/src/bridge.rs:199:29
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 if let Some(mut writer) = session.rtc.writer(mid) {
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking callhive-sfu v0.1.0 (/opt/rustwide/workdir/crates/callhive-sfu)
[INFO] [stderr]     Checking callhive-server v0.1.0 (/opt/rustwide/workdir/crates/callhive-server)
[INFO] [stdout] warning: unused import: `Buf`
[INFO] [stdout]  --> crates/callhive-server/src/http.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use bytes::{Buf, BufMut, Bytes, BytesMut};
[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: `debug`
[INFO] [stdout]   --> crates/callhive-server/src/http.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{debug, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buf`
[INFO] [stdout]  --> crates/callhive-server/src/http.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use bytes::{Buf, BufMut, Bytes, BytesMut};
[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: `debug`
[INFO] [stdout]   --> crates/callhive-server/src/http.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{debug, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `control_tx`
[INFO] [stdout]    --> crates/callhive-server/src/http.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     control_tx: &mpsc::UnboundedSender<Bytes>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room_id` is never read
[INFO] [stdout]   --> crates/callhive-server/src/chat.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ChannelState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub room_id: RoomId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_ws_control` is never used
[INFO] [stdout]   --> crates/callhive-server/src/state.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl ConnectionHandle {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn send_ws_control(&self, frame: &bytes::Bytes) -> Result<(), SendError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `control_tx`
[INFO] [stdout]    --> crates/callhive-server/src/http.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     control_tx: &mpsc::UnboundedSender<Bytes>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room_id` is never read
[INFO] [stdout]   --> crates/callhive-server/src/chat.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ChannelState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub room_id: RoomId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_ws_control` is never used
[INFO] [stdout]   --> crates/callhive-server/src/state.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl ConnectionHandle {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn send_ws_control(&self, frame: &bytes::Bytes) -> Result<(), SendError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 31s
[INFO] running `Command { std: "docker" "inspect" "36e5cdbc3f93319a14b17c806d426e94d7530f21c479ea0d4ba5314744fca41f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "36e5cdbc3f93319a14b17c806d426e94d7530f21c479ea0d4ba5314744fca41f", kill_on_drop: false }`
[INFO] [stdout] 36e5cdbc3f93319a14b17c806d426e94d7530f21c479ea0d4ba5314744fca41f
