[INFO] cloning repository https://github.com/dotancohen/voicecore
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dotancohen/voicecore" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdotancohen%2Fvoicecore", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdotancohen%2Fvoicecore'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52d6a91872003f90bbe6d08f07a7128a27285690
[INFO] testing dotancohen/voicecore against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdotancohen%2Fvoicecore" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dotancohen/voicecore
[INFO] finished tweaking git repo https://github.com/dotancohen/voicecore
[INFO] tweaked toml for git repo https://github.com/dotancohen/voicecore written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dotancohen/voicecore 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 345 packages to latest compatible versions
[INFO] [stderr]       Adding axum v0.7.9 (available: v0.8.9)
[INFO] [stderr]       Adding diffy v0.4.2 (available: v0.5.0)
[INFO] [stderr]       Adding dirs v5.0.1 (available: v6.0.0)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding rcgen v0.13.2 (available: v0.14.8)
[INFO] [stderr]       Adding reqwest v0.12.28 (available: v0.13.3)
[INFO] [stderr]       Adding rusqlite v0.32.1 (available: v0.39.0)
[INFO] [stderr]       Adding sha2 v0.10.9 (available: v0.11.0)
[INFO] [stderr]       Adding similar v2.7.0 (available: v3.1.0)
[INFO] [stderr]       Adding uniffi v0.28.3 (available: v0.31.1)
[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-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] d31ecbc609ded761b8ddd2d2ca37068f29034da6c39d57f77e994817c16222d5
[INFO] running `Command { std: "docker" "start" "-a" "d31ecbc609ded761b8ddd2d2ca37068f29034da6c39d57f77e994817c16222d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d31ecbc609ded761b8ddd2d2ca37068f29034da6c39d57f77e994817c16222d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d31ecbc609ded761b8ddd2d2ca37068f29034da6c39d57f77e994817c16222d5", kill_on_drop: false }`
[INFO] [stdout] d31ecbc609ded761b8ddd2d2ca37068f29034da6c39d57f77e994817c16222d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 8ea20efce5ca995499f9d736cded2251a375451c2292bb5e014e5dfebe6cbca3
[INFO] running `Command { std: "docker" "start" "-a" "8ea20efce5ca995499f9d736cded2251a375451c2292bb5e014e5dfebe6cbca3", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling aws-lc-rs v1.17.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling fs-err v2.11.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling uniffi_checksum_derive v0.28.3
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling scroll_derive v0.12.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling uniffi_meta v0.28.3
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling plain v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling scroll v0.12.0
[INFO] [stderr]    Compiling askama_escape v0.10.3
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling goblin v0.8.2
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling askama_parser v0.2.1
[INFO] [stderr]    Compiling weedle2 v5.0.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling aws-lc-sys v0.41.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling uniffi_core v0.28.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rust-ini v0.21.3
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling aws-region v0.28.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling sysinfo v0.37.2
[INFO] [stderr]    Compiling maybe-async v0.2.10
[INFO] [stderr]    Compiling cargo-platform v0.1.9
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling cargo_metadata v0.15.4
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling askama_derive v0.12.5
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling uniffi_testing v0.28.3
[INFO] [stderr]    Compiling uniffi_macros v0.28.3
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling diffy v0.4.2
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling uniffi_udl v0.28.3
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling askama v0.12.1
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling uniffi_bindgen v0.28.3
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling uniffi_build v0.28.3
[INFO] [stderr]    Compiling uniffi v0.28.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling voicecore v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling attohttpc v0.30.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling aws-creds v0.39.1
[INFO] [stderr]    Compiling rust-s3 v0.37.2
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/conflicts.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | 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 imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/database.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::{Arc, Mutex, OnceLock};
[INFO] [stdout]    |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stdout]   --> src/database.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::{DateTime, NaiveDateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sync_client.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | use chrono::{DateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileStorageError`
[INFO] [stdout]     --> src/sync_client.rs:2014:64
[INFO] [stdout]      |
[INFO] [stdout] 2014 |         use crate::cloud_storage::{upload_pending_audio_files, FileStorageError};
[INFO] [stdout]      |                                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BasicConstraints`
[INFO] [stdout]    --> src/tls.rs:136:87
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, SanType, IsCa, BasicConstraints};
[INFO] [stdout]     |                                                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config.rs:335:13
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let mut config = Self {
[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: `tag_id`
[INFO] [stdout]     --> src/database.rs:6110:36
[INFO] [stdout]      |
[INFO] [stdout] 6110 |     fn get_tag_display_name(&self, tag_id: &str, tag_name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulled_changes`
[INFO] [stdout]    --> src/sync_client.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let pulled_changes = match self.pull_changes(peer_url, adjusted_since).await {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pulled_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/sync_server.rs:357:9
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let pattern = format!("{}.*", audio_id);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sqlite_datetime` is never used
[INFO] [stdout]    --> src/database.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn parse_sqlite_datetime(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_nonsynced_tag_id` and `build_tag_path` are never used
[INFO] [stdout]     --> src/database.rs:2470:8
[INFO] [stdout]      |
[INFO] [stdout]  212 | impl Database {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2470 |     fn get_nonsynced_tag_id(&self) -> VoiceResult<Vec<u8>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6082 |     fn build_tag_path(&self, _id_bytes: &[u8], name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id`, `device_name`, `protocol_version`, and `supports_audiofiles` are never read
[INFO] [stdout]   --> src/sync_client.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct HandshakeResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 73 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 74 |     device_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 75 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     supports_audiofiles: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from_timestamp`, `to_timestamp`, `device_id`, `device_name`, and `is_complete` are never read
[INFO] [stdout]   --> src/sync_client.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct SyncBatchResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 85 |     changes: Vec<SyncChange>,
[INFO] [stdout] 86 |     from_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     to_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 88 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 89 |     device_name: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 90 |     is_complete: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SyncBatchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `errors` is never read
[INFO] [stdout]    --> src/sync_client.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct ApplyResponse {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     errors: Vec<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ApplyResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/sync_client.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct FullSyncResponse {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 121 |     timestamp: i64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FullSyncResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol_version` is never read
[INFO] [stdout]   --> src/sync_server.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct HandshakeRequest {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 09s
[INFO] running `Command { std: "docker" "inspect" "8ea20efce5ca995499f9d736cded2251a375451c2292bb5e014e5dfebe6cbca3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ea20efce5ca995499f9d736cded2251a375451c2292bb5e014e5dfebe6cbca3", kill_on_drop: false }`
[INFO] [stdout] 8ea20efce5ca995499f9d736cded2251a375451c2292bb5e014e5dfebe6cbca3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 7d69352689cac23d47a71f7f1042257d3be322530e4660c828ccbfbe849ce92a
[INFO] running `Command { std: "docker" "start" "-a" "7d69352689cac23d47a71f7f1042257d3be322530e4660c828ccbfbe849ce92a", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rust-s3 v0.37.2
[INFO] [stderr]    Compiling voicecore v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/conflicts.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | 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 imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/database.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::{Arc, Mutex, OnceLock};
[INFO] [stdout]    |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stdout]   --> src/database.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::{DateTime, NaiveDateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sync_client.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | use chrono::{DateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileStorageError`
[INFO] [stdout]     --> src/sync_client.rs:2014:64
[INFO] [stdout]      |
[INFO] [stdout] 2014 |         use crate::cloud_storage::{upload_pending_audio_files, FileStorageError};
[INFO] [stdout]      |                                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BasicConstraints`
[INFO] [stdout]    --> src/tls.rs:136:87
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, SanType, IsCa, BasicConstraints};
[INFO] [stdout]     |                                                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/conflicts.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | 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 imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/database.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::{Arc, Mutex, OnceLock};
[INFO] [stdout]    |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stdout]   --> src/database.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::{DateTime, NaiveDateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sync_client.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | use chrono::{DateTime, Utc};
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileStorageError`
[INFO] [stdout]     --> src/sync_client.rs:2014:64
[INFO] [stdout]      |
[INFO] [stdout] 2014 |         use crate::cloud_storage::{upload_pending_audio_files, FileStorageError};
[INFO] [stdout]      |                                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]     --> src/sync_server.rs:1946:9
[INFO] [stdout]      |
[INFO] [stdout] 1946 |     use uuid::Uuid;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BasicConstraints`
[INFO] [stdout]    --> src/tls.rs:136:87
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, SanType, IsCa, BasicConstraints};
[INFO] [stdout]     |                                                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config.rs:335:13
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let mut config = Self {
[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: `tag_id`
[INFO] [stdout]     --> src/database.rs:6110:36
[INFO] [stdout]      |
[INFO] [stdout] 6110 |     fn get_tag_display_name(&self, tag_id: &str, tag_name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulled_changes`
[INFO] [stdout]    --> src/sync_client.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let pulled_changes = match self.pull_changes(peer_url, adjusted_since).await {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pulled_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/sync_server.rs:357:9
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let pattern = format!("{}.*", audio_id);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config.rs:335:13
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let mut config = Self {
[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: function `parse_sqlite_datetime` is never used
[INFO] [stdout]    --> src/database.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn parse_sqlite_datetime(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_nonsynced_tag_id` and `build_tag_path` are never used
[INFO] [stdout]     --> src/database.rs:2470:8
[INFO] [stdout]      |
[INFO] [stdout]  212 | impl Database {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2470 |     fn get_nonsynced_tag_id(&self) -> VoiceResult<Vec<u8>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6082 |     fn build_tag_path(&self, _id_bytes: &[u8], name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id`, `device_name`, `protocol_version`, and `supports_audiofiles` are never read
[INFO] [stdout]   --> src/sync_client.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct HandshakeResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 73 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 74 |     device_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 75 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     supports_audiofiles: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from_timestamp`, `to_timestamp`, `device_id`, `device_name`, and `is_complete` are never read
[INFO] [stdout]   --> src/sync_client.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct SyncBatchResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 85 |     changes: Vec<SyncChange>,
[INFO] [stdout] 86 |     from_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     to_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 88 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 89 |     device_name: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 90 |     is_complete: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SyncBatchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `errors` is never read
[INFO] [stdout]    --> src/sync_client.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct ApplyResponse {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     errors: Vec<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ApplyResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/sync_client.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct FullSyncResponse {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 121 |     timestamp: i64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FullSyncResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol_version` is never read
[INFO] [stdout]   --> src/sync_server.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct HandshakeRequest {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tag_id`
[INFO] [stdout]     --> src/database.rs:6110:36
[INFO] [stdout]      |
[INFO] [stdout] 6110 |     fn get_tag_display_name(&self, tag_id: &str, tag_name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `note2_id`
[INFO] [stdout]     --> src/database.rs:6517:13
[INFO] [stdout]      |
[INFO] [stdout] 6517 |         let note2_id = db.create_note("Goodbye world").unwrap();
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_note2_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulled_changes`
[INFO] [stdout]    --> src/sync_client.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let pulled_changes = match self.pull_changes(peer_url, adjusted_since).await {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pulled_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/sync_server.rs:357:9
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let pattern = format!("{}.*", audio_id);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflicts`
[INFO] [stdout]     --> src/sync_server.rs:2813:23
[INFO] [stdout]      |
[INFO] [stdout] 2813 |         let (applied, conflicts, errors) = apply_sync_changes(
[INFO] [stdout]      |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sqlite_datetime` is never used
[INFO] [stdout]    --> src/database.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn parse_sqlite_datetime(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_nonsynced_tag_id` and `build_tag_path` are never used
[INFO] [stdout]     --> src/database.rs:2470:8
[INFO] [stdout]      |
[INFO] [stdout]  212 | impl Database {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2470 |     fn get_nonsynced_tag_id(&self) -> VoiceResult<Vec<u8>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6082 |     fn build_tag_path(&self, _id_bytes: &[u8], name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id`, `device_name`, `protocol_version`, and `supports_audiofiles` are never read
[INFO] [stdout]   --> src/sync_client.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct HandshakeResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 73 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 74 |     device_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 75 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     supports_audiofiles: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from_timestamp`, `to_timestamp`, `device_id`, `device_name`, and `is_complete` are never read
[INFO] [stdout]   --> src/sync_client.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct SyncBatchResponse {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 85 |     changes: Vec<SyncChange>,
[INFO] [stdout] 86 |     from_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     to_timestamp: Option<i64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 88 |     device_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 89 |     device_name: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 90 |     is_complete: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SyncBatchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `errors` is never read
[INFO] [stdout]    --> src/sync_client.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct ApplyResponse {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     errors: Vec<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ApplyResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/sync_client.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct FullSyncResponse {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 121 |     timestamp: i64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FullSyncResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `protocol_version` is never read
[INFO] [stdout]   --> src/sync_server.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct HandshakeRequest {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     protocol_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandshakeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.66s
[INFO] running `Command { std: "docker" "inspect" "7d69352689cac23d47a71f7f1042257d3be322530e4660c828ccbfbe849ce92a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d69352689cac23d47a71f7f1042257d3be322530e4660c828ccbfbe849ce92a", kill_on_drop: false }`
[INFO] [stdout] 7d69352689cac23d47a71f7f1042257d3be322530e4660c828ccbfbe849ce92a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 7684d3724de271d4fcea816b177774409fbe1c08dcd60c3f9e61bb7e74be85ac
[INFO] running `Command { std: "docker" "start" "-a" "7684d3724de271d4fcea816b177774409fbe1c08dcd60c3f9e61bb7e74be85ac", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Arc` and `Mutex`
[INFO] [stderr]  --> src/conflicts.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | 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 imports: `Arc` and `Mutex`
[INFO] [stderr]   --> src/database.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::sync::{Arc, Mutex, OnceLock};
[INFO] [stderr]    |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stderr]   --> src/database.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 | use chrono::{DateTime, NaiveDateTime, Utc};
[INFO] [stderr]    |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DateTime`
[INFO] [stderr]   --> src/sync_client.rs:14:14
[INFO] [stderr]    |
[INFO] [stderr] 14 | use chrono::{DateTime, Utc};
[INFO] [stderr]    |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileStorageError`
[INFO] [stderr]     --> src/sync_client.rs:2014:64
[INFO] [stderr]      |
[INFO] [stderr] 2014 |         use crate::cloud_storage::{upload_pending_audio_files, FileStorageError};
[INFO] [stderr]      |                                                                ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BasicConstraints`
[INFO] [stderr]    --> src/tls.rs:136:87
[INFO] [stderr]     |
[INFO] [stderr] 136 |     use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, SanType, IsCa, BasicConstraints};
[INFO] [stderr]     |                                                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/config.rs:335:13
[INFO] [stderr]     |
[INFO] [stderr] 335 |         let mut config = Self {
[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: unused variable: `tag_id`
[INFO] [stderr]     --> src/database.rs:6110:36
[INFO] [stderr]      |
[INFO] [stderr] 6110 |     fn get_tag_display_name(&self, tag_id: &str, tag_name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stderr]      |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_id`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pulled_changes`
[INFO] [stderr]    --> src/sync_client.rs:306:13
[INFO] [stderr]     |
[INFO] [stderr] 306 |         let pulled_changes = match self.pull_changes(peer_url, adjusted_since).await {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pulled_changes`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pattern`
[INFO] [stderr]    --> src/sync_server.rs:357:9
[INFO] [stderr]     |
[INFO] [stderr] 357 |     let pattern = format!("{}.*", audio_id);
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_sqlite_datetime` is never used
[INFO] [stderr]    --> src/database.rs:202:4
[INFO] [stderr]     |
[INFO] [stderr] 202 | fn parse_sqlite_datetime(s: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_nonsynced_tag_id` and `build_tag_path` are never used
[INFO] [stderr]     --> src/database.rs:2470:8
[INFO] [stderr]      |
[INFO] [stderr]  212 | impl Database {
[INFO] [stderr]      | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 2470 |     fn get_nonsynced_tag_id(&self) -> VoiceResult<Vec<u8>> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 6082 |     fn build_tag_path(&self, _id_bytes: &[u8], name: &str, parent_id: Option<&[u8]>) -> VoiceResult<String> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `device_id`, `device_name`, `protocol_version`, and `supports_audiofiles` are never read
[INFO] [stderr]   --> src/sync_client.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 72 | struct HandshakeResponse {
[INFO] [stderr]    |        ----------------- fields in this struct
[INFO] [stderr] 73 |     device_id: String,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 74 |     device_name: String,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 75 |     protocol_version: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 79 |     supports_audiofiles: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `HandshakeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `from_timestamp`, `to_timestamp`, `device_id`, `device_name`, and `is_complete` are never read
[INFO] [stderr]   --> src/sync_client.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 84 | struct SyncBatchResponse {
[INFO] [stderr]    |        ----------------- fields in this struct
[INFO] [stderr] 85 |     changes: Vec<SyncChange>,
[INFO] [stderr] 86 |     from_timestamp: Option<i64>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 87 |     to_timestamp: Option<i64>,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 88 |     device_id: String,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 89 |     device_name: Option<String>,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 90 |     is_complete: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SyncBatchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `errors` is never read
[INFO] [stderr]    --> src/sync_client.rs:106:5
[INFO] [stderr]     |
[INFO] [stderr] 103 | struct ApplyResponse {
[INFO] [stderr]     |        ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 106 |     errors: Vec<String>,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ApplyResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `timestamp` is never read
[INFO] [stderr]    --> src/sync_client.rs:121:5
[INFO] [stderr]     |
[INFO] [stderr] 111 | struct FullSyncResponse {
[INFO] [stderr]     |        ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 121 |     timestamp: i64,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FullSyncResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `protocol_version` is never read
[INFO] [stderr]   --> src/sync_server.rs:51:5
[INFO] [stderr]    |
[INFO] [stderr] 48 | struct HandshakeRequest {
[INFO] [stderr]    |        ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 51 |     protocol_version: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `HandshakeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `voicecore` (lib) generated 17 warnings (run `cargo fix --lib -p voicecore` to apply 10 suggestions)
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]     --> src/sync_server.rs:1946:9
[INFO] [stderr]      |
[INFO] [stderr] 1946 |     use uuid::Uuid;
[INFO] [stderr]      |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `note2_id`
[INFO] [stderr]     --> src/database.rs:6517:13
[INFO] [stderr]      |
[INFO] [stderr] 6517 |         let note2_id = db.create_note("Goodbye world").unwrap();
[INFO] [stderr]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_note2_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `conflicts`
[INFO] [stderr]     --> src/sync_server.rs:2813:23
[INFO] [stderr]      |
[INFO] [stderr] 2813 |         let (applied, conflicts, errors) = apply_sync_changes(
[INFO] [stderr]      |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stderr] 
[INFO] [stderr] warning: `voicecore` (lib test) generated 20 warnings (17 duplicates) (run `cargo fix --lib -p voicecore --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/voicecore-d140d6942ed087ab)
[INFO] [stdout] 
[INFO] [stdout] running 177 tests
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_empty_prefix ... ok
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_no_prefix ... ok
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_no_extension ... ok
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_multiple_dots ... ok
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_with_trailing_slash ... ok
[INFO] [stdout] test cloud_storage::tests::test_generate_storage_key_with_prefix ... ok
[INFO] [stdout] test cloud_storage_s3::tests::test_full_key_generation ... ok
[INFO] [stdout] test cloud_storage::tests::test_upload_result_serialization ... ok
[INFO] [stdout] test cloud_storage_s3::tests::test_full_key_with_prefix ... ok
[INFO] [stdout] test cloud_storage_s3::tests::test_s3_config_with_endpoint ... ok
[INFO] [stdout] test cloud_storage::tests::test_file_storage_error_display ... ok
[INFO] [stdout] test config::tests::test_audiofile_directory_default_none ... ok
[INFO] [stdout] test config::tests::test_transcription_config_defaults ... ok
[INFO] [stdout] test config::tests::test_file_storage_config_default ... ok
[INFO] [stdout] test config::tests::test_add_peer ... ok
[INFO] [stdout] test config::tests::test_audiofile_directory_via_get_set ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test cloud_storage::tests::test_download_url_serialization ... ok
[INFO] [stdout] test config::tests::test_audiofile_directory_persistence ... ok
[INFO] [stdout] test config::tests::test_clear_audiofile_directory ... ok
[INFO] [stdout] test config::tests::test_file_storage_config_s3 ... ok
[INFO] [stdout] test config::tests::test_remove_peer ... ok
[INFO] [stdout] test config::tests::test_file_storage_config_persistence ... ok
[INFO] [stdout] test config::tests::test_transcription_config_persistence ... ok
[INFO] [stdout] test config::tests::test_invalid_peer_id ... ok
[INFO] [stdout] test config::tests::test_set_audiofile_directory ... ok
[INFO] [stdout] test config::tests::test_set_transcription_json ... ok
[INFO] [stdout] test database::tests::test_create_and_get_note ... ok
[INFO] [stdout] test database::tests::test_create_database ... ok
[INFO] [stdout] test database::tests::test_file_storage_config_get_none ... ok
[INFO] [stdout] test database::tests::test_add_tag_to_note ... ok
[INFO] [stdout] test database::tests::test_clear_audio_file_storage ... ok
[INFO] [stdout] test database::tests::test_create_and_get_tag ... ok
[INFO] [stdout] test database::tests::test_create_note_with_timestamp ... ok
[INFO] [stdout] test database::tests::test_file_storage_config_set_and_get ... ok
[INFO] [stdout] test error::tests::test_validation_error_display ... ok
[INFO] [stdout] test database::tests::test_audio_file_storage_columns_default_null ... ok
[INFO] [stdout] test database::tests::test_file_storage_config_struct ... ok
[INFO] [stdout] test config::tests::test_config_persistence ... ok
[INFO] [stdout] test database::tests::test_delete_note ... ok
[INFO] [stdout] test database::tests::test_audio_file_storage_syncs_correctly ... ok
[INFO] [stdout] test error::tests::test_voice_error_validation ... ok
[INFO] [stdout] test database::tests::test_file_storage_config_update ... ok
[INFO] [stdout] test database::tests::test_file_storage_config_disable ... ok
[INFO] [stdout] test database::tests::test_get_audio_files_pending_upload ... ok
[INFO] [stdout] test database::tests::test_import_audio_file ... ok
[INFO] [stdout] test merge::tests::test_auto_merge_with_conflicts ... ok
[INFO] [stdout] test merge::tests::test_diff3_no_base ... ok
[INFO] [stdout] test merge::tests::test_diff3_same_changes ... ok
[INFO] [stdout] test merge::tests::test_different_content ... ok
[INFO] [stdout] test merge::tests::test_identical_content ... ok
[INFO] [stdout] test models::tests::test_audio_file_creation ... ok
[INFO] [stdout] test database::tests::test_import_audio_file_without_metadata ... ok
[INFO] [stdout] test merge::tests::test_diff3_local_unchanged ... ok
[INFO] [stdout] test merge::tests::test_diff3_remote_unchanged ... ok
[INFO] [stdout] test merge::tests::test_get_diff_preview ... ok
[INFO] [stdout] test merge::tests::test_multiline_merge ... ok
[INFO] [stdout] test models::tests::test_attachment_type_conversion ... ok
[INFO] [stdout] test models::tests::test_audio_file_extension ... ok
[INFO] [stdout] test models::tests::test_audio_file_formats_constant ... ok
[INFO] [stdout] test database::tests::test_update_note ... ok
[INFO] [stdout] test models::tests::test_id_hex_format ... ok
[INFO] [stdout] test models::tests::test_note_attachment_creation ... ok
[INFO] [stdout] test models::tests::test_note_tag_creation ... ok
[INFO] [stdout] test models::tests::test_tag_creation ... ok
[INFO] [stdout] test database::tests::test_search_notes ... ok
[INFO] [stdout] test models::tests::test_tag_with_parent ... ok
[INFO] [stdout] test models::tests::test_transcription_creation ... ok
[INFO] [stdout] test models::tests::test_transcription_creation_full ... ok
[INFO] [stdout] test models::tests::test_transcription_id_hex ... ok
[INFO] [stdout] test search::tests::test_parse_case_insensitive ... ok
[INFO] [stdout] test search::tests::test_parse_empty ... ok
[INFO] [stdout] test search::tests::test_parse_free_text_only ... ok
[INFO] [stdout] test models::tests::test_note_creation ... ok
[INFO] [stdout] test models::tests::test_audio_file_stored_filename ... ok
[INFO] [stdout] test search::tests::test_parse_is_marked ... ok
[INFO] [stdout] test search::tests::test_parse_is_marked_case_insensitive ... ok
[INFO] [stdout] test search::tests::test_parse_mixed ... ok
[INFO] [stdout] test search::tests::test_parse_is_marked_with_text ... ok
[INFO] [stdout] test search::tests::test_parse_is_marked_with_tags ... ok
[INFO] [stdout] test database::tests::test_get_changes_since_includes_storage_fields ... ok
[INFO] [stdout] test search::tests::test_parse_tag_only ... ok
[INFO] [stdout] test database::tests::test_tag_hierarchy ... ok
[INFO] [stdout] test search::tests::test_parse_tag_path ... ok
[INFO] [stdout] test search::tests::test_parse_whitespace ... ok
[INFO] [stdout] test database::tests::test_update_audio_file_storage ... ok
[INFO] [stdout] test sync_client::tests::sync_result_tests::test_sync_result_failure ... ok
[INFO] [stdout] test sync_client::tests::sync_result_tests::test_sync_result_success_default ... ok
[INFO] [stdout] test sync_client::tests::sync_result_tests::test_sync_result_with_counts ... ok
[INFO] [stdout] test sync_client::tests::sync_result_tests::test_sync_result_with_multiple_errors ... ok
[INFO] [stdout] test merge::tests::test_auto_merge_identical ... ok
[INFO] [stdout] test sync_client::tests::sync_client_init_tests::test_client_creation ... ok
[INFO] [stdout] test sync_client::tests::sync_client_init_tests::test_client_has_device_info ... ok
[INFO] [stdout] test sync_client::tests::get_changes_since_tests::test_get_changes_since_with_future_timestamp ... ok
[INFO] [stdout] test sync_client::tests::convert_full_sync_tests::test_convert_full_sync_with_notes ... ok
[INFO] [stdout] test sync_client::tests::get_changes_since_tests::test_get_changes_since_empty_db ... ok
[INFO] [stdout] test sync_client::tests::convert_full_sync_tests::test_convert_full_sync_with_audio_files ... ok
[INFO] [stdout] test sync_client::tests::clock_skew_tests::test_adjust_timestamp_for_skew_large_skew ... ok
[INFO] [stdout] test sync_client::tests::sync_all_peers_tests::test_sync_all_peers_empty ... ok
[INFO] [stdout] test sync_client::tests::clock_skew_tests::test_adjust_timestamp_for_skew_none ... ok
[INFO] [stdout] test sync_client::tests::clock_skew_tests::test_calculate_clock_skew_with_timestamp ... ok
[INFO] [stdout] test sync_client::tests::convert_full_sync_tests::test_convert_full_sync_empty ... ok
[INFO] [stdout] test sync_client::tests::clock_skew_tests::test_calculate_clock_skew_no_timestamp ... ok
[INFO] [stdout] test sync_client::tests::sync_with_unknown_peer_tests::test_check_peer_status_unknown_peer ... ok
[INFO] [stdout] test sync_client::tests::clock_skew_tests::test_adjust_timestamp_for_skew_small_skew ... ok
[INFO] [stdout] test sync_client::tests::sync_with_unknown_peer_tests::test_pull_from_unknown_peer ... ok
[INFO] [stdout] test sync_client::tests::sync_with_unknown_peer_tests::test_initial_sync_unknown_peer ... ok
[INFO] [stdout] test sync_server::tests::test_batch_with_all_failures_reports_all_errors ... ok
[INFO] [stdout] test sync_client::tests::sync_with_unknown_peer_tests::test_push_to_unknown_peer ... ok
[INFO] [stdout] test sync_server::tests::test_both_delete_same_note_no_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_both_devices_rename_tag_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_full_dataset_includes_deleted_tags ... ok
[INFO] [stdout] test sync_server::tests::test_both_rename_tag_same_name_no_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_apply_sync_changes_counts_conflicts_correctly ... ok
[INFO] [stdout] test sync_server::tests::test_get_changes_since_includes_deleted_tags ... ok
[INFO] [stdout] test sync_server::tests::test_both_devices_edit_same_note_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_conflict_records_are_queryable ... ok
[INFO] [stdout] test sync_server::tests::test_get_changes_since_includes_deleted_notes ... ok
[INFO] [stdout] test sync_server::tests::test_both_move_tag_to_same_parent_no_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_different_content_still_creates_conflict ... ok
[INFO] [stdout] test sync_client::tests::sync_with_unknown_peer_tests::test_sync_with_unknown_peer ... ok
[INFO] [stdout] test sync_server::tests::test_both_edit_to_same_content_no_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_both_devices_move_tag_to_different_parents_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_get_changes_since_returns_modified_transcription ... ok
[INFO] [stdout] test sync_server::tests::test_integer_timestamp_works ... ok
[INFO] [stdout] test tls::tests::test_compute_fingerprint_from_pem ... ok
[INFO] [stdout] test tls::tests::test_fingerprint_format ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_already_correct ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_invalid ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_iso8601_with_t ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_optional ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_with_microseconds ... ok
[INFO] [stdout] test validation::tests::test_normalize_datetime_with_timezone ... ok
[INFO] [stdout] test validation::tests::test_validate_attachment_id_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_attachment_id_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_audio_extension_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_audio_extension_no_extension ... ok
[INFO] [stdout] test validation::tests::test_validate_audio_extension_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_audio_file_id_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_audio_file_id_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_datetime_invalid_ranges ... ok
[INFO] [stdout] test validation::tests::test_validate_datetime_non_zero_padded ... ok
[INFO] [stdout] test validation::tests::test_validate_datetime_optional ... ok
[INFO] [stdout] test validation::tests::test_validate_datetime_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_datetime_wrong_format ... ok
[INFO] [stdout] test validation::tests::test_validate_note_content_empty ... ok
[INFO] [stdout] test validation::tests::test_validate_note_content_too_long ... ok
[INFO] [stdout] test validation::tests::test_validate_note_content_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_parent_tag_id_none ... ok
[INFO] [stdout] test validation::tests::test_validate_parent_tag_id_self_reference ... ok
[INFO] [stdout] test validation::tests::test_validate_search_query_none ... ok
[INFO] [stdout] test validation::tests::test_validate_search_query_too_long ... ok
[INFO] [stdout] test validation::tests::test_validate_search_query_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_name_empty ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_name_too_long ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_name_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_name_with_slash ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_path_empty ... ok
[INFO] [stdout] test validation::tests::test_validate_tag_path_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_uuid_hex_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_uuid_hex_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_uuid_hex_with_hyphens ... ok
[INFO] [stdout] test sync_server::tests::test_get_changes_since_returns_all_entity_types ... ok
[INFO] [stdout] test sync_server::tests::test_local_edit_remote_delete_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_local_delete_remote_edit_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_local_renames_tag_remote_deletes_creates_conflict ... ok
[INFO] [stdout] test sync_server::tests::test_old_remote_changes_are_skipped ... ok
[INFO] [stdout] test sync_server::tests::test_remote_edit_after_sync_applies_cleanly ... ok
[INFO] [stdout] test sync_server::tests::test_tag_delete_applies_when_no_local_changes ... ok
[INFO] [stdout] test sync_server::tests::test_partial_batch_failure_continues_processing ... ok
[INFO] [stdout] test sync_server::tests::test_no_silent_overwrites_ever ... ok
[INFO] [stdout] test sync_server::tests::test_note_tag_reactivation_applies ... ok
[INFO] [stdout] test sync_server::tests::test_two_instances_sync_deleted_note ... ok
[INFO] [stdout] test sync_server::tests::test_two_instances_sync_deleted_tag ... ok
[INFO] [stdout] test sync_server::tests::test_two_instances_sync_note_with_audio_attachment ... ok
[INFO] [stdout] test sync_server::tests::test_two_instances_sync_transcription ... ok
[INFO] [stdout] test sync_server::tests::test_two_instances_sync_detached_attachment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 177 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.36s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests voicecore
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/cloud_storage.rs - cloud_storage::FileStorageService (line 84) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7684d3724de271d4fcea816b177774409fbe1c08dcd60c3f9e61bb7e74be85ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7684d3724de271d4fcea816b177774409fbe1c08dcd60c3f9e61bb7e74be85ac", kill_on_drop: false }`
[INFO] [stdout] 7684d3724de271d4fcea816b177774409fbe1c08dcd60c3f9e61bb7e74be85ac
