[INFO] fetching crate spotterm 0.4.0...
[INFO] testing spotterm-0.4.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate spotterm 0.4.0 into /workspace/builds/worker-3-tc1/source
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate spotterm 0.4.0
[INFO] finished tweaking crates.io crate spotterm 0.4.0
[INFO] tweaked toml for crates.io crate spotterm 0.4.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate spotterm 0.4.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate spotterm 0.4.0 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v2.7.1
[INFO] [stderr]   Downloaded rspotify-model v0.16.1
[INFO] [stderr]   Downloaded rspotify-macros v0.16.1
[INFO] [stderr]   Downloaded rspotify-http v0.16.1
[INFO] [stderr]   Downloaded maybe-async v0.2.11
[INFO] [stderr]   Downloaded self_cell v1.3.0
[INFO] [stderr]   Downloaded ratatui v0.30.2
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.2
[INFO] [stderr]   Downloaded ratatui-core v0.1.2
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.2
[INFO] [stderr]   Downloaded tokio v1.53.0
[INFO] [stderr]   Downloaded rspotify v0.16.1
[INFO] [stderr]   Downloaded ratatui-termina v0.1.0
[INFO] [stderr]   Downloaded pest_derive v2.8.7
[INFO] [stderr]   Downloaded pest_generator v2.8.7
[INFO] [stderr]   Downloaded pest_meta v2.8.7
[INFO] [stderr]   Downloaded termina v0.3.3
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.2
[INFO] [stderr]   Downloaded ratatui-macros v0.7.2
[INFO] [stderr]   Downloaded ref-cast v1.0.26
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.26
[INFO] [stderr]   Downloaded ratatui-image v11.0.6
[INFO] [stderr]   Downloaded safe_arch v0.9.3
[INFO] [stderr]   Downloaded wide v0.8.3
[INFO] [stderr]   Downloaded quantette v0.5.1
[INFO] [stderr]   Downloaded syn v3.0.0
[INFO] [stderr]   Downloaded icy_sixel v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5
[INFO] running `Command { std: "docker" "start" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling cc v1.2.67
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling rustls v0.23.42
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling lru v0.18.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling syn v3.0.0
[INFO] [stderr]    Compiling pxfm v0.1.30
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling webpki-roots v1.0.8
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling fast-srgb8 v1.0.0
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling bitvec v1.1.1
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling ratatui-image v11.0.6
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling clap_builder v4.6.2
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling rspotify-macros v0.16.1
[INFO] [stderr]    Compiling self_cell v1.3.0
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling base64-simd v0.8.0
[INFO] [stderr]    Compiling toml v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling bytemuck_derive v1.11.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling tokio v1.53.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling bytemuck v1.25.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling safe_arch v0.9.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling wide v0.8.3
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling maybe-async v0.2.11
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling clap v4.6.2
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling rspotify-model v0.16.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling quantette v0.5.1
[INFO] [stderr]    Compiling rspotify-http v0.16.1
[INFO] [stderr]    Compiling icy_sixel v0.5.0
[INFO] [stderr]    Compiling rspotify v0.16.1
[INFO] [stderr]    Compiling spotterm v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 00s
[INFO] running `Command { std: "docker" "inspect" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rspotify-http v0.16.1
[INFO] [stderr]    Compiling rspotify v0.16.1
[INFO] [stderr]    Compiling spotterm v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 31.78s
[INFO] running `Command { std: "docker" "inspect" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spotterm-157ee88c01aa2cb3)
[INFO] [stdout] 
[INFO] [stdout] running 141 tests
[INFO] [stdout] test auth::tests::decide_returns_code_when_state_matches ... ok
[INFO] [stdout] test format::tests::format_ms_pads_seconds_and_handles_minutes ... ok
[INFO] [stdout] test auth::tests::parses_port_from_redirect_uri ... ok
[INFO] [stdout] test auth::tests::parses_path_from_redirect_uri ... ok
[INFO] [stdout] test auth::tests::preserve_refresh_token_prefers_rotated_value ... ok
[INFO] [stdout] test format::tests::join_artists_joins_or_reports_unknown ... ok
[INFO] [stdout] test auth::tests::restrict_token_perms_sets_owner_only ... ok
[INFO] [stdout] test format::tests::display_width_counts_columns ... ok
[INFO] [stdout] test auth::tests::percent_decode_handles_escapes_and_plus ... ok
[INFO] [stdout] test np_json::tests::track_from_json_falls_back_on_missing_fields ... ok
[INFO] [stdout] test format::tests::truncate_shortens_only_when_over_limit ... ok
[INFO] [stdout] test np_json::tests::album_images_from_json_extracts_list ... ok
[INFO] [stdout] test auth::tests::accept_code_validates_state_and_ignores_spurious ... ok
[INFO] [stdout] test np_json::tests::track_from_json_extracts_fields ... ok
[INFO] [stdout] test auth::tests::decide_ignores_missing_code ... ok
[INFO] [stdout] test auth::tests::decide_reports_denied_when_state_matches ... ok
[INFO] [stdout] test auth::tests::parse_callback_extracts_fields ... ok
[INFO] [stdout] test np_json::tests::track_id_from_json_ignores_non_track_and_missing ... ok
[INFO] [stdout] test np_json::tests::track_id_from_json_extracts_track_uri ... ok
[INFO] [stdout] test auth::tests::preserve_refresh_token_keeps_previous_when_response_omits_it ... ok
[INFO] [stdout] test np_json::tests::album_images_from_json_empty_when_missing ... ok
[INFO] [stdout] test auth::tests::parse_port_fails_without_port ... ok
[INFO] [stdout] test theme::tests::bar_glyphs_are_nonempty_and_distinct ... ok
[INFO] [stdout] test theme::tests::bar_glyphs_are_not_ok_prefixes ... ok
[INFO] [stdout] test theme::tests::icons_are_nonempty_and_distinct ... ok
[INFO] [stdout] test tui::browse::tests::build_all_empty_with_no_errors_is_ok_and_noteless ... ok
[INFO] [stdout] test tui::art::tests::allows_only_https_spotify_cdn ... ok
[INFO] [stdout] test tui::browse::tests::build_all_hard_errors_only_when_everything_fails ... ok
[INFO] [stdout] test theme::tests::warn_is_not_an_ok_prefix ... ok
[INFO] [stdout] test tui::browse::tests::build_all_notes_partial_failure_but_keeps_rows ... ok
[INFO] [stdout] test tui::art::tests::picks_nearest_when_no_exact ... ok
[INFO] [stdout] test tui::art::tests::picks_width_closest_to_target ... ok
[INFO] [stdout] test tui::browse::tests::selected_item_none_on_header ... ok
[INFO] [stdout] test tui::browse::tests::set_rows_snaps_selection_to_first_item ... ok
[INFO] [stdout] test tui::browse::tests::tab_next_wraps_in_header_order ... ok
[INFO] [stdout] test auth::tests::decide_ignores_state_mismatch ... ok
[INFO] [stdout] test tui::browse::tests::tab_prev_wraps_in_header_order ... ok
[INFO] [stdout] test tui::art::tests::empty_is_none ... ok
[INFO] [stdout] test tui::detail::tests::set_full_list_has_no_message ... ok
[INFO] [stdout] test tui::detail::tests::set_truncated_reports_first_of_total ... ok
[INFO] [stdout] test tui::detail::tests::truncated_total_only_when_more_than_fetched ... ok
[INFO] [stdout] test tui::browse::tests::first_selectable_none_when_all_headers ... ok
[INFO] [stdout] test tui::art::tests::rejects_non_cdn_and_non_https ... ok
[INFO] [stdout] test tui::playback::tests::queue_from_uris_queues_all_hits_and_offsets_to_selection ... ok
[INFO] [stdout] test tui::playback::tests::queue_from_uris_without_a_matching_selection_omits_the_offset ... ok
[INFO] [stdout] test tui::browse::tests::first_selectable_skips_leading_header ... ok
[INFO] [stdout] test tui::art::tests::unknown_width_still_selectable ... ok
[INFO] [stdout] test tui::playback::tests::queue_from_uris_rejects_an_unparseable_uri ... ok
[INFO] [stdout] test tui::detail::tests::selection_clamps_within_rows ... ok
[INFO] [stdout] test tui::browse::tests::next_and_prev_selectable_skip_headers ... ok
[INFO] [stdout] test tui::browse::tests::build_all_groups_nonempty_sections_under_headers ... ok
[INFO] [stdout] test tui::rate_limit::tests::parse_retry_after_rejects_non_integers_and_http_dates ... ok
[INFO] [stdout] test tui::rate_limit::tests::rate_limit_status_is_classified_as_a_warning ... ok
[INFO] [stdout] test tui::rate_limit::tests::parse_retry_after_caps_absurd_values ... ok
[INFO] [stdout] test tui::rate_limit::tests::remaining_is_none_once_the_deadline_passes ... ok
[INFO] [stdout] test tui::rate_limit::tests::parse_retry_after_reads_integer_seconds ... ok
[INFO] [stdout] test tui::rate_limit::tests::wait_prefers_server_retry_after_over_local_backoff ... ok
[INFO] [stdout] test tui::rate_limit::tests::anyhow_context_keeps_the_typed_source_downcastable ... ok
[INFO] [stdout] test tui::rate_limit::tests::backoff_grows_exponentially_then_caps ... ok
[INFO] [stdout] test tui::queue::tests::build_queue_state_always_starts_from_zero_failures ... ok
[INFO] [stdout] test tui::queue::tests::build_queue_state_empty_reports_empty_message ... ok
[INFO] [stdout] test tui::browse::tests::select_next_and_prev_skip_headers_and_clamp ... ok
[INFO] [stdout] test tui::queue::tests::transient_failure_keeps_last_good_rows ... ok
[INFO] [stdout] test tui::detail::tests::set_error_keeps_key_and_message ... ok
[INFO] [stdout] test tui::detail::tests::set_empty_shows_no_tracks ... ok
[INFO] [stdout] test tui::view::tests::art_col_width_lets_text_width_stay_positive ... ok
[INFO] [stdout] test tui::queue::tests::persistent_failure_escalates_to_visible_message ... ok
[INFO] [stdout] test tui::search::tests::dedicated_tab_is_a_flat_item_list ... ok
[INFO] [stdout] test tui::search::tests::selection_skips_headers_when_navigating_top ... ok
[INFO] [stdout] test tui::search::tests::set_tab_rebuilds_rows_and_snaps_selection ... ok
[INFO] [stdout] test tui::search::tests::song_index_locates_the_selected_track_for_the_play_queue ... ok
[INFO] [stdout] test tui::search::tests::tab_next_and_prev_wrap_in_header_order ... ok
[INFO] [stdout] test tui::search::tests::top_rows_skip_empty_categories ... ok
[INFO] [stdout] test tui::view::tests::art_col_width_columnizes_only_when_wide_enough ... ok
[INFO] [stdout] test tui::view::tests::detail_error_404_reports_not_found ... ok
[INFO] [stdout] test tui::view::tests::detail_error_other_status_shows_code ... ok
[INFO] [stdout] test tui::view::tests::dashboard_narrow_collapses_to_single_column ... ok
[INFO] [stdout] test tui::view::tests::detail_hint_reports_track_count ... ok
[INFO] [stdout] test tui::view::tests::detail_row_right_aligns_duration_and_numbers ... ok
[INFO] [stdout] test tui::view::tests::device_row_active_marks_and_notes ... ok
[INFO] [stdout] test tui::view::tests::device_row_inactive_without_volume ... ok
[INFO] [stdout] test tui::view::tests::detail_row_marks_current_track_with_play_glyph ... ok
[INFO] [stdout] test tui::view::tests::detail_error_no_status_is_generic ... ok
[INFO] [stdout] test tui::view::tests::detail_row_without_track_number_omits_it ... ok
[INFO] [stdout] test tui::view::tests::detail_error_403_reads_as_restricted_not_failure ... ok
[INFO] [stdout] test tui::view::tests::focus_effective_keeps_stored_when_detail_visible ... ok
[INFO] [stdout] test tui::view::tests::focus_next_stays_on_library_when_detail_hidden ... ok
[INFO] [stdout] test tui::view::tests::focus_next_swaps_lower_panes_when_detail_visible ... ok
[INFO] [stdout] test tui::view::tests::device_row_restricted_is_annotated ... ok
[INFO] [stdout] test tui::view::tests::help_entries_cover_all_keys ... ok
[INFO] [stdout] test tui::view::tests::device_row_truncates_with_symbol_margin ... ok
[INFO] [stdout] test tui::view::tests::interpolate_advances_only_while_playing ... ok
[INFO] [stdout] test tui::view::tests::focus_effective_clamps_to_library_when_detail_hidden ... ok
[INFO] [stdout] test tui::view::tests::interpolate_clamps_to_duration ... ok
[INFO] [stdout] test tui::view::tests::library_hint_reports_item_count ... ok
[INFO] [stdout] test tui::view::tests::now_playing_rows_survive_tiny_pane_heights ... ok
[INFO] [stdout] test tui::view::tests::library_tab_header_brackets_current_only ... ok
[INFO] [stdout] test tui::view::tests::playbar_degrades_to_times_when_no_room_for_slider ... ok
[INFO] [stdout] test tui::view::tests::playbar_keeps_volume_when_it_fits ... ok
[INFO] [stdout] test tui::view::tests::playbar_never_overflows_at_tiny_widths ... ok
[INFO] [stdout] test tui::view::tests::playbar_never_exceeds_width_and_keeps_volume ... ok
[INFO] [stdout] test tui::search::tests::back_to_input_discards_results ... ok
[INFO] [stdout] test tui::search::tests::empty_results_are_messaged_not_silent ... ok
[INFO] [stdout] test tui::search::tests::set_results_snaps_selection_past_the_top_header ... ok
[INFO] [stdout] test tui::search::tests::top_rows_preview_each_nonempty_category_under_headers ... ok
[INFO] [stdout] test tui::view::tests::now_playing_rows_keep_top_priority_at_footer_boundary ... ok
[INFO] [stdout] test tui::view::tests::progress_bar_clamps_out_of_range_ratio ... ok
[INFO] [stdout] test tui::view::tests::queue_row_numbers_upcoming_tracks ... ok
[INFO] [stdout] test tui::view::tests::playbar_shows_slider_when_wide ... ok
[INFO] [stdout] test tui::view::tests::playbar_unknown_volume_stays_visible ... ok
[INFO] [stdout] test tui::view::tests::progress_bar_zero_width_is_empty ... ok
[INFO] [stdout] test tui::view::tests::dashboard_normal_has_four_panes_and_stacked_bottom_rows ... ok
[INFO] [stdout] test tui::view::tests::dashboard_regions_stay_within_inner ... ok
[INFO] [stdout] test tui::view::tests::progress_ratio_bounds ... ok
[INFO] [stdout] test tui::view::tests::render_lines_prefixes_info_lines_with_icons ... ok
[INFO] [stdout] test tui::view::tests::queue_became_visible_true_only_on_hidden_to_visible ... ok
[INFO] [stdout] test tui::view::tests::progress_bar_knob_moves_with_ratio ... ok
[INFO] [stdout] test tui::view::tests::progress_bar_spans_exact_width ... ok
[INFO] [stdout] test tui::view::tests::queue_hint_reports_upcoming_count ... ok
[INFO] [stdout] test tui::view::tests::queue_row_marks_currently_playing_with_play_glyph ... ok
[INFO] [stdout] test tui::view::tests::queue_row_truncates_to_width ... ok
[INFO] [stdout] test tui::view::tests::render_lines_empty_state_when_nothing_playing ... ok
[INFO] [stdout] test tui::view::tests::status_kind_recognizes_every_theme_prefix ... ok
[INFO] [stdout] test tui::view::tests::search_row_truncates_with_symbol_margin ... ok
[INFO] [stdout] test tui::view::tests::dashboard_search_inserts_bar_between_upper_and_lower ... ok
[INFO] [stdout] test tui::view::tests::volume_bar_fills_by_percent ... ok
[INFO] [stdout] test tui::view::tests::volume_bar_full_and_empty ... ok
[INFO] [stdout] test tui::view::tests::volume_bar_unknown_stays_visible ... ok
[INFO] [stdout] test tui::view::tests::search_tab_header_brackets_current_only ... ok
[INFO] [stdout] test tui::view::tests::seek_target_advances_and_rewinds ... ok
[INFO] [stdout] test tui::view::tests::seek_target_clamps_bounds ... ok
[INFO] [stdout] test tui::view::tests::stack_rows_allocates_from_top_and_drops_overflow ... ok
[INFO] [stdout] test tui::view::tests::volume_bar_clamps_over_100 ... ok
[INFO] [stdout] test tui::view::tests::status_kind_classifies ... ok
[INFO] [stdout] test tui::view::tests::dashboard_guarantees_status_then_playbar_on_tiny_heights ... ok
[INFO] [stdout] test tui::view::tests::render_lines_shows_saved_marker ... ok
[INFO] [stdout] test tui::view::tests::search_row_joins_name_and_artists ... ok
[INFO] [stdout] test tui::view::tests::render_lines_shows_track_and_progress ... ok
[INFO] [stdout] test tui::view::tests::queue_row_omits_dash_when_no_artists ... ok
[INFO] [stdout] test tui::view::tests::dashboard_short_drops_footer_before_queue ... ok
[INFO] [stdout] test tui::view::tests::dashboard_thresholds_are_inclusive_boundaries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5", kill_on_drop: false }`
[INFO] [stdout] 623c7f200299a32edfbf86ba87dd3a908d50aa30a7448c6b1f13aea8a32f16d5
