[INFO] cloning repository https://github.com/Sleepstars/lumenstream-ce [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Sleepstars/lumenstream-ce" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSleepstars%2Flumenstream-ce", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSleepstars%2Flumenstream-ce'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fec9f6903c3ae51d7dcd6c4d12c43c8159d9e29b [INFO] testing Sleepstars/lumenstream-ce against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSleepstars%2Flumenstream-ce" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Sleepstars/lumenstream-ce [INFO] finished tweaking git repo https://github.com/Sleepstars/lumenstream-ce [INFO] tweaked toml for git repo https://github.com/Sleepstars/lumenstream-ce written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Sleepstars/lumenstream-ce on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Sleepstars/lumenstream-ce 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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d79cca083847ce6d38496efc6b2bab241a24f4fb4ec09184776c4f71c43cc4d0 [INFO] running `Command { std: "docker" "start" "-a" "d79cca083847ce6d38496efc6b2bab241a24f4fb4ec09184776c4f71c43cc4d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d79cca083847ce6d38496efc6b2bab241a24f4fb4ec09184776c4f71c43cc4d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d79cca083847ce6d38496efc6b2bab241a24f4fb4ec09184776c4f71c43cc4d0", kill_on_drop: false }` [INFO] [stdout] d79cca083847ce6d38496efc6b2bab241a24f4fb4ec09184776c4f71c43cc4d0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ea421aa06ae8ecea1424954d98ad3621c37123eca8c3c857ee8101904b62d09a [INFO] running `Command { std: "docker" "start" "-a" "ea421aa06ae8ecea1424954d98ad3621c37123eca8c3c857ee8101904b62d09a", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling libc v0.2.181 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling zmij v1.0.20 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling deranged v0.5.6 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling aws-lc-sys v0.37.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling bytestring v1.5.0 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling local-waker v0.1.4 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling unicode-properties v0.1.4 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling whoami v1.6.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling regex-lite v0.1.9 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Compiling actix-rt v2.11.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling brotli-decompressor v5.0.0 [INFO] [stderr] Compiling actix-utils v3.0.1 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling actix-service v2.0.3 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling aws-lc-rs v1.15.4 [INFO] [stderr] Compiling brotli v8.0.2 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling sqlx-postgres v0.8.6 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling local-channel v0.1.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling structmeta-derive v0.3.0 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling untrusted v0.7.1 [INFO] [stderr] Compiling language-tags v0.3.2 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling actix-server v2.6.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling structmeta v0.3.0 [INFO] [stderr] Compiling ls-config v0.1.0 (/opt/rustwide/workdir/crates/ls-config) [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling sqlx-macros-core v0.8.6 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling actix-http v3.11.2 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling convert_case v0.8.0 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling pinyin v0.11.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling impl-more v0.1.9 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling zune-jpeg v0.5.12 [INFO] [stderr] Compiling gif v0.14.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling actix-web v4.12.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling iso8601 v0.6.3 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling meilisearch-index-setting-macro v0.32.0 [INFO] [stderr] Compiling sqlx-macros v0.8.6 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling reqwest-middleware v0.5.1 [INFO] [stderr] Compiling yaup v0.3.1 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling retry-policies v0.5.1 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling reqwest-retry v0.9.1 [INFO] [stderr] Compiling tracing-appender v0.2.4 [INFO] [stderr] Compiling cron v0.12.1 [INFO] [stderr] Compiling ls-agent v0.1.0 (/opt/rustwide/workdir/crates/ls-agent) [INFO] [stderr] Compiling ls-scraper v0.1.0 (/opt/rustwide/workdir/crates/ls-scraper) [INFO] [stderr] Compiling ls-domain v0.1.0 (/opt/rustwide/workdir/crates/ls-domain) [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling md5 v0.7.0 [INFO] [stderr] Compiling ls-logging v0.1.0 (/opt/rustwide/workdir/crates/ls-logging) [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling sqlx v0.8.6 [INFO] [stderr] Compiling actix-cors v0.7.1 [INFO] [stderr] Compiling actix-ws v0.3.1 [INFO] [stderr] Compiling jsonwebtoken v10.3.0 [INFO] [stderr] Compiling meilisearch-sdk v0.32.0 [INFO] [stderr] Compiling ls-infra v0.1.0 (/opt/rustwide/workdir/crates/ls-infra) [INFO] [stderr] Compiling ls-api v0.1.0 (/opt/rustwide/workdir/crates/ls-api) [INFO] [stderr] Compiling ls-app v0.1.0 (/opt/rustwide/workdir/crates/ls-app) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7m 02s [INFO] running `Command { std: "docker" "inspect" "ea421aa06ae8ecea1424954d98ad3621c37123eca8c3c857ee8101904b62d09a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea421aa06ae8ecea1424954d98ad3621c37123eca8c3c857ee8101904b62d09a", kill_on_drop: false }` [INFO] [stdout] ea421aa06ae8ecea1424954d98ad3621c37123eca8c3c857ee8101904b62d09a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9d343a69dd9d9ab0a5caef23f90ab0bc98f2d4a6bfb065abc45ff23ef6a40cd5 [INFO] running `Command { std: "docker" "start" "-a" "9d343a69dd9d9ab0a5caef23f90ab0bc98f2d4a6bfb065abc45ff23ef6a40cd5", kill_on_drop: false }` [INFO] [stderr] Compiling ls-logging v0.1.0 (/opt/rustwide/workdir/crates/ls-logging) [INFO] [stderr] Compiling ls-infra v0.1.0 (/opt/rustwide/workdir/crates/ls-infra) [INFO] [stderr] Compiling ls-scraper v0.1.0 (/opt/rustwide/workdir/crates/ls-scraper) [INFO] [stderr] Compiling ls-agent v0.1.0 (/opt/rustwide/workdir/crates/ls-agent) [INFO] [stderr] Compiling ls-api v0.1.0 (/opt/rustwide/workdir/crates/ls-api) [INFO] [stderr] Compiling ls-config v0.1.0 (/opt/rustwide/workdir/crates/ls-config) [INFO] [stderr] Compiling ls-domain v0.1.0 (/opt/rustwide/workdir/crates/ls-domain) [INFO] [stderr] Compiling ls-app v0.1.0 (/opt/rustwide/workdir/crates/ls-app) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 40s [INFO] running `Command { std: "docker" "inspect" "9d343a69dd9d9ab0a5caef23f90ab0bc98f2d4a6bfb065abc45ff23ef6a40cd5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9d343a69dd9d9ab0a5caef23f90ab0bc98f2d4a6bfb065abc45ff23ef6a40cd5", kill_on_drop: false }` [INFO] [stdout] 9d343a69dd9d9ab0a5caef23f90ab0bc98f2d4a6bfb065abc45ff23ef6a40cd5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 303c7b7e89a8020899646aeb13ce228cd6c4106659f17f396a9fe8ccdbd83de8 [INFO] running `Command { std: "docker" "start" "-a" "303c7b7e89a8020899646aeb13ce228cd6c4106659f17f396a9fe8ccdbd83de8", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.69s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_agent-c962b1657161ee5d) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_api-d927dbcc81b2d17f) [INFO] [stdout] test model::tests::open_status_detection_matches_expected_states ... ok [INFO] [stdout] test moviepilot::tests::filter_search_results_rejects_movies_larger_than_35gb ... ok [INFO] [stdout] test model::tests::normalize_int_list_discards_non_positive_and_dedupes ... ok [INFO] [stdout] test moviepilot::tests::choose_best_result_prefers_higher_seeders ... ok [INFO] [stdout] test moviepilot::tests::filter_search_results_respects_season_and_seeders ... ok [INFO] [stdout] test model::tests::user_status_mapping_matches_admin_status ... ok [INFO] [stdout] test moviepilot::tests::contextual_download_payload_includes_media_info ... ok [INFO] [stdout] test moviepilot::tests::moviepilot_response_accepts_null_message ... ok [INFO] [stdout] test workflow::tests::request_type_maps_to_expected_workflow_kind ... ok [INFO] [stdout] test workflow::tests::manual_actions_include_handoff_for_auto_processing ... ok [INFO] [stdout] test workflow::tests::missing_episode_workflow_requires_metadata_capability ... ok [INFO] [stdout] test workflow::tests::workflow_steps_mark_review_as_blocked ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 225 tests [INFO] [stdout] test routes_admin_sessions_system_tests::web_settings_restart_not_required_for_tmdb_credentials_change ... ok [INFO] [stdout] test routes_admin_sessions_system_tests::web_settings_restart_required_for_server_binding_changes ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_is_case_insensitive ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_preserves_subtitle_stream_case ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_normalizes_users_items_static_segments_before_uuid_routes ... ok [INFO] [stdout] test tests::add_virtual_folder_and_image_reorder_query_parse ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_strips_and_normalizes_videos_case ... ok [INFO] [stdout] test tests::admin_billing_config_response_masks_epay_key ... ok [INFO] [stdout] test tests::admin_create_library_request_supports_optional_library_type ... ok [INFO] [stdout] test tests::admin_create_lumenbackend_node_request_accepts_enabled_and_name ... ok [INFO] [stdout] test tests::admin_batch_user_status_request_supports_multiple_users ... ok [INFO] [stdout] test tests::admin_billing_config_response_does_not_mask_empty_key ... ok [INFO] [stdout] test tests::admin_library_status_response_serializes_library_type ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_normalizes_items_static_segments_before_uuid_routes ... ok [INFO] [stdout] test tests::admin_patch_task_definition_request_supports_optional_fields ... ok [INFO] [stdout] test tests::admin_patch_user_profile_request_supports_nullable_fields ... ok [INFO] [stdout] test tests::admin_run_task_request_supports_payload_override ... ok [INFO] [stdout] test tests::admin_upsert_billing_permission_group_request_accepts_domain_ids ... ok [INFO] [stdout] test tests::admin_upsert_playback_domain_request_accepts_binding_and_multiplier ... ok [INFO] [stdout] test tests::admin_user_summary_payload_masks_used_bytes_and_subscription_for_ce ... ok [INFO] [stdout] test tests::admin_upsert_playback_domain_request_accepts_null_node_binding_payload ... ok [INFO] [stdout] test tests::admin_user_profile_payload_masks_commercial_fields_for_ce ... ok [INFO] [stdout] test tests::admin_upsert_billing_plan_request_accepts_permission_group_id ... ok [INFO] [stdout] test tests::apply_epay_config_update_preserves_key_when_placeholder ... ok [INFO] [stdout] test tests::api_metrics_snapshot_contains_derived_rates ... ok [INFO] [stdout] test tests::apply_billing_config_update_merges_partial_fields ... ok [INFO] [stdout] test tests::apply_item_external_subtitle_delivery_urls_updates_detail_payload_streams ... ok [INFO] [stdout] test tests::apply_episode_series_context_populates_series_tags ... ok [INFO] [stdout] test tests::apply_items_query_compatibility_filters_types_ids_and_total_count ... ok [INFO] [stdout] test tests::apply_items_query_compatibility_preserves_total_for_exclude_only ... ok [INFO] [stdout] test middleware_compat_case_tests::compat_prefix_normalizes_users_views_segment ... ok [INFO] [stdout] test tests::apply_playback_original_stream_target_overrides_stream_fields ... ok [INFO] [stdout] test tests::apply_playback_payload_client_context_fills_missing_fields ... ok [INFO] [stdout] test tests::allow_entries_support_single_ip_and_cidr ... ok [INFO] [stdout] test tests::apply_playback_payload_client_context_keeps_existing_fields ... ok [INFO] [stdout] test tests::apply_system_flags_update_overrides_selected_fields ... ok [INFO] [stdout] test tests::build_items_query_options_keeps_explicit_include_item_types_for_search ... ok [INFO] [stdout] test tests::authenticate_user_by_id_request_accepts_pw_aliases ... ok [INFO] [stdout] test tests::build_items_query_options_maps_likes_dislikes_to_is_favorite ... ok [INFO] [stdout] test tests::authenticate_by_name_request_accepts_pascal_camel_and_legacy_aliases ... ok [INFO] [stdout] test tests::build_playback_original_stream_url_matches_emby_shape ... ok [INFO] [stdout] test tests::build_items_query_options_uses_name_starts_with_and_search_defaults ... ok [INFO] [stdout] test tests::build_items_query_options_parses_pipe_delimited_tags ... ok [INFO] [stdout] test tests::build_subtitle_delivery_url_falls_back_to_item_route_and_srt ... ok [INFO] [stdout] test tests::build_subtitle_delivery_url_includes_media_source_and_encoded_token ... ok [INFO] [stdout] test tests::build_system_flags_response_reports_local_file_support_and_no_transcoding ... ok [INFO] [stdout] test tests::compat_item_id_json_value_is_string ... ok [INFO] [stdout] test tests::compat_items_query_result_json_adds_view_item_defaults ... ok [INFO] [stdout] test tests::compat_items_query_result_json_adds_series_status_and_normalizes_end_date ... ok [INFO] [stdout] test tests::compat_items_query_result_json_keeps_requested_media_sources ... ok [INFO] [stdout] test tests::compat_items_query_result_json_infers_top_level_media_streams_from_media_sources ... ok [INFO] [stdout] test tests::compat_items_query_result_json_compacts_unrequested_fields_for_fields_query ... ok [INFO] [stdout] test tests::compat_items_query_result_json_keeps_media_sources_when_media_streams_requested ... ok [INFO] [stdout] test tests::compat_items_query_result_json_preserves_episode_linkage_fields_with_fields_filter ... ok [INFO] [stdout] test tests::compat_public_users_payload_returns_empty_array ... ok [INFO] [stdout] test tests::compat_metadata_lookup_query_result_json_adds_lookup_defaults ... ok [INFO] [stdout] test tests::compat_metadata_lookup_query_result_json_keeps_existing_primary_image_tag ... ok [INFO] [stdout] test tests::compat_single_item_json_adds_vidhub_safety_fields_for_movie_detail ... ok [INFO] [stdout] test tests::compat_single_item_json_adds_vidhub_safety_fields_for_episode_detail ... ok [INFO] [stdout] test tests::compat_single_item_json_adds_vidhub_safety_fields_for_series_detail ... ok [INFO] [stdout] test tests::compat_single_item_json_computes_played_percentage_when_runtime_present ... ok [INFO] [stdout] test tests::compat_single_item_json_derives_external_urls_from_provider_ids ... ok [INFO] [stdout] test tests::compat_single_item_json_keeps_fractional_community_rating_type ... ok [INFO] [stdout] test tests::compat_single_item_json_infers_top_level_chapters_from_media_source ... ok [INFO] [stdout] test tests::create_user_by_name_accepts_common_name_and_password_aliases ... ok [INFO] [stdout] test tests::compat_single_item_json_derives_tag_items_from_tags ... ok [INFO] [stdout] test tests::default_external_id_provider_keys_include_episode_defaults ... ok [INFO] [stdout] test tests::default_session_play_state_contains_compat_fields ... ok [INFO] [stdout] test tests::derive_internal_device_id_is_stable_and_positive ... ok [INFO] [stdout] test tests::compat_single_item_json_marks_embedded_subtitles_clearly ... ok [INFO] [stdout] test tests::display_preferences_query_accepts_legacy_and_modern_aliases ... ok [INFO] [stdout] test tests::emby_create_collection_query_all_optional ... ok [INFO] [stdout] test tests::emby_create_collection_query_camel_case ... ok [INFO] [stdout] test tests::emby_create_playlist_request_all_optional ... ok [INFO] [stdout] test tests::emby_create_collection_query_pascal_case ... ok [INFO] [stdout] test tests::emby_create_playlist_request_camel_case ... ok [INFO] [stdout] test tests::emby_create_playlist_request_pascal_case ... ok [INFO] [stdout] test tests::emby_playlist_items_query_pascal_case ... ok [INFO] [stdout] test tests::emby_playlist_items_query_camel_case ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_does_not_inject_placeholder_stream ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_fills_media_source_shape ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_marks_file_sources_as_local ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_marks_embedded_subtitles_clearly ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_prefers_item_id_for_direct_stream_url ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_uses_default_item_id_for_stream_url ... ok [INFO] [stdout] test tests::extract_client_ip_ignores_forged_header_from_untrusted_proxy ... ok [INFO] [stdout] test tests::ensure_playback_info_original_stream_urls_rewrites_remote_sources ... ok [INFO] [stdout] test tests::extract_client_ip_uses_forwarded_header_for_trusted_proxy_cidr ... ok [INFO] [stdout] test tests::extract_client_ip_uses_peer_for_direct_client_by_default ... ok [INFO] [stdout] test tests::admin_patch_library_request_supports_library_type ... ok [INFO] [stdout] test tests::extract_emby_authorization_param_from_headers_supports_x_emby_and_authorization ... ok [INFO] [stdout] test tests::extract_token_normalizes_quoted_x_emby_token ... ok [INFO] [stdout] test tests::admin_patch_lumenbackend_node_request_accepts_nullable_name ... ok [INFO] [stdout] test tests::extract_token_prefers_x_emby_token ... ok [INFO] [stdout] test tests::compat_latest_items_json_applies_extended_defaults ... ok [INFO] [stdout] test tests::extract_token_reads_mediabrowser_authorization_header ... ok [INFO] [stdout] test tests::extract_token_reads_query_api_key ... ok [INFO] [stdout] test tests::extract_token_reads_query_token ... ok [INFO] [stdout] test tests::admin_user_summary_query_request_parses_filters ... ok [INFO] [stdout] test tests::extract_emby_authorization_param_reads_client_context_fields ... ok [INFO] [stdout] test tests::extract_token_reads_bearer_header ... ok [INFO] [stdout] test tests::extract_token_reads_vidhub_style_emby_authorization_header ... ok [INFO] [stdout] test tests::filter_query_flag_supports_likes_and_dislikes_aliases ... ok [INFO] [stdout] test tests::filter_show_episodes_supports_season_number ... ok [INFO] [stdout] test tests::extract_token_reads_x_emby_authorization_header ... ok [INFO] [stdout] test tests::find_person_by_name_is_case_insensitive_exact_match ... ok [INFO] [stdout] test tests::find_root_collection_item_matches_view_item_id ... ok [INFO] [stdout] test tests::forgot_password_payload_accepts_legacy_aliases ... ok [INFO] [stdout] test tests::hide_from_resume_query_defaults_to_hide_and_parses_aliases ... ok [INFO] [stdout] test tests::image_content_type_from_extension ... ok [INFO] [stdout] test tests::image_compat_query_supports_processing_params_and_tag_header ... ok [INFO] [stdout] test tests::image_resize_request_ignores_invalid_processing_values ... ok [INFO] [stdout] test tests::invite_settings_update_ignores_rewards_for_ce ... ok [INFO] [stdout] test tests::infer_latest_item_types_for_library_maps_common_collection_types ... ok [INFO] [stdout] test tests::image_resize_request_normalizes_query_values ... ok [INFO] [stdout] test tests::invite_payloads_hide_rewards_when_disabled ... ok [INFO] [stdout] test tests::item_ancestors_query_accepts_user_id_aliases ... ok [INFO] [stdout] test tests::item_counts_dto_includes_extended_jellyfin_fields ... ok [INFO] [stdout] test tests::library_image_upload_helpers_accept_common_types_and_content_types ... ok [INFO] [stdout] test tests::library_to_base_item_dto_maps_virtual_folder_shape ... ok [INFO] [stdout] test tests::library_virtual_folder_payloads_accept_pascal_and_camel_aliases ... ok [INFO] [stdout] test tests::lumenbackend_register_request_accepts_runtime_schema_payload ... ok [INFO] [stdout] test tests::items_filters_helper_applies_media_type_intersection ... ok [INFO] [stdout] test tests::items_library_compat_query_parsers_accept_aliases ... ok [INFO] [stdout] test tests::items_query_and_filter_queries_accept_extended_aliases ... ok [INFO] [stdout] test tests::latest_items_query_accepts_emby_aliases_and_limit_is_clamped ... ok [INFO] [stdout] test tests::legacy_user_image_index_helper_rejects_negative_index ... ok [INFO] [stdout] test tests::map_billing_error_ignores_non_billing_errors ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_marks_strm_sources_as_remote ... ok [INFO] [stdout] test tests::map_billing_error_returns_payment_required_for_insufficient_balance ... ok [INFO] [stdout] test tests::ensure_playback_info_compat_defaults_normalizes_chapter_shape ... ok [INFO] [stdout] test tests::map_invite_error_ignores_non_invite_errors ... ok [INFO] [stdout] test tests::map_items_query_error_returns_503_when_search_backend_is_unavailable ... ok [INFO] [stdout] test tests::map_invite_error_maps_known_invite_errors ... ok [INFO] [stdout] test tests::map_stream_admission_error_ignores_non_admission_errors ... ok [INFO] [stdout] test tests::map_items_query_error_returns_500_for_other_errors ... ok [INFO] [stdout] test tests::map_stream_admission_error_returns_403_with_reason_payload ... ok [INFO] [stdout] test tests::media_source_is_remote_for_redirect_respects_explicit_flag ... ok [INFO] [stdout] test tests::media_source_is_remote_for_redirect_infers_from_protocol_or_path ... ok [INFO] [stdout] test tests::map_playlist_error_maps_known_playlist_errors ... ok [INFO] [stdout] test tests::media_source_item_id_candidate_falls_back_to_item_id ... ok [INFO] [stdout] test tests::map_task_center_error_maps_active_run_conflict ... ok [INFO] [stdout] test tests::mask_web_settings_hides_secret_values ... ok [INFO] [stdout] test tests::merge_agent_secret_placeholders_preserves_new_moviepilot_password ... ok [INFO] [stdout] test tests::my_traffic_usage_media_query_accepts_window_days_alias ... ok [INFO] [stdout] test tests::metadata_patch_from_payload_maps_common_item_fields ... ok [INFO] [stdout] test tests::media_source_item_id_candidate_prefers_source_value ... ok [INFO] [stdout] test tests::media_source_item_id_candidate_returns_none_when_missing ... ok [INFO] [stdout] test tests::next_up_query_compatibility_filters_parent_media_and_first_episode ... ok [INFO] [stdout] test tests::metadata_patch_from_payload_prefers_explicit_tmdb_imdb_fields ... ok [INFO] [stdout] test tests::merge_agent_secret_placeholders_keeps_existing_moviepilot_password ... ok [INFO] [stdout] test tests::merge_secret_placeholders_keeps_existing_secret_values ... ok [INFO] [stdout] test tests::normalize_mac_for_wol_accepts_common_mac_formats ... ok [INFO] [stdout] test tests::normalize_media_source_id_candidate_keeps_trimmed_raw_id_when_unresolved ... ok [INFO] [stdout] test tests::normalize_media_source_id_candidate_rejects_empty_values ... ok [INFO] [stdout] test tests::normalize_media_source_id_candidate_prefers_resolved_uuid ... ok [INFO] [stdout] test tests::normalize_optional_item_id_treats_blank_as_none ... ok [INFO] [stdout] test tests::next_up_query_helpers_clamp_values ... ok [INFO] [stdout] test tests::paginate_named_values_returns_emby_query_result_shape_without_start_index ... ok [INFO] [stdout] test tests::normalize_person_types_keeps_supported_values_only ... ok [INFO] [stdout] test tests::normalize_my_traffic_window_days_clamps_to_30_days ... ok [INFO] [stdout] test tests::parse_authenticate_by_name_payload_accepts_form_and_query_fallback ... ok [INFO] [stdout] test tests::paginate_resume_items_applies_start_limit_and_total_count_toggle ... ok [INFO] [stdout] test tests::parse_compat_uuid_is_permissive_and_ignores_invalid_inputs ... ok [INFO] [stdout] test tests::parse_legacy_favorite_action_accepts_add_and_delete ... ok [INFO] [stdout] test tests::parse_legacy_played_action_rejects_unknown_action ... ok [INFO] [stdout] test tests::parse_legacy_favorite_action_rejects_unknown_action ... ok [INFO] [stdout] test tests::parse_legacy_played_action_accepts_add_and_delete ... ok [INFO] [stdout] test tests::parse_top_played_stat_date_supports_default_and_iso_date ... ok [INFO] [stdout] test tests::percentile_helper_works_on_sorted_samples ... ok [INFO] [stdout] test tests::parse_user_role_strict_rejects_invalid_values ... ok [INFO] [stdout] test tests::person_lookup_id_parses_uuid_and_rejects_plain_text ... ok [INFO] [stdout] test tests::parse_uuid_csv_skips_invalid_values ... ok [INFO] [stdout] test tests::person_lookup_id_prefers_resolved_alias_mapping ... ok [INFO] [stdout] test tests::range_parsers_handle_valid_and_invalid_values ... ok [INFO] [stdout] test tests::parse_user_role_honors_explicit_and_fallback_values ... ok [INFO] [stdout] test tests::playback_info_compat_request_accepts_extended_body_fields ... ok [INFO] [stdout] test tests::public_system_info_includes_both_single_and_array_address_fields ... ok [INFO] [stdout] test tests::remote_search_include_item_types_supports_season_and_episode ... ok [INFO] [stdout] test tests::remote_search_payload_helpers_extract_search_info ... ok [INFO] [stdout] test tests::remote_image_type_normalizer_accepts_known_types ... ok [INFO] [stdout] test tests::playback_info_compat_query_accepts_pascal_and_camel_case_fields ... ok [INFO] [stdout] test tests::resolve_emby_client_context_ignores_browser_user_agent_fallback ... ok [INFO] [stdout] test tests::resolve_emby_client_context_uses_native_user_agent_fallback ... ok [INFO] [stdout] test tests::resolve_emby_client_context_falls_back_to_emby_authorization_values ... ok [INFO] [stdout] test tests::resolve_emby_client_context_uses_query_fallback_values ... ok [INFO] [stdout] test tests::remote_subtitle_id_and_language_helpers_work_for_local_tracks ... ok [INFO] [stdout] test tests::resolve_emby_client_context_prefers_header_over_query_values ... ok [INFO] [stdout] test tests::playback_progress_payload_accepts_camel_and_playback_aliases ... ok [INFO] [stdout] test tests::resume_query_helpers_clamp_values ... ok [INFO] [stdout] test tests::playing_ping_success_response_returns_empty_no_content ... ok [INFO] [stdout] test tests::resume_filter_helpers_match_types_media_and_search_term ... ok [INFO] [stdout] test tests::resolve_new_password_supports_reset_for_admin_only ... ok [INFO] [stdout] test tests::router_registers_head_routes_for_video_stream_endpoints ... ok [INFO] [stdout] test tests::search_hints_query_helpers_normalize_inputs ... ok [INFO] [stdout] test tests::resolve_request_address_uses_forwarded_headers_for_public_url ... ok [INFO] [stdout] test tests::router_registers_played_items_legacy_delete_route ... ok [INFO] [stdout] test tests::session_capabilities_query_accepts_known_fields ... ok [INFO] [stdout] test tests::router_registers_hide_from_resume_route ... ok [INFO] [stdout] test tests::session_device_key_prefers_device_id_and_normalizes_whitespace ... ok [INFO] [stdout] test tests::session_play_state_with_playback_uses_latest_position_and_play_method ... ok [INFO] [stdout] test tests::show_episodes_query_compatibility_applies_missing_start_and_adjacent ... ok [INFO] [stdout] test tests::show_seasons_query_helper_applies_special_missing_and_adjacent_filters ... ok [INFO] [stdout] test tests::split_csv_and_resumable_filter_helpers ... ok [INFO] [stdout] test tests::session_is_recent_filters_stale_sessions ... ok [INFO] [stdout] test tests::show_episodes_query_helpers_clamp_values ... ok [INFO] [stdout] test tests::subtitle_helpers_map_codec_and_content_type ... ok [INFO] [stdout] test tests::stream_video_compat_query_accepts_common_jellyfin_transcode_keys ... ok [INFO] [stdout] test tests::subtitle_stream_compat_query_accepts_media_source_and_timing_keys ... ok [INFO] [stdout] test tests::supports_https_checks_forwarded_proto_and_wan_address ... ok [INFO] [stdout] test tests::studios_browse_result_serializes_with_emby_expected_core_fields ... ok [INFO] [stdout] test tests::system_compat_query_parsers_accept_common_keys ... ok [INFO] [stdout] test tests::system_info_capability_flags_match_compat_defaults ... ok [INFO] [stdout] test tests::system_ping_response_matches_jellyfin_heartbeat_contract ... ok [INFO] [stdout] test tests::top_played_query_helpers_clamp_values ... ok [INFO] [stdout] test tests::update_user_password_parses_legacy_and_new_field_names ... ok [INFO] [stdout] test tests::user_item_data_update_body_derives_played_from_extended_fields ... ok [INFO] [stdout] test tests::user_configuration_accepts_extended_fields_and_extra_payload ... ok [INFO] [stdout] test tests::user_image_type_compatibility_accepts_common_jellyfin_types ... ok [INFO] [stdout] test tests::user_policy_update_accepts_extended_fields_and_boolish_values ... ok [INFO] [stdout] test tests::user_rating_and_playing_query_accept_aliases ... ok [INFO] [stdout] test tests::users_query_accepts_pascal_camel_and_boolish_values ... ok [INFO] [stdout] test tests::serve_image_file_skips_304_when_etag_differs ... ok [INFO] [stdout] test tests::serve_image_file_returns_304_when_etag_matches ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ls_app-1d991648886dad05) [INFO] [stdout] test tests::serve_image_file_returns_200_with_content_length ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 225 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_config-20482a08600f227a) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 22 tests [INFO] [stdout] test tests::apply_web_config_updates_scheduler ... ok [INFO] [stdout] test tests::ce_edition_masks_commercial_runtime_settings ... ok [INFO] [stdout] test tests::env_overrides_bootstrap_admin_credentials ... ok [INFO] [stdout] test tests::env_overrides_bootstrap_database_and_stream_policy_defaults ... ok [INFO] [stdout] test tests::log_config_defaults ... ok [INFO] [stdout] test tests::log_config_in_app_config ... ok [INFO] [stdout] test tests::env_overrides_cors_allow_origins ... ok [INFO] [stdout] test tests::defaults_include_tmdb_retry_and_cache_settings ... ok [INFO] [stdout] test tests::apply_web_config_updates_only_non_database_sections ... ok [INFO] [stdout] test tests::scan_config_accepts_legacy_default_library_path ... ok [INFO] [stdout] test tests::log_config_in_web_config ... ok [INFO] [stdout] test tests::scan_config_merges_and_dedups_library_paths ... ok [INFO] [stdout] test tests::scheduler_config_defaults ... ok [INFO] [stdout] test tests::scheduler_config_in_web_config ... ok [INFO] [stdout] test tests::scheduler_config_in_app_config ... ok [INFO] [stdout] test tests::validate_bootstrap_credentials_accepts_explicit_secure_values ... ok [INFO] [stdout] test tests::validate_bootstrap_credentials_rejects_empty_fields ... ok [INFO] [stdout] test tests::validate_bootstrap_credentials_rejects_legacy_default_pair ... ok [INFO] [stdout] test tests::scan_config_normalizes_local_media_exts ... ok [INFO] [stdout] test tests::load_from_path_only_reads_database_section ... ok [INFO] [stdout] test tests::log_config_env_overrides ... ok [INFO] [stdout] test tests::apply_web_config_updates_log ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_domain-12f22495ae4814b8) [INFO] [stdout] [INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_infra-bfd3f1dfc9a5a0be) [INFO] [stdout] [INFO] [stdout] running 260 tests [INFO] [stdout] test agent_request_tests::metadata_sort_prefers_newest_entry_for_follow_latest ... ok [INFO] [stdout] test agent_request_tests::build_moviepilot_media_info_prefers_tmdb_metadata_when_available ... ok [INFO] [stdout] test agent_request_tests::no_result_movie_recent_release_without_watch_provider_is_rejected ... ok [INFO] [stdout] test agent_request_tests::no_result_movie_with_watch_provider_goes_manual ... ok [INFO] [stdout] test agent_request_tests::replace_source_request_bypasses_library_hit_auto_close ... ok [INFO] [stdout] test agent_request_tests::fallback_plan_respects_preferred_source_and_goes_manual_if_missing ... ok [INFO] [stdout] test agent_request_tests::fallback_plan_filters_avoided_source_when_alternative_exists ... ok [INFO] [stdout] test agent_request_tests::tool_execution_record_tracks_failures ... ok [INFO] [stdout] test app_jobs_queue_tests::claim_ready_job_sql_guards_status_and_timing_windows ... ok [INFO] [stdout] test app_jobs_queue_tests::make_progress_clamps_percent_and_completed ... ok [INFO] [stdout] test app_jobs_queue_tests::queued_progress_sets_zero_percent ... ok [INFO] [stdout] test app_jobs_queue_tests::requeue_orphaned_running_jobs_sql_resets_running_rows ... ok [INFO] [stdout] test agent_request_tests::year_hints_extract_full_and_short_forms ... ok [INFO] [stdout] test app_jobs_queue_tests::task_definition_assignments_do_not_insert_separator_before_bind ... ok [INFO] [stdout] test app_libraries_storage_domains_tests::normalize_permission_group_domain_ids_deduplicates ... ok [INFO] [stdout] test app_libraries_storage_domains_tests::normalize_playback_domain_node_binding_handles_trim_and_clear ... ok [INFO] [stdout] test app_jobs_queue_tests::task_definition_assignments_support_multiple_fields_without_extra_commas ... ok [INFO] [stdout] test app_libraries_storage_domains_tests::normalize_playback_domain_traffic_multiplier_clamps ... ok [INFO] [stdout] test app_user_notifications_tests::mark_unplayed_sql_clears_play_count_and_last_played ... ok [INFO] [stdout] test app_user_notifications_tests::update_user_item_data_sql_resets_watch_state_when_played_is_false ... ok [INFO] [stdout] test app_users_policy_traffic_tests::normalize_stream_traffic_multiplier_clamps_bounds ... ok [INFO] [stdout] test app_users_policy_traffic_tests::normalize_traffic_usage_media_limit_clamps_bounds ... ok [INFO] [stdout] test app_users_policy_traffic_tests::scale_stream_traffic_bytes_applies_multiplier ... ok [INFO] [stdout] test agent_request_tests::tmdb_candidate_scoring_prefers_exact_title_and_year_match ... ok [INFO] [stdout] test auth::tests::verify_password_rejects_legacy_sha256_hash ... ok [INFO] [stdout] test agent_request_tests::heuristic_intent_marks_replace_source_requests ... ok [INFO] [stdout] test billing::tests::build_epay_sign_ignores_sign_fields_and_is_stable ... ok [INFO] [stdout] test billing::tests::build_epay_submit_url_appends_submit_php ... ok [INFO] [stdout] test billing::tests::calculate_proration_uses_min_of_time_and_traffic_ratio ... ok [INFO] [stdout] test agent_request_tests::fallback_loop_prefers_multi_source_metadata_search_for_latest_followup ... ok [INFO] [stdout] test billing::tests::normalize_money_truncates_to_two_decimal_places ... ok [INFO] [stdout] test playlist_query_tests::playlist_row_queries_include_playlist_type_in_select_and_group_by ... ok [INFO] [stdout] test playback_stream_tests::test_extract_resolution_label ... ok [INFO] [stdout] test scanner::tests::build_mediainfo_from_ffprobe_maps_runtime_and_bitrate ... ok [INFO] [stdout] test scanner::tests::compare_version_priority_prefers_local_streams ... ok [INFO] [stdout] test scanner::tests::detect_item_type_respects_library_type_mode ... ok [INFO] [stdout] test scanner::tests::directory_display_name_uses_cleaned_directory_name ... ok [INFO] [stdout] test scanner::tests::extract_runtime_and_bitrate_from_mediainfo ... ok [INFO] [stdout] test agent_request_tests::moviepilot_search_queries_prefer_override_and_dedup_titles ... ok [INFO] [stdout] test agent_request_tests::moviepilot_titles_include_tmdb_primary_and_original_names ... ok [INFO] [stdout] test agent_request_tests::moviepilot_exact_query_uses_resolved_tmdb_fields ... ok [INFO] [stdout] test scanner::tests::find_subtitles_accepts_resolution_and_language_suffixes ... ok [INFO] [stdout] test scanner::tests::find_subtitles_basic_match ... ok [INFO] [stdout] test scanner::tests::find_subtitles_allows_forced_flag ... ok [INFO] [stdout] test scanner::tests::find_subtitles_allows_locale_code ... ok [INFO] [stdout] test scanner::tests::find_subtitles_does_not_fallback_with_multiple_media_files ... ok [INFO] [stdout] test scanner::tests::find_subtitles_falls_back_when_directory_has_single_media_file ... ok [INFO] [stdout] test scanner::tests::detect_item_type_and_episode_numbers_from_filename ... ok [INFO] [stdout] test scanner::tests::infer_subtitle_language_from_filename ... ok [INFO] [stdout] test scanner::tests::find_subtitles_ignores_unrelated_files ... ok [INFO] [stdout] test scanner::tests::find_subtitles_matches_episode_marker_when_titles_differ ... ok [INFO] [stdout] test scanner::tests::infer_default_subtitle_flag_from_filename ... ok [INFO] [stdout] test scanner::tests::parse_duration_seconds_to_ticks_handles_invalid_values ... ok [INFO] [stdout] test scanner::tests::normalize_scanned_stream_url_uses_local_scheme_for_local_files ... ok [INFO] [stdout] test scanner::tests::normalize_scanned_stream_url_converts_local_strm_targets ... ok [INFO] [stdout] test scanner::tests::find_subtitles_rejects_overlapping_stem ... ok [INFO] [stdout] test scanner::tests::parse_season_number_from_season_directory_name ... ok [INFO] [stdout] test scanner::tests::parse_stream_url_from_strm_content_falls_back_to_first_non_comment_line ... ok [INFO] [stdout] test scanner::tests::parse_stream_url_from_strm_content_skips_comment_lines ... ok [INFO] [stdout] test scanner::tests::resolve_item_name_strips_year_and_resolution_tokens ... ok [INFO] [stdout] test scanner::tests::resolve_scan_probe_target_decodes_local_stream_scheme ... ok [INFO] [stdout] test scanner::tests::resolve_season_identity_synthesizes_stable_season_path_for_flat_layout ... ok [INFO] [stdout] test scanner::tests::resolve_season_identity_uses_real_season_directory_when_present ... ok [INFO] [stdout] test scanner::tests::season_display_name_falls_back_when_directory_only_contains_noise ... ok [INFO] [stdout] test scanner::tests::should_generate_mediainfo_sidecar_only_for_new_item_with_missing_file ... ok [INFO] [stdout] test scanner::tests::should_probe_mediainfo_sidecar_respects_probe_policy ... ok [INFO] [stdout] test scanner::tests::parse_nfo_reads_core_fields ... ok [INFO] [stdout] test scanner::tests::should_scan_incremental_respects_threshold ... ok [INFO] [stdout] test scanner::tests::should_skip_existing_item_when_policy_is_skip ... ok [INFO] [stdout] test scanner::tests::missing_metadata_checker_marks_required_fields ... ok [INFO] [stdout] test scanner::tests::version_group_key_groups_episode_versions_by_series_and_number ... ok [INFO] [stdout] test scanner::tests::version_group_key_groups_movie_versions_in_same_folder ... ok [INFO] [stdout] test scheduler::billing::tests::expiration_result_can_be_constructed ... ok [INFO] [stdout] test scheduler::billing::tests::expiration_result_default_is_zero ... ok [INFO] [stdout] test scheduler::cleanup::tests::cleanup_metrics_default ... ok [INFO] [stdout] test scheduler::cleanup::tests::cleanup_metrics_snapshot ... ok [INFO] [stdout] test scanner::tests::parse_nfo_strips_cdata_from_plot ... ok [INFO] [stdout] test scheduler::job_retry::tests::job_retry_metrics_default ... ok [INFO] [stdout] test scheduler::job_retry::tests::job_retry_metrics_atomic_increment ... ok [INFO] [stdout] test scheduler::job_retry::tests::job_retry_metrics_snapshot ... ok [INFO] [stdout] test scheduler::cleanup::tests::cleanup_metrics_atomic_increment ... ok [INFO] [stdout] test scheduler::library_scan::tests::due_library_row_debug ... ok [INFO] [stdout] test scanner::tests::parse_nfo_reads_tags_and_styles_as_tags ... ok [INFO] [stdout] test scheduler::library_scan::tests::interval_zero_means_manual_only ... ok [INFO] [stdout] test scheduler::job_retry::tests::retry_processing_result_default ... ok [INFO] [stdout] test scheduler::library_scan::tests::interval_calculation ... ok [INFO] [stdout] test scheduler::queued_dispatch::tests::queued_dispatch_result_defaults_to_zero ... ok [INFO] [stdout] test scheduler::job_retry::tests::retry_processing_result_can_be_constructed ... ok [INFO] [stdout] test search::tests::build_search_keys_for_chinese_title ... ok [INFO] [stdout] test scheduler::queued_dispatch::tests::dispatchable_jobs_sql_contains_ready_filters ... ok [INFO] [stdout] test search::tests::build_search_keys_handles_pinyin_input ... ok [INFO] [stdout] test scheduler::tests::due_time_found_within_window ... ok [INFO] [stdout] test scheduler::tests::due_time_not_found_outside_window ... ok [INFO] [stdout] test search::tests::empty_and_punctuation_only_inputs_are_ignored ... ok [INFO] [stdout] test search::tests::build_search_keys_keeps_ascii_and_digits ... ok [INFO] [stdout] test search::tests::normalize_media_title_strips_extensions ... ok [INFO] [stdout] test search::tests::normalize_media_title_strips_release_groups ... ok [INFO] [stdout] test search::tests::build_search_keys_normalizes_whitespace_and_symbols ... ok [INFO] [stdout] test tests::append_external_subtitles_to_media_source_adds_missing_streams ... ok [INFO] [stdout] test search::tests::normalize_media_title_handles_dot_separated_release_names ... ok [INFO] [stdout] test search::tests::normalize_media_title_strips_year_and_resolution_suffix ... ok [INFO] [stdout] test tests::apply_item_people_overrides_replaces_metadata_people ... ok [INFO] [stdout] test search::tests::normalize_media_title_keeps_non_suffix_year_titles ... ok [INFO] [stdout] test tests::apply_global_lumenbackend_stream_fields_overrides_existing_values ... ok [INFO] [stdout] test tests::apply_scrape_result_to_metadata_primary_overwrites_with_non_null_values ... ok [INFO] [stdout] test tests::build_lumenbackend_stream_token_is_stable_for_fixed_input ... ok [INFO] [stdout] test tests::build_meili_filter_builds_expected_clauses ... ok [INFO] [stdout] test tests::build_meili_filter_returns_none_for_empty_options ... ok [INFO] [stdout] test tests::build_playback_mediainfo_from_ffprobe_maps_runtime_bitrate_and_chapters ... ok [INFO] [stdout] test tests::apply_scrape_result_to_metadata_supplement_preserves_existing_core_fields ... ok [INFO] [stdout] test tests::build_schema_default_runtime_config_writes_nested_defaults ... ok [INFO] [stdout] test tests::calc_retry_delay_seconds_applies_exponential_backoff_with_cap ... ok [INFO] [stdout] test tests::build_movie_match_hints_prefers_nfo_and_path_over_item_name ... ok [INFO] [stdout] test tests::can_sql_paginate_items_query_only_for_non_fallback_first_page_queries ... ok [INFO] [stdout] test tests::distributed_offset_is_stable_and_bounded ... ok [INFO] [stdout] test tests::expand_ids_no_person_assoc_returns_original ... ok [INFO] [stdout] test tests::expand_ids_with_person_media_deduplicates ... ok [INFO] [stdout] test tests::expand_ids_with_person_media_injects_after_person ... ok [INFO] [stdout] test tests::extract_mediainfo_core_fields_prefers_media_source_info ... ok [INFO] [stdout] test tests::default_favorites_playlist_labels_match_web_copy ... ok [INFO] [stdout] test tests::extract_tmdb_keywords_supports_movie_and_tv_shapes ... ok [INFO] [stdout] test tests::apply_runtime_web_config_updates_config_snapshot ... ok [INFO] [stdout] test tests::group_person_media_rows_excludes_ids_and_respects_limit ... ok [INFO] [stdout] test tests::extract_tmdb_people_limits_cast_and_includes_crew_roles ... ok [INFO] [stdout] test tests::group_person_media_rows_person_with_no_media ... ok [INFO] [stdout] test tests::group_person_media_rows_groups_by_person_in_input_order ... ok [INFO] [stdout] test tests::image_candidates_supports_logo_type_names ... ok [INFO] [stdout] test tests::extract_nfo_studios_handles_object_and_string_entries ... ok [INFO] [stdout] test tests::image_candidates_supports_thumb_and_backdrop_types ... ok [INFO] [stdout] test tests::index_external_subtitle_rows_uses_playback_indices_and_skips_path_duplicates ... ok [INFO] [stdout] test tests::infer_stream_url_from_strm_path_ignores_non_stream_targets ... ok [INFO] [stdout] test tests::infer_stream_url_from_strm_path_reads_http_target ... ok [INFO] [stdout] test tests::item_row_to_dto_defaults_media_source_runtime_and_bitrate_to_zero ... ok [INFO] [stdout] test tests::item_row_to_dto_derives_runtime_ticks_from_tmdb_runtime_minutes ... ok [INFO] [stdout] test tests::item_row_to_dto_falls_back_to_nfo_official_rating ... ok [INFO] [stdout] test tests::item_row_to_dto_falls_back_to_nfo_overview_and_rating ... ok [INFO] [stdout] test tests::item_row_to_dto_falls_back_to_nfo_year_for_production_year ... ok [INFO] [stdout] test tests::item_row_to_dto_maps_season_number_to_index_number_for_season_items ... ok [INFO] [stdout] test tests::item_row_to_dto_maps_tags_from_metadata ... ok [INFO] [stdout] test tests::item_row_to_dto_parses_canonical_people_shape ... ok [INFO] [stdout] test tests::item_row_to_dto_prefers_season_parent_for_episode_payload ... ok [INFO] [stdout] test tests::item_row_to_dto_reads_canonical_overview_and_people ... ok [INFO] [stdout] test tests::image_candidates_returns_known_names ... ok [INFO] [stdout] test tests::image_candidates_supports_season_poster_names ... ok [INFO] [stdout] test tests::library_image_cache_path_targets_cache_library_images_dir ... ok [INFO] [stdout] test tests::items_query_normalize_deduplicates_person_ids ... ok [INFO] [stdout] test tests::item_row_to_dto_uses_strm_path_when_metadata_stream_url_missing ... ok [INFO] [stdout] test tests::library_image_upload_helpers_normalize_type_and_extension ... ok [INFO] [stdout] test tests::library_image_candidates_support_primary_and_backdrop_names ... ok [INFO] [stdout] test tests::mask_secret_fields_masks_dsn_values ... ok [INFO] [stdout] test tests::mask_secret_fields_masks_nested_sensitive_values ... ok [INFO] [stdout] test tests::libvips_size_spec_maps_resize_bounds ... ok [INFO] [stdout] test tests::media_source_path_from_row_prefers_metadata_and_stream_column_without_strm_file_fallback ... ok [INFO] [stdout] test tests::media_source_path_from_row_supports_legacy_strm_url_metadata_alias ... ok [INFO] [stdout] test tests::meili_quote_escapes_backslash_and_double_quote ... ok [INFO] [stdout] test tests::merge_json_values_overrides_and_preserves_unknown_fields ... ok [INFO] [stdout] test tests::merge_missing_json_fills_nested_nfo_title ... ok [INFO] [stdout] test tests::merge_missing_json_preserves_existing_and_fills_blanks ... ok [INFO] [stdout] test tests::merge_secret_placeholders_keeps_existing_secret_value ... ok [INFO] [stdout] test tests::media_item_image_candidates_supports_flat_series_episode_season_images ... ok [INFO] [stdout] test tests::merge_tmdb_tags_into_metadata_unions_without_duplicates ... ok [INFO] [stdout] test tests::metadata_tmdb_movie_conflicts_local_hints_detects_title_year_drift ... ok [INFO] [stdout] test tests::metadata_tmdb_movie_conflicts_respects_manual_tmdb_binding ... ok [INFO] [stdout] test tests::migrate_legacy_default_library_paths_drops_stale_legacy_key ... ok [INFO] [stdout] test tests::migrate_legacy_default_library_paths_converts_single_path_field ... ok [INFO] [stdout] test tests::normalize_lumenbackend_base_url_adds_scheme_and_trims_slash ... ok [INFO] [stdout] test tests::normalize_lumenbackend_stream_route_maps_cdn_alias_to_default ... ok [INFO] [stdout] test tests::normalize_items_sort_field_supports_series_and_episode_fields ... ok [INFO] [stdout] test tests::normalize_media_bitrate_defaults_to_zero_when_missing ... ok [INFO] [stdout] test tests::normalize_playback_mediainfo_accepts_media_source_with_chapters_payload ... ok [INFO] [stdout] test tests::normalize_media_runtime_ticks_defaults_to_zero_when_missing ... ok [INFO] [stdout] test tests::parent_scope_prefers_season_episode_sort_for_series_and_season_only ... ok [INFO] [stdout] test tests::normalize_policy_default_helpers_handle_negative_values ... ok [INFO] [stdout] test tests::parent_scope_sql_clause_library_non_recursive_excludes_season_and_episode ... ok [INFO] [stdout] test tests::parent_scope_sql_clause_series_and_season_match_expected_binds ... ok [INFO] [stdout] test tests::parse_chapters_from_mediainfo_maps_start_ticks_and_names ... ok [INFO] [stdout] test tests::parse_lumenbackend_http_stream_url_extracts_route_and_decodes_path ... ok [INFO] [stdout] test tests::parse_lumenbackend_http_stream_url_rejects_unknown_route_or_missing_path ... ok [INFO] [stdout] test tests::parse_media_streams_from_mediainfo_maps_audio_and_subtitle_fields ... ok [INFO] [stdout] test tests::parse_lumenbackend_reference_supports_explicit_and_default_route ... ok [INFO] [stdout] test tests::parse_media_streams_from_mediainfo_supports_legacy_streams_key ... ok [INFO] [stdout] test tests::parse_runtime_schema_fields_rejects_invalid_schema ... ok [INFO] [stdout] test tests::person_image_cache_path_uses_unified_cache_dir ... ok [INFO] [stdout] test tests::person_primary_image_tag_for_response_uses_fallback_when_missing_image ... ok [INFO] [stdout] test tests::person_row_to_dto_reads_canonical_overview ... ok [INFO] [stdout] test tests::playback_payload_helpers_accept_numeric_item_id ... ok [INFO] [stdout] test tests::playback_payload_played_hint_overrides_inference ... ok [INFO] [stdout] test tests::playlist_visibility_allows_owner_and_public_list ... ok [INFO] [stdout] test tests::playback_payload_helpers_extract_item_position_and_played_state ... ok [INFO] [stdout] test tests::media_item_image_candidates_supports_season_directory_images ... ok [INFO] [stdout] test tests::read_nfo_imdb_id_extracts_valid_tt_id ... ok [INFO] [stdout] test tests::read_nfo_imdb_id_ignores_actor_imdbid_when_root_imdbid_exists ... ok [INFO] [stdout] test tests::read_nfo_imdb_id_prefers_uniqueid_and_ignores_actor_imdbid ... ok [INFO] [stdout] test tests::read_nfo_imdb_id_rejects_non_tt_prefix ... ok [INFO] [stdout] test tests::read_nfo_imdb_id_tries_imdb_id_tag_fallback ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_extracts_valid_id ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_ignores_actor_tmdbid_when_root_tmdbid_exists ... ok [INFO] [stdout] test tests::build_resized_image_writes_target_format_and_dimensions ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_returns_none_for_missing_file ... ok [INFO] [stdout] test tests::remove_image_candidates_deletes_primary_and_logo_files ... ok [INFO] [stdout] test tests::requires_items_compat_fallback_only_when_parent_and_episode_or_season_requested ... ok [INFO] [stdout] test tests::requires_watch_state_join_only_when_user_and_filters_present ... ok [INFO] [stdout] test tests::resize_target_box_applies_bounds_and_preserves_ratio ... ok [INFO] [stdout] test tests::resized_image_cache_key_changes_with_metadata_and_resize_params ... ok [INFO] [stdout] test tests::resized_image_temp_path_keeps_actual_output_extension ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_prefers_uniqueid_and_ignores_actor_tmdbid ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_ignores_non_numeric ... ok [INFO] [stdout] test tests::resolve_person_image_path_from_cache_hints_falls_back_to_cache_dir_filename ... ok [INFO] [stdout] test tests::resolve_person_image_path_from_cache_hints_prefers_existing_raw_path ... ok [INFO] [stdout] test tests::resolve_scan_scope_path_handles_none_and_absolute_inside_root ... ok [INFO] [stdout] test tests::resolve_scan_scope_path_rejects_path_escape ... ok [INFO] [stdout] test tests::resolve_scan_scope_path_rejects_relative_scope_for_multi_roots ... ok [INFO] [stdout] test tests::resolve_scan_scope_path_supports_relative_subpath ... ok [INFO] [stdout] test tests::resolve_season_nfo_path_prefers_season_nfo_then_variants ... ok [INFO] [stdout] test tests::resolve_movie_nfo_imdb_id_from_stem_nfo ... ok [INFO] [stdout] test scanner::tests::should_scan_incremental_when_subtitle_changed ... ok [INFO] [stdout] test tests::root_collection_type_normalizes_common_aliases ... ok [INFO] [stdout] test tests::root_library_primary_image_tag_uses_primary_cover_candidates ... ok [INFO] [stdout] test tests::resolve_series_nfo_imdb_id_from_tvshow_nfo ... ok [INFO] [stdout] test tests::runtime_bootstrap_validation_rejects_empty_password_without_admin_user ... ok [INFO] [stdout] test tests::runtime_bootstrap_validation_rejects_legacy_default_without_admin_user ... ok [INFO] [stdout] test tests::runtime_bootstrap_validation_allows_missing_credentials_with_existing_admin ... ok [INFO] [stdout] test tests::scrape_fill_search_index_since_falls_back_to_started_at ... ok [INFO] [stdout] test tests::scrape_fill_search_index_since_prefers_new_since ... ok [INFO] [stdout] test tests::search_ids_from_meili_returns_search_unavailable_when_backend_missing ... ok [INFO] [stdout] test tests::runtime_bootstrap_validation_rejects_missing_credentials_without_admin_user ... ok [INFO] [stdout] test tests::select_best_movie_search_candidate_prefers_exact_title_and_year ... ok [INFO] [stdout] test tests::resolve_movie_nfo_tmdb_id_checks_stem_then_movie_nfo ... ok [INFO] [stdout] test tests::select_lumenbackend_stream_base_url_prefers_playback_domain_and_normalizes ... ok [INFO] [stdout] test tests::read_nfo_tmdb_id_rejects_zero_and_negative ... ok [INFO] [stdout] test tests::select_lumenbackend_stream_base_url_falls_back_when_playback_domain_invalid ... ok [INFO] [stdout] test tests::select_playback_mediainfo_backfill_candidate_skips_already_probed_sources ... ok [INFO] [stdout] test tests::resolve_series_nfo_tmdb_id_checks_tvshow_nfo_variants ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_item_refreshes_when_movie_tmdb_binding_conflicts ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_item_refreshes_when_people_missing_ids ... ok [INFO] [stdout] test tests::season_number_from_stem_supports_common_names ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_item_when_tags_are_missing ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_item_skips_complete_movie_metadata ... ok [INFO] [stdout] test tests::sort_name_order_expression_uses_dedicated_column ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_series_when_logo_file_missing ... ok [INFO] [stdout] test tests::select_playback_mediainfo_backfill_candidate_prefers_expected_source_id ... ok [INFO] [stdout] test tests::should_delete_linked_strm_matches_case_insensitive_extension ... ok [INFO] [stdout] test tests::subtitle_row_to_media_stream_infers_language_from_path_when_missing ... ok [INFO] [stdout] test tests::subtitle_row_to_media_stream_sets_expected_flags ... ok [INFO] [stdout] test tests::subtitle_codec_from_path_reads_extension ... ok [INFO] [stdout] test tests::strip_node_runtime_protected_fields_removes_system_managed_entries ... ok [INFO] [stdout] test tests::tmdb_cache_key_normalizes_case_and_whitespace ... ok [INFO] [stdout] test tests::tmdb_logo_helpers_pick_preferred_logo_and_language_query ... ok [INFO] [stdout] test tests::tmdb_movie_official_rating_prefers_language_region_with_release_type_priority ... ok [INFO] [stdout] test tests::validate_runtime_config_against_schema_rejects_undeclared_keys ... ok [INFO] [stdout] test tests::tmdb_movie_release_year_prefers_release_dates_payload ... ok [INFO] [stdout] test tests::tmdb_tv_official_rating_prefers_language_region_and_fallback ... ok [INFO] [stdout] test tests::write_movie_nfo_includes_studio_and_rating ... ok [INFO] [stdout] test tests::should_fill_tmdb_for_item_refreshes_when_images_are_missing ... ok [INFO] [stdout] test tests::write_episode_nfo_includes_genre ... ok [INFO] [stdout] test tests::write_tvshow_nfo_includes_genre_studio_rating ... ok [INFO] [stdout] test tests::write_movie_nfo_prefers_metadata_tmdb_id_over_existing_file_value ... ok [INFO] [stdout] test auth::tests::hash_password_creates_argon2id_hash_and_verifies ... ok [INFO] [stdout] test auth::tests::verify_password_accepts_reinitialized_hash_after_legacy_cutover ... ok [INFO] [stdout] test auth::tests::verify_password_rejects_wrong_password_for_argon2id_hash ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 260 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.40s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_logging-74fbff89e21c9d4c) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test tests::test_parse_level_invalid ... ok [INFO] [stdout] test tests::test_parse_filter_invalid ... ok [INFO] [stdout] test tests::test_parse_filter_valid ... ok [INFO] [stdout] test tests::test_log_config_default_values ... ok [INFO] [stdout] test tests::test_parse_level_valid ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ls_scraper-aa53dd7c1489afe0) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test model::tests::external_ids_default_is_empty ... ok [INFO] [stdout] test model::tests::infer_scenario_matches_item_type ... ok [INFO] [stdout] test model::tests::metadata_routes_use_series_default_for_non_movie_scenarios ... ok [INFO] [stdout] test model::tests::normalize_provider_chain_discards_duplicates ... ok [INFO] [stdout] test model::tests::image_routes_fall_back_to_global_image_chain ... ok [INFO] [stdout] test model::tests::resolve_provider_chain_prefers_library_override ... ok [INFO] [stdout] test model::tests::image_routes_prefer_library_image_override ... ok [INFO] [stdout] test nfo::tests::parse_sidecar_hints_extracts_known_ids ... ok [INFO] [stdout] test nfo::tests::render_document_preserves_unique_ids ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_agent [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_api [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_config [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_domain [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_infra [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_logging [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ls_scraper [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "303c7b7e89a8020899646aeb13ce228cd6c4106659f17f396a9fe8ccdbd83de8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "303c7b7e89a8020899646aeb13ce228cd6c4106659f17f396a9fe8ccdbd83de8", kill_on_drop: false }` [INFO] [stdout] 303c7b7e89a8020899646aeb13ce228cd6c4106659f17f396a9fe8ccdbd83de8