[INFO] cloning repository https://github.com/ignatenkofi/njuska-auto-bot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ignatenkofi/njuska-auto-bot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fignatenkofi%2Fnjuska-auto-bot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fignatenkofi%2Fnjuska-auto-bot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2147b0a8e278a81162decf03fc0164cfe6a75a66
[INFO] testing ignatenkofi/njuska-auto-bot/2147b0a8e278a81162decf03fc0164cfe6a75a66 against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fignatenkofi%2Fnjuska-auto-bot" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ignatenkofi/njuska-auto-bot
[INFO] finished tweaking git repo https://github.com/ignatenkofi/njuska-auto-bot
[INFO] tweaked toml for git repo https://github.com/ignatenkofi/njuska-auto-bot written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ignatenkofi/njuska-auto-bot on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ignatenkofi/njuska-auto-bot 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.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051
[INFO] running `Command { std: "docker" "start" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", 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" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", 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" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling phf_codegen v0.13.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling syn v3.0.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling string_cache_codegen v0.6.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling web_atoms v0.2.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling string_cache v0.9.0
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]    Compiling stacker v0.1.24
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.1
[INFO] [stderr]    Compiling tendril v0.5.1
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling selectors v0.38.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling rgb v0.8.53
[INFO] [stderr]    Compiling rc-box v1.3.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling servo_arc v0.4.3
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling takecell v0.1.1
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling ego-tree v0.11.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling njuska_auto_bot v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling hashlink v0.12.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling cssparser-macros v0.7.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling psm v0.1.31
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling teloxide-macros v0.10.0
[INFO] [stderr]    Compiling cssparser v0.37.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling aquamarine v0.6.0
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling markup5ever v0.39.0
[INFO] [stderr]    Compiling html5ever v0.39.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling derive_more v1.0.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling serde_with_macros v3.20.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde_with v3.20.0
[INFO] [stderr]    Compiling scraper v0.27.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling dptree v0.5.1
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling teloxide-core v0.13.0
[INFO] [stderr]    Compiling teloxide v0.17.0
[INFO] [stderr]    Compiling rusqlite v0.40.1
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 13s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", 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" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling selectors v0.38.0
[INFO] [stderr]    Compiling rusqlite v0.40.1
[INFO] [stderr]    Compiling scraper v0.27.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling teloxide-core v0.13.0
[INFO] [stderr]    Compiling teloxide v0.17.0
[INFO] [stderr]    Compiling njuska_auto_bot v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 44s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", 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" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.39s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/njuska_auto_bot-4be6a236ab17ffcb)
[INFO] [stdout] 
[INFO] [stdout] running 135 tests
[INFO] [stdout] test bot::tests::alert_re_arms_after_streak_breaks ... ok
[INFO] [stdout] test bot::tests::describe_fetch_error_hints_at_proxy_secret_on_403_via_proxy ... ok
[INFO] [stdout] test bot::tests::effective_sleep_saturates_on_absurd_base_instead_of_panicking ... ok
[INFO] [stdout] test bot::tests::fetch_error_streak_alerts_once_at_threshold_and_resets_on_success ... ok
[INFO] [stdout] test bot::tests::effective_sleep_doubles_then_caps_at_4x ... ok
[INFO] [stdout] test bot::tests::streak_fires_alert_once_at_threshold ... ok
[INFO] [stdout] test commands::catalog::tests::every_model_catalog_brand_is_in_the_brand_picker ... ok
[INFO] [stdout] test commands::handlers::tests::dump_message_stays_under_telegram_limit_with_monster_titles ... ok
[INFO] [stdout] test bot::tests::size_cap_is_a_noop_under_the_limit_and_on_missing_dir ... ok
[INFO] [stdout] test commands::catalog::tests::catalog_slugs_are_url_safe ... ok
[INFO] [stdout] test commands::catalog::tests::models_for_brand_finds_known_and_rejects_unknown ... ok
[INFO] [stdout] test commands::handlers::tests::dump_message_passes_rtl_and_zero_width_through_untouched ... ok
[INFO] [stdout] test bot::tests::streak_increments_on_empty_and_resets_on_non_empty ... ok
[INFO] [stdout] test bot::tests::rotate_dumps_is_quiet_when_dir_doesnt_exist ... ok
[INFO] [stdout] test commands::handlers::tests::dump_message_normal_case_lists_everything_without_truncation ... ok
[INFO] [stdout] test commands::handlers::tests::dump_message_truncates_a_single_huge_title_but_keeps_the_line ... ok
[INFO] [stdout] test commands::handlers::tests::status_search_url_is_html_escaped ... ok
[INFO] [stdout] test commands::handlers::tests::usage_hint_escapes_hostile_input ... ok
[INFO] [stdout] test commands::handlers::tests::filter_menu_body_shows_interval_and_filters ... ok
[INFO] [stdout] test commands::handlers::tests::usage_hint_for_known_command_repeats_its_description ... ok
[INFO] [stdout] test commands::handlers::tests::models_picker_title_escapes_hostile_brand_slug ... ok
[INFO] [stdout] test commands::handlers::tests::usage_hint_for_unknown_command_points_at_help ... ok
[INFO] [stdout] test commands::handlers::tests::usage_hint_strips_bot_mention_before_matching ... ok
[INFO] [stdout] test commands::keyboards::tests::brand_picker_covers_the_whole_catalog_across_pages ... ok
[INFO] [stdout] test commands::keyboards::tests::chassis_buttons_round_trip_codes_and_show_selection ... ok
[INFO] [stdout] test commands::keyboards::tests::interval_buttons_round_trip_through_the_callback_parser ... ok
[INFO] [stdout] test commands::keyboards::tests::every_keyboard_stays_under_telegram_callback_data_cap ... ok
[INFO] [stdout] test commands::keyboards::tests::gearbox_buttons_round_trip_codes_and_show_selection ... ok
[INFO] [stdout] test commands::keyboards::tests::model_buttons_round_trip_slugs_and_show_selection ... ok
[INFO] [stdout] test commands::keyboards::tests::model_picker_back_goes_to_brand_picker_with_menu_still_reachable ... ok
[INFO] [stdout] test commands::keyboards::tests::menu_spawned_screens_go_back_to_their_spawner_the_menu ... ok
[INFO] [stdout] test commands::keyboards::tests::single_page_pickers_have_no_nav_row ... ok
[INFO] [stdout] test commands::tests::draft_toggle_is_isolated_per_user ... ok
[INFO] [stdout] test commands::tests::draft_toggle_works_for_string_slugs_too ... ok
[INFO] [stdout] test commands::tests::hidden_commands_still_parse ... ok
[INFO] [stdout] test commands::tests::menu_descriptions_come_from_the_derive ... ok
[INFO] [stdout] test commands::tests::menu_registers_exactly_the_curated_commands_in_order ... ok
[INFO] [stdout] test commands::keyboards::tests::range_buttons_round_trip_field_from_to ... ok
[INFO] [stdout] test config::tests::is_authorized_matches_any_listed_id ... ok
[INFO] [stdout] test commands::keyboards::tests::model_picker_paginates_and_keeps_selection_across_pages ... ok
[INFO] [stdout] test bot::tests::save_html_dump_writes_a_file_at_the_expected_layout ... ok
[INFO] [stdout] test bot::tests::rotate_dumps_drops_old_folders_and_keeps_recent_and_unparseable ... ok
[INFO] [stdout] test bot::tests::save_html_dump_tags_saved_filter_dumps_with_the_filter_id ... ok
[INFO] [stdout] test bot::tests::size_cap_deletes_oldest_files_first_and_sweeps_empty_dirs ... ok
[INFO] [stdout] test config::tests::opt_bool_accepts_common_truthy_values ... ok
[INFO] [stdout] test config::tests::max_search_pages_defaults_to_two_and_rejects_zero ... ok
[INFO] [stdout] test config::tests::opt_bool_rejects_garbage ... ok
[INFO] [stdout] test config::tests::opt_csv_parsed_drops_empties_and_trims ... ok
[INFO] [stdout] test config::tests::opt_parsed_reports_key_on_error ... ok
[INFO] [stdout] test config::tests::opt_string_treats_empty_as_absent ... ok
[INFO] [stdout] test config::tests::parse_stored_bound_handles_empty_garbage_and_valid ... ok
[INFO] [stdout] test config::tests::parse_stored_code_list_handles_empty_garbage_and_valid ... ok
[INFO] [stdout] test config::tests::parse_stored_lang_keeps_fallback_on_garbage ... ok
[INFO] [stdout] test config::tests::req_csv_parsed_accepts_single_and_multiple_ids ... ok
[INFO] [stdout] test config::tests::stored_poll_interval_keeps_fallback_when_out_of_range_or_garbage ... ok
[INFO] [stdout] test config::tests::req_csv_parsed_rejects_missing_empty_and_garbage ... ok
[INFO] [stdout] test commands::handlers::tests::clear_confirm_rejects_absent_and_expired_requests ... ok
[INFO] [stdout] test commands::handlers::tests::clear_confirm_is_isolated_per_user ... ok
[INFO] [stdout] test dyncatalog::tests::parser_dedups_repeated_slugs ... ok
[INFO] [stdout] test dyncatalog::tests::parser_returns_empty_when_the_select_is_missing ... ok
[INFO] [stdout] test dyncatalog::tests::parses_brands_skipping_the_placeholder ... ok
[INFO] [stdout] test dyncatalog::tests::parses_models_for_the_selected_brand ... ok
[INFO] [stdout] test i18n::tests::chassis_label_maps_known_codes_and_passes_through_unknown ... ok
[INFO] [stdout] test dyncatalog::tests::parser_collapses_whitespace_in_display_names ... ok
[INFO] [stdout] test i18n::tests::default_language_is_russian ... ok
[INFO] [stdout] test i18n::tests::every_message_is_non_empty_in_every_language ... ok
[INFO] [stdout] test i18n::tests::filter_summary_renders_chassis_as_labels ... ok
[INFO] [stdout] test i18n::tests::filter_summary_renders_dashes_for_empty_filter ... ok
[INFO] [stdout] test dyncatalog::tests::brands_fall_back_to_hardcoded_when_cache_empty ... ok
[INFO] [stdout] test i18n::tests::filter_summary_renders_gearbox_as_labels ... ok
[INFO] [stdout] test i18n::tests::gearbox_label_maps_known_codes_and_passes_through_unknown ... ok
[INFO] [stdout] test i18n::tests::lang_code_round_trips_through_from_str ... ok
[INFO] [stdout] test i18n::tests::range_labels_match_the_shipped_presets ... ok
[INFO] [stdout] test dyncatalog::tests::cached_models_take_precedence_over_hardcoded ... ok
[INFO] [stdout] test models::tests::show_old_new_param_strings ... ok
[INFO] [stdout] test models::tests::to_url_for_page_appends_page_only_beyond_the_first ... ok
[INFO] [stdout] test models::tests::to_url_produces_mini_cooper_cabrio_query ... ok
[INFO] [stdout] test models::tests::to_url_renders_gearbox_codes_as_array_params ... ok
[INFO] [stdout] test dyncatalog::tests::cached_brands_take_precedence_over_hardcoded ... ok
[INFO] [stdout] test dyncatalog::tests::models_are_empty_for_brand_without_any_catalog ... ok
[INFO] [stdout] test dyncatalog::tests::models_fall_back_to_hardcoded_for_known_brand ... ok
[INFO] [stdout] test models::tests::empty_filter_still_produces_minimal_url ... ok
[INFO] [stdout] test scraper::tests::mileage_parser_handles_serbian_thousand_separator ... ok
[INFO] [stdout] test scraper::tests::proxy_secret_config_produces_curl_config_line_and_escapes_quoting ... ok
[INFO] [stdout] test scraper::tests::transient_classification_retries_the_right_errors ... ok
[INFO] [stdout] test scraper::tests::year_parser_handles_typical_input ... ok
[INFO] [stdout] test signals::tests::shutdown_signal_resolves_after_internal_request ... ok
[INFO] [stdout] test commands::handlers::tests::interval_out_of_range_is_rejected_and_changes_nothing ... ok
[INFO] [stdout] test config::tests::gearbox_three_state_load_absent_empty_set ... ok
[INFO] [stdout] test scraper::tests::every_listing_has_required_core_fields ... ok
[INFO] [stdout] test config::tests::lang_load_prefers_db_over_env_default ... ok
[INFO] [stdout] test commands::handlers::tests::apply_brand_failed_persist_leaves_ram_untouched ... ok
[INFO] [stdout] test commands::handlers::tests::rename_filter_acts_on_the_open_card_only ... ok
[INFO] [stdout] test commands::handlers::tests::save_filter_snapshots_the_draft_and_rejects_bad_and_duplicate_names ... ok
[INFO] [stdout] test scraper::tests::one_known_listing_parses_correctly ... ok
[INFO] [stdout] test commands::handlers::tests::apply_brand_clears_models_only_when_brand_changed ... ok
[INFO] [stdout] test scraper::tests::parses_expected_number_of_listings ... ok
[INFO] [stdout] test scraper::tests::ids_are_unique_and_numeric ... ok
[INFO] [stdout] test scraper::tests::derived_page2_fixture_parses_with_ids_disjoint_from_page1 ... ok
[INFO] [stdout] test commands::handlers::tests::dump_over_cap_with_large_store_does_not_claim_all_rows ... ok
[INFO] [stdout] test storage::tests::mark_seen_handles_empty_slice ... ok
[INFO] [stdout] test storage::tests::catalog_brands_round_trip_and_preserve_order ... ok
[INFO] [stdout] test commands::handlers::tests::pull_copies_saved_fields_into_the_draft_persist_first ... ok
[INFO] [stdout] test storage::tests::catalog_models_are_scoped_per_brand ... ok
[INFO] [stdout] test storage::tests::duplicate_filter_name_is_rejected ... ok
[INFO] [stdout] test storage::tests::catalog_freshness_flips_after_ttl_window ... ok
[INFO] [stdout] test telegram::tests::classify_carves_off_rate_limit_with_wait_time ... ok
[INFO] [stdout] test telegram::tests::classify_maps_api_errors_to_permanent ... ok
[INFO] [stdout] test telegram::tests::classify_maps_io_and_json_errors_to_retryable ... ok
[INFO] [stdout] test telegram::tests::escape_html_attr_also_handles_quote ... ok
[INFO] [stdout] test telegram::tests::escape_html_double_escapes_pre_escaped_input ... ok
[INFO] [stdout] test telegram::tests::escape_html_handles_all_three_specials ... ok
[INFO] [stdout] test telegram::tests::escape_html_passes_rtl_zero_width_and_emoji_through ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_escapes_hostile_title ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_escapes_quotes_and_gt_in_urls ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_full ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_handles_bare_ampersand_and_long_titles ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_skips_missing_meta ... ok
[INFO] [stdout] test telegram::tests::format_listing_html_tagged_appends_escaped_filter_name ... ok
[INFO] [stdout] test version::tests::version_contains_cargo_pkg_version ... ok
[INFO] [stdout] test storage::tests::last_seen_returns_most_recent_first_and_caps_at_limit ... ok
[INFO] [stdout] test storage::tests::mark_seen_makes_listings_disappear_from_unseen ... ok
[INFO] [stdout] test storage::tests::last_seen_roundtrips_fields ... ok
[INFO] [stdout] test storage::tests::mark_seen_is_idempotent ... ok
[INFO] [stdout] test storage::tests::dedup_is_scoped_per_filter ... ok
[INFO] [stdout] test storage::tests::clear_seen_wipes_everything_and_reports_count ... ok
[INFO] [stdout] test storage::tests::filter_crud_round_trips_losslessly ... ok
[INFO] [stdout] test storage::tests::mixed_batch_unseen_picks_only_new_ones ... ok
[INFO] [stdout] test storage::tests::persists_across_storage_instances ... ok
[INFO] [stdout] test storage::tests::unseen_handles_empty_slice ... ok
[INFO] [stdout] test storage::tests::deleting_a_filter_cascades_links_but_keeps_details ... ok
[INFO] [stdout] test storage::tests::settings_persist_across_storage_instances ... ok
[INFO] [stdout] test storage::tests::unseen_on_empty_store_returns_everything ... ok
[INFO] [stdout] test storage::tests::prune_removes_only_rows_older_than_retention_and_vacuum_runs ... ok
[INFO] [stdout] test storage::tests::settings_round_trip ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/njuska_auto_bot-73bdc502c0375576)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 135 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[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 tests/poll_cycle.rs (/opt/rustwide/target/release/deps/poll_cycle-c8c7a5f18b544886)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test paused_cycle_fetches_and_sends_nothing ... ok
[INFO] [stdout] test all_saved_filters_disabled_polls_nothing_and_skips_the_zero_streak ... ok
[INFO] [stdout] test page1_fetch_failure_aborts_the_remaining_filters ... ok
[INFO] [stdout] test failed_send_is_not_marked_seen_and_retries_next_cycle ... ok
[INFO] [stdout] test max_pages_one_keeps_the_single_page_behavior ... ok
[INFO] [stdout] test disabled_saved_filter_is_not_polled ... ok
[INFO] [stdout] test first_cycle_sends_everything_second_sends_nothing ... ok
[INFO] [stdout] test two_page_burst_sends_both_pages_and_stops_on_the_empty_third ... ok
[INFO] [stdout] test pagination_stops_at_the_first_page_with_nothing_unseen ... ok
[INFO] [stdout] test zero_listings_across_all_pages_counts_as_one_zero_cycle ... ok
[INFO] [stdout] test saved_filters_each_poll_with_scoped_dedup_and_tagged_messages ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests njuska_auto_bot
[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" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051", kill_on_drop: false }`
[INFO] [stdout] 22ecd16ec188c017317fdfa90e74eb1c18c707e96fe03ce488f35780d4ced051
