[INFO] cloning repository https://github.com/hiddenpath/ai-lib
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hiddenpath/ai-lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhiddenpath%2Fai-lib", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhiddenpath%2Fai-lib'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8be5a06acdcd41624130d694a888f07eb4159843
[INFO] testing hiddenpath/ai-lib against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhiddenpath%2Fai-lib" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hiddenpath/ai-lib
[INFO] finished tweaking git repo https://github.com/hiddenpath/ai-lib
[INFO] tweaked toml for git repo https://github.com/hiddenpath/ai-lib written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hiddenpath/ai-lib on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hiddenpath/ai-lib 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0875e238c30e3a24541f3d4d2c6223563753212d84fd085ffcc2e05a38f6bf8e
[INFO] running `Command { std: "docker" "start" "-a" "0875e238c30e3a24541f3d4d2c6223563753212d84fd085ffcc2e05a38f6bf8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0875e238c30e3a24541f3d4d2c6223563753212d84fd085ffcc2e05a38f6bf8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0875e238c30e3a24541f3d4d2c6223563753212d84fd085ffcc2e05a38f6bf8e", kill_on_drop: false }`
[INFO] [stdout] 0875e238c30e3a24541f3d4d2c6223563753212d84fd085ffcc2e05a38f6bf8e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 44d7b9d04f57e1fd9bfd8fafe9c410b5c83bf1fc2731c2c85ffdbb77839c3b34
[INFO] running `Command { std: "docker" "start" "-a" "44d7b9d04f57e1fd9bfd8fafe9c410b5c83bf1fc2731c2c85ffdbb77839c3b34", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling bitflags v2.9.3
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling indexmap v2.11.0
[INFO] [stderr]    Compiling serde_core v1.0.221
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling writeable v0.6.1
[INFO] [stderr]    Compiling litemap v0.8.0
[INFO] [stderr]    Compiling value-bag v1.11.1
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling serde v1.0.221
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling serde_json v1.0.144
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling ena v0.14.3
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.221
[INFO] [stderr]    Compiling polling v3.10.0
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling async-io v2.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]    Compiling lalrpop v0.20.2
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling async-signal v0.2.12
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling async-executor v1.13.3
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling async-global-executor v2.4.1
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling url v2.5.6
[INFO] [stderr]    Compiling async-process v2.4.0
[INFO] [stderr]    Compiling async-attributes v1.1.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling iri-string v0.7.8
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling async-std v1.13.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling async-object-pool v0.1.5
[INFO] [stderr]    Compiling serde_regex v1.1.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling levenshtein v1.0.5
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.23
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling backoff v0.4.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling basic-cookies v0.1.5
[INFO] [stderr]    Compiling reqwest-eventsource v0.6.0
[INFO] [stderr]    Compiling httpmock v0.7.0
[INFO] [stderr]    Compiling ai-lib v0.3.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `health_check` is never used
[INFO] [stdout]    --> src/provider/utils.rs:199:14
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub async fn health_check(base_url: &str) -> Result<(), AiLibError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 49s
[INFO] running `Command { std: "docker" "inspect" "44d7b9d04f57e1fd9bfd8fafe9c410b5c83bf1fc2731c2c85ffdbb77839c3b34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44d7b9d04f57e1fd9bfd8fafe9c410b5c83bf1fc2731c2c85ffdbb77839c3b34", kill_on_drop: false }`
[INFO] [stdout] 44d7b9d04f57e1fd9bfd8fafe9c410b5c83bf1fc2731c2c85ffdbb77839c3b34
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e27acc9bff8b6397f3964919603991599b3d108093c1cc2799668feba9074abd
[INFO] running `Command { std: "docker" "start" "-a" "e27acc9bff8b6397f3964919603991599b3d108093c1cc2799668feba9074abd", kill_on_drop: false }`
[INFO] [stderr]    Compiling md5 v0.8.0
[INFO] [stdout] warning: function `health_check` is never used
[INFO] [stdout]    --> src/provider/utils.rs:199:14
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub async fn health_check(base_url: &str) -> Result<(), AiLibError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ai-lib v0.3.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> examples/model_management.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/improvements_test.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let mut invalid_config =
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/improvements_test.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut invalid_config = ProviderConfig::openai_compatible(
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/improvements_test.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut invalid_config =
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stdout]  --> examples/mistral_features.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::types::common::Content;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AiClient`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stdout]  --> examples/mistral_features.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::{AiClient, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stdout]  --> examples/deepseek_features.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::types::common::Content;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AiClient`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stdout]  --> examples/deepseek_features.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::{AiClient, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/quickstart.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let client = AiClient::new(Provider::Groq)?;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/quickstart.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]   --> examples/quickstart.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let request = ChatCompletionRequest::new(
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `advanced_client`
[INFO] [stdout]   --> examples/quickstart.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let advanced_client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advanced_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deepseek_client`
[INFO] [stdout]   --> examples/quickstart.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let deepseek_client = AiClient::new(Provider::DeepSeek)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deepseek_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ollama_client`
[INFO] [stdout]   --> examples/quickstart.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let ollama_client = AiClient::new(Provider::Ollama)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ollama_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AiClientBuilder`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stdout]  --> examples/interceptors_default.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::{AiClientBuilder, Provider, ChatCompletionRequest, Message, Role};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stdout]  --> examples/interceptors_default.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::types::common::Content;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transport`
[INFO] [stdout]   --> examples/custom_transport_config.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let transport = HttpTransport::new_with_config(cfg)?;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transport`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stdout]  --> examples/jsonl_streaming.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ai_lib::types::AiLibError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stdout]  --> tests/streaming_golden_cases.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ai_lib::types::AiLibError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stdout]  --> examples/builder_pattern.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::types::common::Content;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatCompletionRequest`, `Message`, and `Role`
[INFO] [stdout]  --> examples/builder_pattern.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ai_lib::{AiClient, AiClientBuilder, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let client = AiClient::builder(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let client = AiClientBuilder::new(Provider::Groq).build()?;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> examples/builder_pattern.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `groq_client`
[INFO] [stdout]   --> examples/builder_pattern.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let groq_client = AiClientBuilder::new(Provider::Groq)
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_groq_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deepseek_client`
[INFO] [stdout]   --> examples/builder_pattern.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let deepseek_client = AiClientBuilder::new(Provider::DeepSeek)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deepseek_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ollama_client`
[INFO] [stdout]    --> examples/builder_pattern.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let ollama_client = AiClientBuilder::new(Provider::Ollama)
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ollama_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]  --> examples/multimodal_usage.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let client = AiClient::new(Provider::OpenAI)?;
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mixed_messages`
[INFO] [stdout]   --> examples/multimodal_usage.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mixed_messages = vec![
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mixed_messages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stdout]  --> tests/sse_golden_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::types::AiLibError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> tests/resilience_tests.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |     for (error, expected_type) in errors {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `health_check` is never used
[INFO] [stdout]    --> src/provider/utils.rs:199:14
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub async fn health_check(base_url: &str) -> Result<(), AiLibError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/resilience_integration_test.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> tests/resilience_integration_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> tests/resilience_integration_test.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |     assert!(metrics.total_requests >= 0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Content`
[INFO] [stdout]  --> examples/upload_and_use_image.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::{AiClient, ChatCompletionRequest, Content, Message, Provider, Role};
[INFO] [stdout]   |                                               ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::api::ChatApi`
[INFO] [stdout]  --> examples/function_call_exec.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::api::ChatApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChatCompletionRequest`, `FunctionCallPolicy`, `Message`, `Role`, and `Tool`
[INFO] [stdout]  --> examples/function_call_exec.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::types::{ChatCompletionRequest, FunctionCallPolicy, Message, Role, Tool};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::AiClient`
[INFO] [stdout]  --> examples/function_call_exec.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ai_lib::AiClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::Provider`
[INFO] [stdout]  --> examples/function_call_exec.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ai_lib::Provider;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> examples/function_call_exec.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AiClientBuilder`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stdout]  --> examples/interceptors_minimal.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ai_lib::{AiClientBuilder, Provider, ChatCompletionRequest, Message, Role};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stdout]  --> examples/interceptors_minimal.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ai_lib::types::common::Content;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 42.88s
[INFO] running `Command { std: "docker" "inspect" "e27acc9bff8b6397f3964919603991599b3d108093c1cc2799668feba9074abd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e27acc9bff8b6397f3964919603991599b3d108093c1cc2799668feba9074abd", kill_on_drop: false }`
[INFO] [stdout] e27acc9bff8b6397f3964919603991599b3d108093c1cc2799668feba9074abd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c45c6bbfb30d2f9427f58af8ea7355725203d48919b08c7c125c601a2f1df7ad
[INFO] running `Command { std: "docker" "start" "-a" "c45c6bbfb30d2f9427f58af8ea7355725203d48919b08c7c125c601a2f1df7ad", kill_on_drop: false }`
[INFO] [stderr] warning: function `health_check` is never used
[INFO] [stderr]    --> src/provider/utils.rs:199:14
[INFO] [stderr]     |
[INFO] [stderr] 199 | pub async fn health_check(base_url: &str) -> Result<(), AiLibError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (lib) generated 1 warning
[INFO] [stderr] warning: `ai-lib` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: unused variable: `transport`
[INFO] [stderr]   --> examples/custom_transport_config.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let transport = HttpTransport::new_with_config(cfg)?;
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transport`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/quickstart.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let client = AiClient::new(Provider::Groq)?;
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/quickstart.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `request`
[INFO] [stderr]   --> examples/quickstart.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let request = ChatCompletionRequest::new(
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `advanced_client`
[INFO] [stderr]   --> examples/quickstart.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 55 |     let advanced_client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advanced_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `deepseek_client`
[INFO] [stderr]   --> examples/quickstart.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let deepseek_client = AiClient::new(Provider::DeepSeek)?;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deepseek_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ollama_client`
[INFO] [stderr]   --> examples/quickstart.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     let ollama_client = AiClient::new(Provider::Ollama)?;
[INFO] [stderr]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ollama_client`
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (example "custom_transport_config") generated 1 warning
[INFO] [stderr] warning: `ai-lib` (example "quickstart") generated 6 warnings
[INFO] [stderr] warning: unused imports: `AiClientBuilder`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stderr]  --> examples/interceptors_minimal.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::{AiClientBuilder, Provider, ChatCompletionRequest, Message, Role};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stderr]  --> examples/interceptors_minimal.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::types::common::Content;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/improvements_test.rs:24:13
[INFO] [stderr]    |
[INFO] [stderr] 24 |         let mut invalid_config =
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/improvements_test.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let mut invalid_config = ProviderConfig::openai_compatible(
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/improvements_test.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let mut invalid_config =
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stderr]  --> examples/deepseek_features.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::types::common::Content;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AiClient`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stderr]  --> examples/deepseek_features.rs:2:14
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::{AiClient, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stderr]   |              ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stderr]  --> tests/streaming_golden_cases.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use ai_lib::types::AiLibError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::api::ChatApi`
[INFO] [stderr]  --> examples/function_call_exec.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::api::ChatApi;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ChatCompletionRequest`, `FunctionCallPolicy`, `Message`, `Role`, and `Tool`
[INFO] [stderr]  --> examples/function_call_exec.rs:2:21
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::types::{ChatCompletionRequest, FunctionCallPolicy, Message, Role, Tool};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::AiClient`
[INFO] [stderr]  --> examples/function_call_exec.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ai_lib::AiClient;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::Provider`
[INFO] [stderr]  --> examples/function_call_exec.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use ai_lib::Provider;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::json`
[INFO] [stderr]  --> examples/function_call_exec.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use serde_json::json;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (example "interceptors_minimal") generated 2 warnings (run `cargo fix --example "interceptors_minimal"` to apply 2 suggestions)
[INFO] [stderr] warning: `ai-lib` (test "improvements_test") generated 3 warnings (run `cargo fix --test "improvements_test"` to apply 3 suggestions)
[INFO] [stderr] warning: `ai-lib` (example "deepseek_features") generated 2 warnings (run `cargo fix --example "deepseek_features"` to apply 2 suggestions)
[INFO] [stderr] warning: `ai-lib` (test "streaming_golden_cases") generated 1 warning (run `cargo fix --test "streaming_golden_cases"` to apply 1 suggestion)
[INFO] [stderr] warning: `ai-lib` (example "function_call_exec") generated 5 warnings (run `cargo fix --example "function_call_exec"` to apply 5 suggestions)
[INFO] [stderr] warning: unused imports: `AiClientBuilder`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stderr]  --> examples/interceptors_default.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::{AiClientBuilder, Provider, ChatCompletionRequest, Message, Role};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stderr]  --> examples/interceptors_default.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::types::common::Content;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (example "interceptors_default") generated 2 warnings (run `cargo fix --example "interceptors_default"` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `Content`
[INFO] [stderr]  --> examples/upload_and_use_image.rs:1:47
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::{AiClient, ChatCompletionRequest, Content, Message, Provider, Role};
[INFO] [stderr]   |                                               ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> examples/model_management.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stderr]  --> examples/jsonl_streaming.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ai_lib::types::AiLibError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (example "upload_and_use_image") generated 1 warning (run `cargo fix --example "upload_and_use_image"` to apply 1 suggestion)
[INFO] [stderr] warning: `ai-lib` (example "model_management") generated 1 warning (run `cargo fix --example "model_management"` to apply 1 suggestion)
[INFO] [stderr] warning: `ai-lib` (example "jsonl_streaming") generated 1 warning (run `cargo fix --example "jsonl_streaming"` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stderr]  --> examples/mistral_features.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::types::common::Content;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AiClient`, `ChatCompletionRequest`, `Message`, `Provider`, and `Role`
[INFO] [stderr]  --> examples/mistral_features.rs:2:14
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::{AiClient, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stderr]   |              ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::common::Content`
[INFO] [stderr]  --> examples/builder_pattern.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ai_lib::types::common::Content;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ChatCompletionRequest`, `Message`, and `Role`
[INFO] [stderr]  --> examples/builder_pattern.rs:3:41
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ai_lib::{AiClient, AiClientBuilder, ChatCompletionRequest, Message, Provider, Role};
[INFO] [stderr]   |                                         ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:56:9
[INFO] [stderr]    |
[INFO] [stderr] 56 |     let client = AiClient::builder(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let client = AiClientBuilder::new(Provider::Groq).build()?;
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> examples/builder_pattern.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |     let client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `groq_client`
[INFO] [stderr]   --> examples/builder_pattern.rs:87:9
[INFO] [stderr]    |
[INFO] [stderr] 87 |     let groq_client = AiClientBuilder::new(Provider::Groq)
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_groq_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `deepseek_client`
[INFO] [stderr]   --> examples/builder_pattern.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |     let deepseek_client = AiClientBuilder::new(Provider::DeepSeek)
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deepseek_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ollama_client`
[INFO] [stderr]    --> examples/builder_pattern.rs:100:9
[INFO] [stderr]     |
[INFO] [stderr] 100 |     let ollama_client = AiClientBuilder::new(Provider::Ollama)
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ollama_client`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]  --> examples/multimodal_usage.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let client = AiClient::new(Provider::OpenAI)?;
[INFO] [stderr]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mixed_messages`
[INFO] [stderr]   --> examples/multimodal_usage.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let mixed_messages = vec![
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mixed_messages`
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (example "mistral_features") generated 2 warnings (run `cargo fix --example "mistral_features"` to apply 2 suggestions)
[INFO] [stderr] warning: `ai-lib` (example "builder_pattern") generated 11 warnings (run `cargo fix --example "builder_pattern"` to apply 2 suggestions)
[INFO] [stderr] warning: `ai-lib` (example "multimodal_usage") generated 2 warnings
[INFO] [stderr] warning: unused variable: `expected_type`
[INFO] [stderr]    --> tests/resilience_tests.rs:278:17
[INFO] [stderr]     |
[INFO] [stderr] 278 |     for (error, expected_type) in errors {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/resilience_integration_test.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::time::sleep`
[INFO] [stderr]  --> tests/resilience_integration_test.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use tokio::time::sleep;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]   --> tests/resilience_integration_test.rs:45:13
[INFO] [stderr]    |
[INFO] [stderr] 45 |     assert!(metrics.total_requests >= 0);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ai_lib::types::AiLibError`
[INFO] [stderr]  --> tests/sse_golden_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ai_lib::types::AiLibError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ai-lib` (test "resilience_tests") generated 1 warning
[INFO] [stderr] warning: `ai-lib` (test "resilience_integration_test") generated 3 warnings (run `cargo fix --test "resilience_integration_test"` to apply 2 suggestions)
[INFO] [stderr] warning: `ai-lib` (test "sse_golden_tests") generated 1 warning (run `cargo fix --test "sse_golden_tests"` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ai_lib-60d405ab2aa50f1a)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test provider::classification::tests::test_provider_arrays ... ok
[INFO] [stdout] test provider::cohere::tests::split_text_handles_multibyte_without_panic ... ok
[INFO] [stdout] test provider::utils::tests::parse_upload_response_url ... ok
[INFO] [stdout] test provider::utils::tests::parse_upload_response_id ... ok
[INFO] [stdout] test provider::generic::legacy_sse_tests::legacy_event_sequence_non_ascii ... ok
[INFO] [stdout] test provider::classification::tests::test_provider_classification ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/architecture_test.rs (/opt/rustwide/target/debug/deps/architecture_test-5acc8d26a28b34a4)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::test_provider_enum ... ok
[INFO] [stdout] test tests::test_request_builder ... ok
[INFO] [stdout] test tests::test_role_enum ... ok
[INFO] [stdout] test tests::test_client_creation ... ok
[INFO] [stderr]      Running tests/ascii_horse_flow_tests.rs (/opt/rustwide/target/debug/deps/ascii_horse_flow_tests-18c982829d54ccdf)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::tool_flow_appends_tool_response ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/batch_processing_test.rs (/opt/rustwide/target/debug/deps/batch_processing_test-29e9d4a28b438e33)
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_empty_batch ... ok
[INFO] [stdout] test tests::test_batch_processing_sequential ... ok
[INFO] [stdout] test tests::test_batch_processing_concurrent ... ok
[INFO] [stdout] test tests::test_batch_processing_smart ... ok
[INFO] [stdout] test tests::test_batch_result_operations ... ok
[INFO] [stderr]      Running tests/context_control_tests.rs (/opt/rustwide/target/debug/deps/context_control_tests-6869a76680e2ceb8)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::ignore_previous_keeps_system_and_last ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cost_and_routing.rs (/opt/rustwide/target/debug/deps/cost_and_routing-ea075c33c6805af8)
[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/function_call_integration.rs (/opt/rustwide/target/debug/deps/function_call_integration-db91bdd8cc290792)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test openai_adapter_parses_function_call_from_response ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/function_call_tests.rs (/opt/rustwide/target/debug/deps/function_call_tests-c976d1a4d34f7efd)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test chat_request_serializes_functions_field ... ok
[INFO] [stdout] test generic_adapter_parses_function_call_object_arguments ... ok
[INFO] [stdout] test generic_adapter_parses_function_call_stringified_arguments ... ok
[INFO] [stdout] test generic_adapter_parses_tool_calls_first_function ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generic_adapter_upload_tests.rs (/opt/rustwide/target/debug/deps/generic_adapter_upload_tests-9639fcba31d38e86)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stderr]      Running tests/improvements_test.rs (/opt/rustwide/target/debug/deps/improvements_test-6cd5a05866104be2)
[INFO] [stdout] test generic_adapter_uploads_image_and_returns_file_id ... ok
[INFO] [stdout] test generic_adapter_size_boundary_respects_upload_size_limit ... ok
[INFO] [stdout] test generic_adapter_upload_failure_falls_back_to_inline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_file_utils ... ok
[INFO] [stdout] test tests::test_config_url_methods ... ok
[INFO] [stdout] test tests::test_field_mapping_validation ... ok
[INFO] [stdout] test tests::test_provider_config_validation ... ok
[INFO] [stdout] test tests::test_error_handling ... ok
[INFO] [stdout] test tests::test_metrics_ext ... ok
[INFO] [stderr]      Running tests/legacy_sse_sequence.rs (/opt/rustwide/target/debug/deps/legacy_sse_sequence-2ac9a7819dfe9df4)
[INFO] [stdout] test tests::test_enhanced_metrics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/metrics_tests.rs (/opt/rustwide/target/debug/deps/metrics_tests-7e90e3481a1d1f3c)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test legacy_event_sequence_non_ascii_doc ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test openai_adapter_calls_metrics ... ok
[INFO] [stdout] test generic_adapter_calls_metrics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::save_read_remove_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/multimodal_file_tests.rs (/opt/rustwide/target/debug/deps/multimodal_file_tests-ef7a8bc1b6ea34c0)
[INFO] [stderr]      Running tests/openai_adapter_upload_tests.rs (/opt/rustwide/target/debug/deps/openai_adapter_upload_tests-6f73e61d96c82682)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stderr]      Running tests/openai_upload_tests.rs (/opt/rustwide/target/debug/deps/openai_upload_tests-90849da21a1a1138)
[INFO] [stdout] test openai_adapter_uploads_image_and_includes_file_id_in_request ... ok
[INFO] [stdout] test openai_adapter_upload_failure_falls_back_to_inline_data ... ok
[INFO] [stdout] test openai_adapter_uploads_image_and_includes_url_in_request ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test upload_returns_url ... ok
[INFO] [stderr]      Running tests/override_precedence_tests.rs (/opt/rustwide/target/debug/deps/override_precedence_tests-f42988d497c26d3d)
[INFO] [stdout] test upload_returns_id ... ok
[INFO] [stdout] test upload_missing_url_or_id_returns_error ... ok
[INFO] [stdout] test upload_transport_failure_propagates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test disable_proxy_flag_applied ... ok
[INFO] [stdout] test base_url_override_openai ... ok
[INFO] [stdout] test explicit_api_key_overrides_env_openai ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/resilience_integration_test.rs (/opt/rustwide/target/debug/deps/resilience_integration_test-acf28e85d73b2ae6)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_adaptive_rate_limiting ... ok
[INFO] [stdout] test test_circuit_breaker_with_rate_limiter ... ok
[INFO] [stdout] test test_error_handling_with_recovery ... ok
[INFO] [stdout] test test_rate_limiter_metrics ... ok
[INFO] [stdout] test test_circuit_breaker_state_transitions ... ok
[INFO] [stdout] test test_resilience_configuration_presets ... ok
[INFO] [stdout] test test_resilience_features_integration ... ok
[INFO] [stdout] test test_suggested_actions ... ok
[INFO] [stdout] test test_error_pattern_analysis ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/resilience_tests.rs (/opt/rustwide/target/debug/deps/resilience_tests-6a06b7565b13a96a)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test test_circuit_breaker_basic_functionality ... ok
[INFO] [stdout] test test_error_context_creation ... ok
[INFO] [stdout] test test_error_recovery_manager_basic_functionality ... ok
[INFO] [stdout] test test_error_context_with_retry ... ok
[INFO] [stdout] test test_circuit_breaker_force_operations ... ok
[INFO] [stdout] test test_circuit_breaker_config_presets ... ok
[INFO] [stdout] test test_error_recovery_manager_error_handling ... ok
[INFO] [stdout] test test_error_recovery_manager_multiple_errors ... ok
[INFO] [stdout] test test_circuit_breaker_metrics ... ok
[INFO] [stdout] test test_suggested_actions ... ok
[INFO] [stdout] test test_token_bucket_basic_functionality ... ok
[INFO] [stdout] test test_token_bucket_config_presets ... ok
[INFO] [stdout] test test_token_bucket_enable_disable ... ok
[INFO] [stdout] test test_token_bucket_adaptive_rate ... ok
[INFO] [stdout] test test_token_bucket_metrics ... ok
[INFO] [stdout] test test_error_recovery_manager_reset ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sse_golden_tests.rs (/opt/rustwide/target/debug/deps/sse_golden_tests-64bac85cbfa38f3a)
[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/sse_md5_consistency.rs (/opt/rustwide/target/debug/deps/sse_md5_consistency-9efc6c3ad8c535d6)
[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/sse_parser_tests.rs (/opt/rustwide/target/debug/deps/sse_parser_tests-9e3b400aa917b041)
[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/sse_regression.rs (/opt/rustwide/target/debug/deps/sse_regression-00f55ebf36c93798)
[INFO] [stderr]      Running tests/streaming_comprehensive_tests.rs (/opt/rustwide/target/debug/deps/streaming_comprehensive_tests-76c87a7c9017c8ad)
[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/streaming_golden_cases.rs (/opt/rustwide/target/debug/deps/streaming_golden_cases-2dfff595b6b613c3)
[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 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/transport_tests.rs (/opt/rustwide/target/debug/deps/transport_tests-abc4c1b7d220f4d0)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test can_construct_transport_from_reqwest_client ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/usage_status_tests.rs (/opt/rustwide/target/debug/deps/usage_status_tests-686e8a5ec2460917)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_usage_status_enum ... ok
[INFO] [stdout] test test_usage_status_serialization ... ok
[INFO] [stdout] test test_chat_completion_response_with_usage_status ... ok
[INFO] [stdout] test test_usage_status_deserialization ... ok
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ai_lib
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test src/client.rs - client::AiClient::chat_completion_stream (line 853) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient::builder (line 577) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient (line 173) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient::switch_provider (line 1214) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient::new (line 248) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient::with_failover (line 281) ... FAILED
[INFO] [stdout] test src/client.rs - client::AiClient::chat_completion (line 675) ... FAILED
[INFO] [stdout] test src/client.rs - client::AiClient::list_models (line 1156) ... ok
[INFO] [stdout] test src/client.rs - client::AiClient::chat_completion_batch (line 1079) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::for_production (line 1779) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::for_development (line 1801) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::with_default_chat_model (line 1713) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder (line 1508) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::without_proxy (line 1628) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::with_default_multimodal_model (line 1735) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::with_smart_defaults (line 1757) ... ok
[INFO] [stdout] test src/lib.rs - (line 8) ... ok
[INFO] [stdout] test src/client.rs - client::AiClientBuilder::with_proxy (line 1601) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/client.rs - client::AiClient::with_failover (line 281) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (343) panicked at src/client.rs:24:39:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: AuthenticationError("OPENAI_API_KEY environment variable not set")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5fe84c9aad92 - std::backtrace_rs::backtrace::libunwind::trace::hcab59e1e990fdc24
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5fe84c9aad92 - std::backtrace_rs::backtrace::trace_unsynchronized::he24cc57f3d2f47b7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5fe84c9aad92 - std::sys::backtrace::_print_fmt::hf8d65ede198eeb54
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x5fe84c9aad92 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h67edf0e4d33c343c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x5fe84c9bc0cf - core::fmt::rt::Argument::fmt::hef94184842aeafdd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x5fe84c9bc0cf - core::fmt::write::hcf0c66b48a8fa606
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/mod.rs:1468:25
[INFO] [stdout]    6:     0x5fe84c985671 - std::io::default_write_fmt::h1ecb8c7cfa7da481
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5fe84c985671 - std::io::Write::write_fmt::h051fe4a9e4fdbf48
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x5fe84c98c5b2 - std::sys::backtrace::BacktraceLock::print::h07e5435aa717b414
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x5fe84c98eeaf - std::panicking::default_hook::{{closure}}::h91001850288db5f7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x5fe84c98ed09 - std::panicking::default_hook::h2346dbb704ef5512
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:328:9
[INFO] [stdout]   11:     0x5fe84c98f5e5 - std::panicking::panic_with_hook::hd2b063a6090d23a4
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:834:13
[INFO] [stdout]   12:     0x5fe84c98f3ca - std::panicking::panic_handler::{{closure}}::he666d95f139a333e
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:707:13
[INFO] [stdout]   13:     0x5fe84c98c6e9 - std::sys::backtrace::__rust_end_short_backtrace::h631ad224854ebee5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   14:     0x5fe84c97966d - __rustc[1d67440d6e82e4f]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:698:5
[INFO] [stdout]   15:     0x5fe84c9c4da0 - core::panicking::panic_fmt::h420ddb7fd73daf53
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:75:14
[INFO] [stdout]   16:     0x5fe84c9c4276 - core::result::unwrap_failed::hdde076be853d034f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:1855:5
[INFO] [stdout]   17:     0x5fe84c45e2af - rust_out::main::h909c389308a13d94
[INFO] [stdout]   18:     0x5fe84c45d983 - core::ops::function::FnOnce::call_once::he80aaf16098e337a
[INFO] [stdout]   19:     0x5fe84c45d926 - std::sys::backtrace::__rust_begin_short_backtrace::hd4f5856814720a68
[INFO] [stdout]   20:     0x5fe84c45d909 - std::rt::lang_start::{{closure}}::hdd522a24cafb4b4b
[INFO] [stdout]   21:     0x5fe84c986da0 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h4967fb77e0dfb65c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   22:     0x5fe84c986da0 - std::panicking::catch_unwind::do_call::hf7e87675c3e14c23
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   23:     0x5fe84c986da0 - std::panicking::catch_unwind::h26f0e342004b5114
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   24:     0x5fe84c986da0 - std::panic::catch_unwind::h9ee33ca17775d897
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   25:     0x5fe84c986da0 - std::rt::lang_start_internal::{{closure}}::h243ba3495fa13cf8
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/rt.rs:175:24
[INFO] [stdout]   26:     0x5fe84c986da0 - std::panicking::catch_unwind::do_call::h819db0a7788e7259
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x5fe84c986da0 - std::panicking::catch_unwind::h23e08fb4a7b9f405
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x5fe84c986da0 - std::panic::catch_unwind::h7ca3d9eabb6135ff
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5fe84c986da0 - std::rt::lang_start_internal::h06ad7395f4fda8d7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/rt.rs:171:5
[INFO] [stdout]   30:     0x5fe84c45d8f1 - std::rt::lang_start::h5d51bffdfd88737a
[INFO] [stdout]   31:     0x5fe84c45e655 - main
[INFO] [stdout]   32:     0x7487b2dd41ca - <unknown>
[INFO] [stdout]   33:     0x7487b2dd428b - __libc_start_main
[INFO] [stdout]   34:     0x5fe84c45d805 - _start
[INFO] [stdout]   35:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- src/client.rs - client::AiClient::chat_completion (line 675) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (350) panicked at src/client.rs:30:39:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: AuthenticationError("OPENAI_API_KEY environment variable not set")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b77fea47242 - std::backtrace_rs::backtrace::libunwind::trace::hcab59e1e990fdc24
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b77fea47242 - std::backtrace_rs::backtrace::trace_unsynchronized::he24cc57f3d2f47b7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b77fea47242 - std::sys::backtrace::_print_fmt::hf8d65ede198eeb54
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x5b77fea47242 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h67edf0e4d33c343c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x5b77fea5857f - core::fmt::rt::Argument::fmt::hef94184842aeafdd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x5b77fea5857f - core::fmt::write::hcf0c66b48a8fa606
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/mod.rs:1468:25
[INFO] [stdout]    6:     0x5b77fea21b21 - std::io::default_write_fmt::h1ecb8c7cfa7da481
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b77fea21b21 - std::io::Write::write_fmt::h051fe4a9e4fdbf48
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x5b77fea28a62 - std::sys::backtrace::BacktraceLock::print::h07e5435aa717b414
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x5b77fea2b35f - std::panicking::default_hook::{{closure}}::h91001850288db5f7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x5b77fea2b1b9 - std::panicking::default_hook::h2346dbb704ef5512
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:328:9
[INFO] [stdout]   11:     0x5b77fea2ba95 - std::panicking::panic_with_hook::hd2b063a6090d23a4
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:834:13
[INFO] [stdout]   12:     0x5b77fea2b87a - std::panicking::panic_handler::{{closure}}::he666d95f139a333e
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:707:13
[INFO] [stdout]   13:     0x5b77fea28b99 - std::sys::backtrace::__rust_end_short_backtrace::h631ad224854ebee5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   14:     0x5b77fea15b1d - __rustc[1d67440d6e82e4f]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:698:5
[INFO] [stdout]   15:     0x5b77fea61250 - core::panicking::panic_fmt::h420ddb7fd73daf53
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:75:14
[INFO] [stdout]   16:     0x5b77fea60726 - core::result::unwrap_failed::hdde076be853d034f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:1855:5
[INFO] [stdout]   17:     0x5b77fe4fa52f - rust_out::main::h909c389308a13d94
[INFO] [stdout]   18:     0x5b77fe4f9a93 - core::ops::function::FnOnce::call_once::he80aaf16098e337a
[INFO] [stdout]   19:     0x5b77fe4f9a36 - std::sys::backtrace::__rust_begin_short_backtrace::hd4f5856814720a68
[INFO] [stdout]   20:     0x5b77fe4f9a19 - std::rt::lang_start::{{closure}}::hdd522a24cafb4b4b
[INFO] [stdout]   21:     0x5b77fea23250 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h4967fb77e0dfb65c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   22:     0x5b77fea23250 - std::panicking::catch_unwind::do_call::hf7e87675c3e14c23
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   23:     0x5b77fea23250 - std::panicking::catch_unwind::h26f0e342004b5114
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   24:     0x5b77fea23250 - std::panic::catch_unwind::h9ee33ca17775d897
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   25:     0x5b77fea23250 - std::rt::lang_start_internal::{{closure}}::h243ba3495fa13cf8
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/rt.rs:175:24
[INFO] [stdout]   26:     0x5b77fea23250 - std::panicking::catch_unwind::do_call::h819db0a7788e7259
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x5b77fea23250 - std::panicking::catch_unwind::h23e08fb4a7b9f405
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x5b77fea23250 - std::panic::catch_unwind::h7ca3d9eabb6135ff
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5b77fea23250 - std::rt::lang_start_internal::h06ad7395f4fda8d7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/rt.rs:171:5
[INFO] [stdout]   30:     0x5b77fe4f9a01 - std::rt::lang_start::h5d51bffdfd88737a
[INFO] [stdout]   31:     0x5b77fe4faa35 - main
[INFO] [stdout]   32:     0x723d160141ca - <unknown>
[INFO] [stdout]   33:     0x723d1601428b - __libc_start_main
[INFO] [stdout]   34:     0x5b77fe4f9915 - _start
[INFO] [stdout]   35:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/client.rs - client::AiClient::chat_completion (line 675)
[INFO] [stdout]     src/client.rs - client::AiClient::with_failover (line 281)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 16 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.47s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "c45c6bbfb30d2f9427f58af8ea7355725203d48919b08c7c125c601a2f1df7ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c45c6bbfb30d2f9427f58af8ea7355725203d48919b08c7c125c601a2f1df7ad", kill_on_drop: false }`
[INFO] [stdout] c45c6bbfb30d2f9427f58af8ea7355725203d48919b08c7c125c601a2f1df7ad
