[INFO] cloning repository https://github.com/alexvas/inf-splitter [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexvas/inf-splitter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexvas%2Finf-splitter", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexvas%2Finf-splitter'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7767554812a4660e9e61f27d3e623c34477909b4 [INFO] testing alexvas/inf-splitter against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexvas%2Finf-splitter" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/alexvas/inf-splitter [INFO] finished tweaking git repo https://github.com/alexvas/inf-splitter [INFO] tweaked toml for git repo https://github.com/alexvas/inf-splitter written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/alexvas/inf-splitter on toolchain 1.98.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/alexvas/inf-splitter 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.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.125 [INFO] [stderr] Downloaded zip v2.4.2 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.125 [INFO] [stderr] Downloaded compression-core v0.4.32 [INFO] [stderr] Downloaded rustc-hash v2.1.2 [INFO] [stderr] Downloaded zeroize_derive v1.5.0 [INFO] [stderr] Downloaded bit-set v0.6.0 [INFO] [stderr] Downloaded filetime_creation v0.2.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.75 [INFO] [stderr] Downloaded derive_arbitrary v1.4.2 [INFO] [stderr] Downloaded time-core v0.1.9 [INFO] [stderr] Downloaded num-conv v0.2.2 [INFO] [stderr] Downloaded compression-codecs v0.4.38 [INFO] [stderr] Downloaded axum-core v0.5.6 [INFO] [stderr] Downloaded crc-catalog v2.5.0 [INFO] [stderr] Downloaded deflate64 v0.1.12 [INFO] [stderr] Downloaded lzma-rust v0.1.7 [INFO] [stderr] Downloaded cc v1.2.65 [INFO] [stderr] Downloaded time-macros v0.2.29 [INFO] [stderr] Downloaded bit-vec v0.7.0 [INFO] [stderr] Downloaded ipnet v2.12.0 [INFO] [stderr] Downloaded bzip2 v0.5.2 [INFO] [stderr] Downloaded xxhash-rust v0.8.15 [INFO] [stderr] Downloaded matchit v0.8.4 [INFO] [stderr] Downloaded rustls-pki-types v1.14.1 [INFO] [stderr] Downloaded quinn-udp v0.5.14 [INFO] [stderr] Downloaded lzma-rs v0.3.0 [INFO] [stderr] Downloaded nt-time v0.8.1 [INFO] [stderr] Downloaded bzip2 v0.6.1 [INFO] [stderr] Downloaded schannel v0.1.29 [INFO] [stderr] Downloaded uuid v1.23.3 [INFO] [stderr] Downloaded tinyvec v1.11.0 [INFO] [stderr] Downloaded libbz2-rs-sys v0.2.5 [INFO] [stderr] Downloaded zopfli v0.8.3 [INFO] [stderr] Downloaded arbitrary v1.4.2 [INFO] [stderr] Downloaded log v0.4.32 [INFO] [stderr] Downloaded wasm-bindgen v0.2.125 [INFO] [stderr] Downloaded rustls-webpki v0.103.13 [INFO] [stderr] Downloaded quinn v0.11.9 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.125 [INFO] [stderr] Downloaded bytes v1.12.0 [INFO] [stderr] Downloaded zerocopy-derive v0.8.52 [INFO] [stderr] Downloaded memchr v2.8.2 [INFO] [stderr] Downloaded async-compression v0.4.42 [INFO] [stderr] Downloaded js-sys v0.3.102 [INFO] [stderr] Downloaded http v1.4.2 [INFO] [stderr] Downloaded hyper v1.10.1 [INFO] [stderr] Downloaded anyllm_translate v0.9.9 [INFO] [stderr] Downloaded axum v0.8.9 [INFO] [stderr] Downloaded tracing-subscriber v0.3.23 [INFO] [stderr] Downloaded quinn-proto v0.11.14 [INFO] [stderr] Downloaded time v0.3.49 [INFO] [stderr] Downloaded chrono v0.4.45 [INFO] [stderr] Downloaded zerocopy v0.8.52 [INFO] [stderr] Downloaded regex-syntax v0.8.11 [INFO] [stderr] Downloaded rustls v0.23.40 [INFO] [stderr] Downloaded sevenz-rust v0.6.1 [INFO] [stderr] Downloaded web-sys v0.3.102 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca [INFO] running `Command { std: "docker" "start" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", 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" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", 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" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "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 cfg-if v1.0.4 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling bytes v1.12.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling log v0.4.32 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling brotli-decompressor v5.0.0 [INFO] [stderr] Compiling rustls v0.23.40 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling time-macros v0.2.29 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling crc-catalog v2.5.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling compression-core v0.4.32 [INFO] [stderr] Compiling brotli v8.0.2 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling cc v1.2.65 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling filetime v0.2.29 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling zip v2.4.2 [INFO] [stderr] Compiling bit-vec v0.7.0 [INFO] [stderr] Compiling bumpalo v3.20.3 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling time v0.3.49 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling bit-set v0.6.0 [INFO] [stderr] Compiling pbkdf2 v0.12.2 [INFO] [stderr] Compiling filetime_creation v0.2.0 [INFO] [stderr] Compiling zopfli v0.8.3 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling uuid v1.23.3 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling nt-time v0.8.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling lzma-rs v0.3.0 [INFO] [stderr] Compiling lzma-rust v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling deflate64 v0.1.12 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling bzip2-sys v0.1.13+1.0.8 [INFO] [stderr] Compiling lzma-sys v0.1.20 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling libbz2-rs-sys v0.2.5 [INFO] [stderr] Compiling xxhash-rust v0.8.15 [INFO] [stderr] Compiling bzip2 v0.5.2 [INFO] [stderr] Compiling xz2 v0.1.7 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling sevenz-rust v0.6.1 [INFO] [stderr] Compiling bzip2 v0.6.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.6 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling zeroize_derive v1.5.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling inf-splitter v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling rustls-native-certs v0.8.4 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling anyllm_translate v0.9.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling axum v0.8.9 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling compression-codecs v0.4.38 [INFO] [stderr] Compiling async-compression v0.4.42 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Finished `release` profile [optimized] target(s) in 4m 10s [INFO] running `Command { std: "docker" "inspect" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", 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" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling inf-splitter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `post_openai_with_session` is never used [INFO] [stdout] --> tests/e2e.rs:441:10 [INFO] [stdout] | [INFO] [stdout] 441 | async fn post_openai_with_session( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_upstream_capture_all` is never used [INFO] [stdout] --> tests/common/mod.rs:99:14 [INFO] [stdout] | [INFO] [stdout] 99 | pub async fn spawn_upstream_capture_all( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_router_with_dump` is never used [INFO] [stdout] --> tests/common/mod.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | pub async fn spawn_router_with_dump(config_toml: &str) -> SocketAddr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_router_with_diagnostics` is never used [INFO] [stdout] --> tests/common/mod.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn spawn_router_with_diagnostics( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_error_upstream` is never used [INFO] [stdout] --> tests/common/mod.rs:166:14 [INFO] [stdout] | [INFO] [stdout] 166 | pub async fn spawn_error_upstream( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_delayed_upstream` is never used [INFO] [stdout] --> tests/common/mod.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | pub async fn spawn_delayed_upstream( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poll_diagnostics_file` is never used [INFO] [stdout] --> tests/common/mod.rs:225:14 [INFO] [stdout] | [INFO] [stdout] 225 | pub async fn poll_diagnostics_file( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_file` is never used [INFO] [stdout] --> tests/common/mod.rs:255:14 [INFO] [stdout] | [INFO] [stdout] 255 | pub async fn wait_for_file(path: &std::path::Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file_no_remove` is never used [INFO] [stdout] --> tests/common/mod.rs:266:14 [INFO] [stdout] | [INFO] [stdout] 266 | pub async fn read_file_no_remove(path: &std::path::Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_ingress_dump` is never used [INFO] [stdout] --> tests/common/mod.rs:289:14 [INFO] [stdout] | [INFO] [stdout] 289 | pub async fn wait_for_ingress_dump(path: &std::path::Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_egress_dump` is never used [INFO] [stdout] --> tests/common/mod.rs:295:14 [INFO] [stdout] | [INFO] [stdout] 295 | pub async fn wait_for_egress_dump(path: &std::path::Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_egress_response_dump` is never used [INFO] [stdout] --> tests/common/mod.rs:302:14 [INFO] [stdout] | [INFO] [stdout] 302 | pub async fn wait_for_egress_response_dump(path: &std::path::Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_stage` is never used [INFO] [stdout] --> tests/common/mod.rs:306:10 [INFO] [stdout] | [INFO] [stdout] 306 | async fn wait_for_stage( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_sse_upstream_with_headers` is never used [INFO] [stdout] --> tests/common/mod.rs:336:14 [INFO] [stdout] | [INFO] [stdout] 336 | pub async fn spawn_sse_upstream_with_headers( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> tests/e2e.rs:719:5 [INFO] [stdout] | [INFO] [stdout] 719 | drop(proxy_addr1); [INFO] [stdout] | ^^^^^-----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `std::net::SocketAddr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 719 - drop(proxy_addr1); [INFO] [stdout] 719 + let _ = proxy_addr1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_upstream_capture_all` is never used [INFO] [stdout] --> tests/common/mod.rs:99:14 [INFO] [stdout] | [INFO] [stdout] 99 | pub async fn spawn_upstream_capture_all( [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 variable: `base` [INFO] [stdout] --> src/interactions_handler.rs:5774:13 [INFO] [stdout] | [INFO] [stdout] 5774 | let base = format!("http://{addr}/v1/interactions"); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_base` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Captures` is never constructed [INFO] [stdout] --> src/interactions_handler.rs:5257:16 [INFO] [stdout] | [INFO] [stdout] 5257 | struct Captures(Vec); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 56s [INFO] running `Command { std: "docker" "inspect" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", 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" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `base` [INFO] [stderr] --> src/interactions_handler.rs:5774:13 [INFO] [stderr] | [INFO] [stderr] 5774 | let base = format!("http://{addr}/v1/interactions"); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_base` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Captures` is never constructed [INFO] [stderr] --> src/interactions_handler.rs:5257:16 [INFO] [stderr] | [INFO] [stderr] 5257 | struct Captures(Vec); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `inf-splitter` (lib test) generated 2 warnings (run `cargo fix --lib -p inf-splitter --tests` to apply 1 suggestion) [INFO] [stderr] warning: function `post_openai_with_session` is never used [INFO] [stderr] --> tests/e2e.rs:441:10 [INFO] [stderr] | [INFO] [stderr] 441 | async fn post_openai_with_session( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `spawn_upstream_capture_all` is never used [INFO] [stderr] --> tests/common/mod.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | pub async fn spawn_upstream_capture_all( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `spawn_router_with_dump` is never used [INFO] [stderr] --> tests/common/mod.rs:135:14 [INFO] [stderr] | [INFO] [stderr] 135 | pub async fn spawn_router_with_dump(config_toml: &str) -> SocketAddr { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `spawn_router_with_diagnostics` is never used [INFO] [stderr] --> tests/common/mod.rs:151:14 [INFO] [stderr] | [INFO] [stderr] 151 | pub async fn spawn_router_with_diagnostics( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `spawn_error_upstream` is never used [INFO] [stderr] --> tests/common/mod.rs:166:14 [INFO] [stderr] | [INFO] [stderr] 166 | pub async fn spawn_error_upstream( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `spawn_delayed_upstream` is never used [INFO] [stderr] --> tests/common/mod.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | pub async fn spawn_delayed_upstream( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `poll_diagnostics_file` is never used [INFO] [stderr] --> tests/common/mod.rs:225:14 [INFO] [stderr] | [INFO] [stderr] 225 | pub async fn poll_diagnostics_file( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_file` is never used [INFO] [stderr] --> tests/common/mod.rs:255:14 [INFO] [stderr] | [INFO] [stderr] 255 | pub async fn wait_for_file(path: &std::path::Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_file_no_remove` is never used [INFO] [stderr] --> tests/common/mod.rs:266:14 [INFO] [stderr] | [INFO] [stderr] 266 | pub async fn read_file_no_remove(path: &std::path::Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_ingress_dump` is never used [INFO] [stderr] --> tests/common/mod.rs:289:14 [INFO] [stderr] | [INFO] [stderr] 289 | pub async fn wait_for_ingress_dump(path: &std::path::Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_egress_dump` is never used [INFO] [stderr] --> tests/common/mod.rs:295:14 [INFO] [stderr] | [INFO] [stderr] 295 | pub async fn wait_for_egress_dump(path: &std::path::Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_egress_response_dump` is never used [INFO] [stderr] --> tests/common/mod.rs:302:14 [INFO] [stderr] | [INFO] [stderr] 302 | pub async fn wait_for_egress_response_dump(path: &std::path::Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_stage` is never used [INFO] [stderr] --> tests/common/mod.rs:306:10 [INFO] [stderr] | [INFO] [stderr] 306 | async fn wait_for_stage( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `spawn_sse_upstream_with_headers` is never used [INFO] [stderr] --> tests/common/mod.rs:336:14 [INFO] [stderr] | [INFO] [stderr] 336 | pub async fn spawn_sse_upstream_with_headers( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stderr] --> tests/e2e.rs:719:5 [INFO] [stderr] | [INFO] [stderr] 719 | drop(proxy_addr1); [INFO] [stderr] | ^^^^^-----------^ [INFO] [stderr] | | [INFO] [stderr] | argument has type `std::net::SocketAddr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the expression or result [INFO] [stderr] | [INFO] [stderr] 719 - drop(proxy_addr1); [INFO] [stderr] 719 + let _ = proxy_addr1; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function `spawn_upstream_capture_all` is never used [INFO] [stderr] --> tests/common/mod.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | pub async fn spawn_upstream_capture_all( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `inf-splitter` (test "e2e") generated 15 warnings [INFO] [stderr] warning: `inf-splitter` (test "protocol_conversion") generated 1 warning [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.44s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/inf_splitter-de5d07650cacadf8) [INFO] [stdout] [INFO] [stdout] running 364 tests [INFO] [stdout] test anthropic::tests::copy_response_headers_filters_to_whitelist ... ok [INFO] [stdout] test anthropic::tests::copy_response_headers_maps_x_claude_code_session_id_to_x_request_id ... ok [INFO] [stdout] test auth::tests::anthropic_maps_x_request_id_to_x_claude_code_session_id ... ok [INFO] [stdout] test auth::tests::anthropic_x_claude_code_session_id_priority_over_x_request_id ... ok [INFO] [stdout] test auth::tests::forward_request_headers_map_with_api_key ... ok [INFO] [stdout] test auth::tests::is_auth_header_detects_variants ... ok [INFO] [stdout] test auth::tests::forward_request_headers_map_without_api_key ... ok [INFO] [stdout] test config::tests::cap_numeric_field_leaves_below_unchanged ... ok [INFO] [stdout] test config::tests::cap_numeric_field_leaves_equal_unchanged ... ok [INFO] [stdout] test config::tests::cap_numeric_field_sets_missing ... ok [INFO] [stdout] test config::tests::drop_fields_flat_list_parses ... ok [INFO] [stdout] test config::tests::drop_fields_for_model_all_only_no_match ... ok [INFO] [stdout] test config::tests::drop_fields_for_model_flat ... ok [INFO] [stdout] test config::tests::drop_fields_for_model_merges_all_and_specific ... ok [INFO] [stdout] test auth::tests::anthropic_passthrough_x_claude_code_session_id ... ok [INFO] [stdout] test config::tests::drop_fields_per_model_all_only ... ok [INFO] [stdout] test config::tests::drop_fields_all_key_is_valid_when_no_models_match ... ok [INFO] [stdout] test config::tests::endpoint_interactions_parses ... ok [INFO] [stdout] test config::tests::drop_fields_empty_list_is_noop ... ok [INFO] [stdout] test config::tests::endpoint_interactions_with_proxy_and_limits ... ok [INFO] [stdout] test config::tests::error_translation_empty_list_is_noop ... ok [INFO] [stdout] test config::tests::error_translation_multiple_rules_parses_in_order ... ok [INFO] [stdout] test config::tests::error_translation_absent_is_empty ... ok [INFO] [stdout] test config::tests::error_translation_status_only_parses ... ok [INFO] [stdout] test config::tests::error_translation_status_with_ingress_parses ... ok [INFO] [stdout] test config::tests::listen_config_overrides_env ... ok [INFO] [stdout] test config::tests::global_defaults_merge_with_per_provider_overrides ... ok [INFO] [stdout] test config::tests::listen_defaults_to_localhost ... ok [INFO] [stdout] test auth::tests::anthropic_maps_x_client_request_id_to_x_claude_code_session_id ... ok [INFO] [stdout] test auth::tests::openai_maps_x_request_id_to_x_client_request_id ... ok [INFO] [stdout] test config::tests::load_config_rejects_invalid_timeout ... ok [INFO] [stdout] test config::tests::drop_fields_per_model_parses ... ok [INFO] [stdout] test config::tests::load_config_rejects_no_endpoint ... ok [INFO] [stdout] test auth::tests::should_forward_excludes_hop_by_hop ... ok [INFO] [stdout] test config::tests::drop_fields_absent_defaults_to_empty_all ... ok [INFO] [stdout] test config::tests::listen_via_config ... ok [INFO] [stdout] test config::tests::cap_numeric_field_clamps_exceeding ... ok [INFO] [stdout] test config::tests::parse_byte_size_accepts_g_suffix ... ok [INFO] [stdout] test config::tests::parse_byte_size_rejects_invalid_values ... ok [INFO] [stdout] test config::tests::interactions_session_store_custom ... ok [INFO] [stdout] test config::tests::parse_duration_accepts_s_and_m_suffixes ... ok [INFO] [stdout] test config::tests::load_project_config_and_resolve_routes ... ok [INFO] [stdout] test config::tests::rejects_drop_fields_unknown_model ... ok [INFO] [stdout] test config::tests::listen_via_env ... ok [INFO] [stdout] test auth::tests::openai_x_client_request_id_passthrough ... ok [INFO] [stdout] test auth::tests::openai_maps_x_claude_code_session_id_to_x_client_request_id ... ok [INFO] [stdout] test config::tests::load_config_with_timeout_and_limits ... ok [INFO] [stdout] test config::tests::interactions_session_store_default_none ... ok [INFO] [stdout] test config::tests::load_config_allows_both_endpoints ... ok [INFO] [stdout] test config::tests::parse_byte_size_accepts_k_and_m_suffixes ... ok [INFO] [stdout] test config::tests::rejects_whitespace_model_name_in_list ... ok [INFO] [stdout] test config::tests::resolve_secret_from_env ... ok [INFO] [stdout] test config::tests::parse_duration_rejects_invalid_values ... ok [INFO] [stdout] test config::tests::rejects_empty_model_name_in_list ... ok [INFO] [stdout] test config::tests::resolve_secret_literal ... ok [INFO] [stdout] test config::tests::rejects_error_translation_missing_egress ... ok [INFO] [stdout] test config::tests::rejects_error_translation_missing_status ... ok [INFO] [stdout] test control::tests::extract_timestamp_no_match ... ok [INFO] [stdout] test control::tests::scan_control_without_constants_configured_is_noop ... ok [INFO] [stdout] test control::tests::extract_timestamp_at_end_of_message ... ok [INFO] [stdout] test control::tests::extract_timestamp_from_constant ... ok [INFO] [stdout] test control::tests::scan_detects_clean_all_double ... ok [INFO] [stdout] test config::tests::rejects_unknown_key_in_defaults_section ... ok [INFO] [stdout] test control::tests::scan_detects_extend_lifetime_double ... ok [INFO] [stdout] test control::tests::scan_idempotent_skips_repeated_control ... ok [INFO] [stdout] test control::tests::scan_no_control_messages_passes_through ... ok [INFO] [stdout] test control::tests::scan_single_clean_all_is_noop ... ok [INFO] [stdout] test control::tests::scan_single_extend_lifetime_is_noop ... ok [INFO] [stdout] test diagnostics::tests::abort_finalizes_guard_and_returns_app_error ... ok [INFO] [stdout] test diagnostics::tests::abort_is_idempotent ... ok [INFO] [stdout] test diagnostics::tests::anthropic_messages_detail_image_and_tool_use ... ok [INFO] [stdout] test diagnostics::tests::anthropic_messages_detail_text_only ... ok [INFO] [stdout] test diagnostics::tests::civil_from_days_epoch ... ok [INFO] [stdout] test diagnostics::tests::diagnostic_mode_default_is_off ... ok [INFO] [stdout] test diagnostics::tests::dump_body_from_bytes_non_utf8_base64 ... ok [INFO] [stdout] test diagnostics::tests::dump_body_from_bytes_utf8 ... ok [INFO] [stdout] test diagnostics::tests::dump_event_base64_still_has_encoding_field ... ok [INFO] [stdout] test diagnostics::tests::dump_event_serializes_cleanly ... ok [INFO] [stdout] test diagnostics::tests::dump_event_utf8_plain_text_remains_string ... ok [INFO] [stdout] test diagnostics::tests::dump_event_utf8_valid_json_embedded_as_json ... ok [INFO] [stdout] test diagnostics::tests::finish_with_upstream_error_dumps_response_and_finishes ... ok [INFO] [stdout] test diagnostics::tests::finish_with_upstream_error_is_idempotent ... ok [INFO] [stdout] test diagnostics::tests::header_pairs_with_masking_masks_sensitive_values ... ok [INFO] [stdout] test diagnostics::tests::dump_event_with_encoding_serializes ... ok [INFO] [stdout] test diagnostics::tests::dump_event_utf8_empty_remains_string ... ok [INFO] [stdout] test diagnostics::tests::dump_event_without_encoding_skips_field ... ok [INFO] [stdout] test diagnostics::tests::is_sensitive_header_detects_x_goog_api_key ... ok [INFO] [stdout] test diagnostics::tests::is_sensitive_header_rejects_non_sensitive ... ok [INFO] [stdout] test diagnostics::tests::mask_header_values_masks_sensitive_in_vec ... ok [INFO] [stdout] test diagnostics::tests::is_sensitive_header_detects_x_api_key ... ok [INFO] [stdout] test diagnostics::tests::messages_detail_from_bytes_missing_field ... ok [INFO] [stdout] test diagnostics::tests::messages_detail_from_bytes_anthropic_shape ... ok [INFO] [stdout] test diagnostics::tests::messages_detail_from_bytes_non_utf8 ... ok [INFO] [stdout] test diagnostics::tests::header_pairs_with_masking_preserves_non_sensitive ... ok [INFO] [stdout] test diagnostics::tests::openai_messages_detail_with_tool_calls ... ok [INFO] [stdout] test diagnostics::tests::dump_body_from_bytes_truncates_large_non_utf8 ... ok [INFO] [stdout] test diagnostics::tests::is_sensitive_header_detects_authorization ... ok [INFO] [stdout] test diagnostics::tests::request_diagnostics_finish_is_idempotent ... ok [INFO] [stdout] test diagnostics::tests::request_diagnostics_detail_setters_populate_fields ... ok [INFO] [stdout] test diagnostics::tests::request_id_is_unique_and_monotonic ... ok [INFO] [stdout] test diagnostics::tests::stats_event_serializes_cleanly ... ok [INFO] [stdout] test interactions::tests::build_anthropic_request_with_tools ... ok [INFO] [stdout] test interactions::tests::build_anthropic_first_includes_all_fields ... ok [INFO] [stdout] test interactions::tests::build_anthropic_followup_omits_first_only_fields ... ok [INFO] [stdout] test interactions::tests::build_anthropic_request_basic ... ok [INFO] [stdout] test diagnostics::tests::request_diagnostics_drop_records_safety_net_stats ... ok [INFO] [stdout] test interactions::tests::build_chunk_request_preserves_prev_id ... ok [INFO] [stdout] test interactions::tests::build_chunk_request_stream_false ... ok [INFO] [stdout] test interactions::tests::build_openai_request_basic ... ok [INFO] [stdout] test interactions::tests::build_anthropic_with_previous_id ... ok [INFO] [stdout] test interactions::tests::build_openai_request_with_tools ... ok [INFO] [stdout] test interactions::tests::build_chunk_request_stream_true ... ok [INFO] [stdout] test diagnostics::tests::openai_messages_detail_text_only ... ok [INFO] [stdout] test diagnostics::tests::messages_detail_from_bytes_openai_shape ... ok [INFO] [stdout] test interactions::tests::build_request_no_tools_field_when_none ... ok [INFO] [stdout] test interactions::tests::build_openai_with_system_message ... ok [INFO] [stdout] test interactions::tests::build_response_without_tool_calls_is_end_turn ... ok [INFO] [stdout] test interactions::tests::control_stripped_before_hashing ... ok [INFO] [stdout] test interactions::tests::extract_anthropic_content_mixed_text_and_tool_result ... ok [INFO] [stdout] test interactions::tests::extract_anthropic_content_tool_result_array ... ok [INFO] [stdout] test interactions::tests::extract_anthropic_content_tool_result_string ... ok [INFO] [stdout] test interactions::tests::extract_anthropic_tools_none_when_no_tools ... ok [INFO] [stdout] test interactions::tests::extract_openai_system_handles_array_content ... ok [INFO] [stdout] test interactions::tests::extract_anthropic_tools_basic ... ok [INFO] [stdout] test interactions::tests::extract_openai_system_in_non_first_position ... ok [INFO] [stdout] test interactions::tests::extract_openai_system_no_system_message_returns_none ... ok [INFO] [stdout] test interactions::tests::build_response_function_call_openai ... ok [INFO] [stdout] test interactions::tests::extract_openai_tools_basic ... ok [INFO] [stdout] test interactions::tests::hash_harness_message_different_content_different_hash ... ok [INFO] [stdout] test interactions::tests::build_response_with_function_call_anthropic ... ok [INFO] [stdout] test interactions::tests::hash_harness_message_includes_all_fields ... ok [INFO] [stdout] test interactions::tests::max_tokens_client_lower_than_route_client_wins ... ok [INFO] [stdout] test interactions::tests::hash_harness_message_is_deterministic ... ok [INFO] [stdout] test interactions::tests::max_tokens_no_client_limit_route_used ... ok [INFO] [stdout] test interactions::tests::extract_openai_tools_none_when_no_tools ... ok [INFO] [stdout] test interactions::tests::extract_text_from_interaction ... ok [INFO] [stdout] test interactions::tests::max_tokens_no_route_limit_client_used ... ok [INFO] [stdout] test interactions::tests::extract_tool_calls_empty_for_completed ... ok [INFO] [stdout] test interactions::tests::extract_tool_calls_from_interaction ... ok [INFO] [stdout] test interactions::tests::filter_harness_messages_anthropic_keeps_user_only ... ok [INFO] [stdout] test interactions::tests::filter_harness_messages_openai_keeps_harness_roles ... ok [INFO] [stdout] test interactions::tests::max_tokens_route_lower_than_client_route_caps ... ok [INFO] [stdout] test interactions::tests::pack_chunk_body_includes_previous_interaction_id_overhead ... ok [INFO] [stdout] test interactions::tests::pack_all_items_fit_in_one_chunk ... ok [INFO] [stdout] test interactions::tests::pack_chunk_size_accounts_for_all_fields ... ok [INFO] [stdout] test interactions::tests::pack_greedy_each_chunk_maximally_full ... ok [INFO] [stdout] test interactions::tests::pack_greedy_splits_at_limit ... ok [INFO] [stdout] test interactions::tests::pack_single_item_too_large_rejected ... ok [INFO] [stdout] test interactions::tests::split_content_empty ... ok [INFO] [stdout] test interactions::tests::split_content_single_chunk ... ok [INFO] [stdout] test interactions::tests::system_instruction_first_chunk_carries_tools_and_gen_config ... ok [INFO] [stdout] test interactions::tests::system_instruction_hash_produces_same_hash_for_same_input ... ok [INFO] [stdout] test interactions::tests::serialized_content_size_positive ... ok [INFO] [stdout] test interactions::tests::system_instruction_split_parts_fit_under_limit ... ok [INFO] [stdout] test interactions_handler::tests::all_chunks_under_limit ... ok [INFO] [stdout] test interactions::tests::token_count_within_range_passes_through ... ok [INFO] [stdout] test interactions::tests::token_count_saturating_conversion_above_u32_max ... ok [INFO] [stdout] test interactions_handler::tests::buffered_no_content_pieces_with_id_substitution ... ok [INFO] [stdout] test interactions_handler::tests::buffered_single_piece_no_substitution_passes_through ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_empty_id_reaches_list_endpoint ... ok [INFO] [stdout] test interactions_handler::tests::buffered_two_pieces_anthropic_content_merged ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_no_query_params_unchanged ... ok [INFO] [stdout] test interactions_handler::tests::buffered_tool_call_openai ... ok [INFO] [stdout] test interactions_handler::tests::buffered_two_pieces_openai_content_merged ... ok [INFO] [stdout] test interactions::tests::system_instruction_hash_uses_serde_json_serialization ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_preserves_multiple_query_params ... ok [INFO] [stdout] test interactions_handler::tests::buffered_overflow_does_not_crash_on_substitute_and_translate ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_preserves_bare_qmark_param ... ok [INFO] [stdout] test interactions_handler::tests::buffered_tool_call_across_pieces ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_preserves_existing_query_params ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_preserves_query_params_for_lifecycle_operations ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_strips_empty_qmark ... ok [INFO] [stdout] test interactions_handler::tests::build_interaction_url_strips_trailing_slash ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_does_not_set_x_client_request_id_for_gemini ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_map_without_api_key ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_client_api_revision_overwrites_fixed ... ok [INFO] [stdout] test interactions_handler::tests::build_split_plans_is_stream_agnostic ... ok [INFO] [stdout] test interactions_handler::tests::buffered_three_pieces_ordered_output ... ok [INFO] [stdout] test interactions_handler::tests::can_split_all_splittable_ok ... ok [INFO] [stdout] test interactions_handler::tests::can_split_single_content_too_large ... ok [INFO] [stdout] test interactions_handler::tests::can_split_overhead_alone_exceeds_limit ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_map_with_api_key ... ok [INFO] [stdout] test interactions_handler::tests::can_split_system_instruction_unsplittable_word ... ok [INFO] [stdout] test interactions_handler::tests::clamp_max_tokens_above_u32_max_clamps ... ok [INFO] [stdout] test interactions_handler::tests::clamp_max_tokens_within_range ... ok [INFO] [stdout] test interactions_handler::tests::single_element_above_limit ... ok [INFO] [stdout] test interactions_handler::tests::single_element_under_limit ... ok [INFO] [stdout] test interactions_handler::tests::split_content_greedy_packing ... ok [INFO] [stdout] test interactions_handler::tests::split_content_preserves_order ... ok [INFO] [stdout] test interactions_handler::tests::split_piece_plan_no_content_chunks_only_sys ... ok [INFO] [stdout] test interactions_handler::tests::split_piece_plan_only_first_has_tools_config ... ok [INFO] [stdout] test interactions_handler::tests::split_piece_plan_ordering_sys_first_then_content ... ok [INFO] [stdout] test interactions_handler::tests::split_piece_plan_single_sys_with_content ... ok [INFO] [stdout] test interactions_handler::tests::can_split_reports_per_tool_breakdown_from_dump ... ok [INFO] [stdout] test interactions_handler::tests::split_send_first_chunk_gets_tools_and_gen_config ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_forwards_client_auth_when_no_key ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_forwards_non_auth_headers ... ok [INFO] [stdout] test interactions_handler::tests::resolve_session_id_uses_x_claude_code_session_id_when_x_request_id_absent ... ok [INFO] [stdout] test interactions_handler::tests::resolve_session_id_prefers_x_claude_code_session_id_over_x_request_id ... ok [INFO] [stdout] test auth::tests::forward_request_headers_forwards_incoming_auth_when_no_override ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_sets_x_goog_api_key ... ok [INFO] [stdout] test interactions_handler::tests::build_interactions_headers_strips_client_auth_when_key_set ... ok [INFO] [stdout] test interactions_handler::tests::split_text_at_dot_space ... ok [INFO] [stdout] test interactions_handler::tests::split_text_at_double_newline ... ok [INFO] [stdout] test interactions_handler::tests::split_text_comma_delimiter ... ok [INFO] [stderr] {"section":"test","request_id":"1788425230-0","ts":"2026-09-03T08:47:10Z","direction":"request","model":"test-model","upstream":"test-upstream","status":502,"duration_ms":12,"request_size_bytes":2,"response_size_bytes":40,"streaming":false,"error":"{\"error\":{\"message\":\"upstream failure\"}}"} [INFO] [stdout] test interactions_handler::tests::resolve_session_id_uses_random_uuid_as_last_resort ... ok [INFO] [stdout] test interactions_handler::tests::split_text_empty ... ok [INFO] [stdout] test interactions_handler::tests::split_text_exact_limit_single_chunk ... ok [INFO] [stdout] test interactions_handler::tests::split_text_exclamation_delimiter ... ok [INFO] [stdout] test interactions_handler::tests::split_text_greedy_fill ... ok [INFO] [stdout] test interactions_handler::tests::split_text_at_single_newline ... ok [INFO] [stdout] test interactions_handler::tests::split_send_completes_after_client_disconnect ... ok [INFO] [stdout] test interactions_handler::tests::resolve_session_id_prefers_x_client_request_id_over_all ... ok [INFO] [stdout] test interactions_handler::tests::split_system_instruction_non_streaming_cancels_acked_on_failure ... ok [INFO] [stdout] test auth::tests::forward_request_headers_excludes_x_request_id ... ok [INFO] [stdout] test interactions_handler::tests::cancel_interaction_tolerates_404 ... ok [INFO] [stdout] test interactions_handler::tests::resolve_session_id_falls_back_to_body_request_id_when_no_headers ... ok [INFO] [stdout] test interactions_handler::tests::split_text_last_delimiter_space ... ok [INFO] [stdout] test auth::tests::forward_request_headers_applies_auth_override ... ok [INFO] [stdout] test interactions_handler::tests::split_text_parts_fit_in_envelope_under_proxy_limit ... ok [INFO] [stdout] test interactions_handler::tests::split_text_narrow_limit_forces_word_splitting ... ok [INFO] [stdout] test interactions_handler::tests::split_text_question_delimiter ... ok [INFO] [stdout] test interactions_handler::tests::split_text_rejects_oversized_contiguous_segment ... ok [INFO] [stdout] test interactions_handler::tests::split_text_single_paragraph_fits ... ok [INFO] [stdout] test interactions_handler::tests::split_text_under_limit_single_chunk ... ok [INFO] [stdout] test interactions_handler::tests::translate_buffered_sse_invalid_utf8 ... ok [INFO] [stdout] test interactions_handler::tests::split_text_unsplittable_error ... ok [INFO] [stdout] test interactions_handler::tests::translate_arguments_delta_produces_input_json_delta ... ok [INFO] [stdout] test interactions_handler::tests::translate_error_event_produces_error ... ok [INFO] [stdout] test interactions_handler::tests::translate_buffered_sse_openai_single_step ... ok [INFO] [stdout] test interactions_handler::tests::translate_full_dump_sequence ... ok [INFO] [stdout] test interactions_handler::tests::translate_returns_none_for_malformed_json ... ok [INFO] [stdout] test interactions_handler::tests::translate_interaction_created_produces_message_start_only ... ok [INFO] [stdout] test interactions_handler::tests::translate_returns_none_for_unknown_event_type ... ok [INFO] [stdout] test interactions_handler::tests::split_text_multi_level_delimiters ... ok [INFO] [stdout] test interactions_handler::tests::translate_interaction_completed_produces_stop_events ... ok [INFO] [stdout] test interactions_handler::tests::translate_multiple_deltas_accumulate ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_delta_signature_produces_block_delta ... ok [INFO] [stdout] test interactions_handler::tests::split_text_multiple_paragraphs_large_limit ... ok [INFO] [stdout] test interactions_handler::tests::translate_buffered_sse_empty_input ... ok [INFO] [stdout] test interactions_handler::tests::split_text_semicolon_delimiter ... ok [INFO] [stdout] test interactions_handler::tests::translate_buffered_sse_anthropic_single_step ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_stop_produces_block_stop ... ok [INFO] [stdout] test interactions_types::tests::content_serialization_has_correct_type_field ... ok [INFO] [stdout] test interactions_types::tests::sse_event_serialization_has_correct_event_type_field ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_delta_text_produces_block_delta ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_start_function_call_produces_tool_use_block ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_start_model_output_produces_text_block ... ok [INFO] [stdout] test interactions_handler::tests::translate_step_start_thought_produces_text_block ... ok [INFO] [stdout] test interactions_types::tests::deserialize_create_model_interaction_params_basic ... ok [INFO] [stdout] test openai::tests::cap_anthropic_max_tokens_clamps_exceeding ... ok [INFO] [stdout] test interactions_types::tests::deserialize_create_model_interaction_params_with_generation_config ... ok [INFO] [stdout] test openai::tests::cap_anthropic_max_tokens_leaves_below_unchanged ... ok [INFO] [stdout] test interactions_types::tests::deserialize_generation_config ... ok [INFO] [stdout] test openai::tests::cap_anthropic_max_tokens_no_limit_unchanged ... ok [INFO] [stdout] test interactions_types::tests::deserialize_interaction_created_incomplete ... ok [INFO] [stdout] test openai::tests::relay_response_headers_maps_x_request_id_to_x_claude_code_session_id ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_does_not_remove_unrelated_extra_fields ... ok [INFO] [stdout] test interactions_types::tests::deserialize_interaction_response ... ok [INFO] [stdout] test interactions_types::tests::deserialize_usage ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_is_idempotent ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_nulls_max_tokens_when_completion_tokens_present ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_preserves_max_tokens_when_completion_tokens_absent ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_removes_context_management_from_extra ... ok [INFO] [stdout] test openai::tests::sanitize_openai_egress_removes_output_config_from_extra ... ok [INFO] [stdout] test openai::tests::strip_adaptive_thinking_passes_through_other ... ok [INFO] [stdout] test openai::tests::strip_adaptive_thinking_removes_field ... ok [INFO] [stdout] test relay::tests::cap_openai_max_completion_tokens_sets_missing ... ok [INFO] [stdout] test relay::tests::cap_openai_max_output_tokens_clamps_exceeding ... ok [INFO] [stdout] test relay::tests::cap_openai_max_output_tokens_sets_missing_via_extra ... ok [INFO] [stdout] test relay::tests::cap_openai_max_tokens_clamps_exceeding ... ok [INFO] [stdout] test relay::tests::cap_openai_max_tokens_leaves_below ... ok [INFO] [stdout] test relay::tests::cap_openai_max_tokens_sets_missing ... ok [INFO] [stdout] test interactions_handler::tests::openai_concurrent_split_send_creates_duplicate_batch ... ok [INFO] [stdout] test relay::tests::cap_openai_no_limits_leaves_unchanged ... ok [INFO] [stdout] test router::tests::models_response_has_anthropic_shape ... ok [INFO] [stdout] test router::tests::models_response_order_is_lexicographic_and_stable ... ok [INFO] [stdout] test session::tests::clean_all_clears_v2_stores ... ok [INFO] [stdout] test session::tests::concurrent_identical_splits_converge_on_single_batch ... ok [INFO] [stdout] test session::tests::fail_batch_cleans_upstream_to_clients_index ... ok [INFO] [stdout] test session::tests::find_frontier_skips_chain_on_wrong_system_instruction_hash ... ok [INFO] [stdout] test session::tests::extend_lifetime_updates_v2_session_and_client_node ... ok [INFO] [stdout] test session::tests::find_matching_batch_openai_sys_hash_mismatch ... ok [INFO] [stdout] test session::tests::frontier_all_known_single_upstream ... ok [INFO] [stdout] test session::tests::frontier_all_known_stateless_non_root ... ok [INFO] [stdout] test session::tests::frontier_all_known_with_multiple_upstream_ids ... ok [INFO] [stdout] test session::tests::frontier_equal_tie_break_deterministic ... ok [INFO] [stdout] test session::tests::frontier_forks_on_system_instruction_hash_mismatch ... ok [INFO] [stdout] test session::tests::frontier_inside_client_node_forks_at_parent ... ok [INFO] [stdout] test session::tests::frontier_inside_multi_node_chain_forks_at_parent ... ok [INFO] [stdout] test session::tests::frontier_isolated_later_hash_does_not_move_frontier ... ok [INFO] [stdout] test session::tests::frontier_known_prefix_at_client_boundary ... ok [INFO] [stdout] test session::tests::inflight_complete_batch_inserts_nodes ... ok [INFO] [stdout] test session::tests::inflight_complete_batch_propagates_system_instruction_hash ... ok [INFO] [stdout] test session::tests::inflight_fail_batch_no_client_node ... ok [INFO] [stdout] test session::tests::inflight_piece_pending_to_acked_transitions ... ok [INFO] [stdout] test session::tests::frontier_rejects_collision_by_chain_order ... ok [INFO] [stdout] test session::tests::inflight_find_matching_batch ... ok [INFO] [stdout] test session::tests::inflight_single_piece_batch ... ok [INFO] [stdout] test session::tests::interaction_store_hash_index_supports_duplicates ... ok [INFO] [stdout] test session::tests::interaction_store_insert_and_lookup_client ... ok [INFO] [stdout] test session::tests::interaction_store_walk_client_chain ... ok [INFO] [stdout] test session::tests::interaction_store_insert_and_lookup_upstream ... ok [INFO] [stdout] test session::tests::next_in_chain_is_constant_time ... ok [INFO] [stdout] test session::tests::session_info_does_not_drive_frontier ... ok [INFO] [stdout] test session::tests::startup_cleanup_removes_failed_batches ... ok [INFO] [stdout] test session::tests::startup_cleanup_does_not_touch_committed_interactions ... ok [INFO] [stdout] test session::tests::old_v1_file_ignored ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_overflow_does_not_mutate ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_overflow_returns_error ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_pieces_ordered_on_drain ... ok [INFO] [stdout] test interactions_handler::tests::split_system_instruction_non_streaming_carries_prev_id_on_first_chunk ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_push_and_drain_single_piece ... ok [INFO] [stdout] test sse::tests::format_openai_sse_chunk_produces_valid_sse ... ok [INFO] [stdout] test sse::tests::format_sse_event_str_uses_correct_event_names ... ok [INFO] [stdout] test sse::tests::is_event_stream_detects_valid ... ok [INFO] [stdout] test sse::tests::is_event_stream_empty_headers ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_substitute_id_no_match_leaves_unchanged ... ok [INFO] [stdout] test sse::tests::is_event_stream_rejects_json ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_substitute_id_replaces_all_occurrences ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_duplicate_piece_index_appends ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_empty_drain ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_skips_done ... ok [INFO] [stdout] test sse::tests::parse_anthropic_sse_event_ignores_empty_data ... ok [INFO] [stdout] test sse::tests::parse_anthropic_sse_event_parses_message_start ... ok [INFO] [stdout] test sse::tests::sse_response_does_not_echo_accept_header ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_two_events ... ok [INFO] [stdout] test session::tests::startup_resumes_pending_inflight_piece ... ok [INFO] [stdout] test sse::tests::parse_anthropic_sse_event_returns_none_on_garbage ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_discards_incomplete_trailing_event ... ok [INFO] [stdout] test tests::apply_token_caps_applies_all_three_limits ... ok [INFO] [stdout] test tests::apply_token_caps_clamps_max_tokens ... ok [INFO] [stdout] test tests::apply_token_caps_no_limits_returns_unchanged ... ok [INFO] [stdout] test sse::tests::sse_response_sets_correct_headers ... ok [INFO] [stdout] test tests::apply_token_caps_sets_missing_max_tokens ... ok [INFO] [stdout] test tests::error_translation_empty_ingress_matches_any_body ... ok [INFO] [stdout] test tests::error_translation_empty_rules_returns_body_unchanged ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_empty ... ok [INFO] [stdout] test session::tests::v2_store_round_trip ... ok [INFO] [stdout] test session::tests::startup_rebuilds_derived_indexes ... ok [INFO] [stdout] test session::tests::startup_discards_non_fully_acked_batches ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_no_events_fallback ... ok [INFO] [stdout] test tests::drop_fields_empty_set_is_noop ... ok [INFO] [stdout] test tests::drop_fields_nonexistent_key_is_noop ... ok [INFO] [stdout] test tests::drop_fields_removes_specified_keys ... ok [INFO] [stdout] test sse::tests::parse_sse_buffer_non_utf8_fallback ... ok [INFO] [stdout] test tests::error_translation_first_match_wins ... ok [INFO] [stdout] test tests::error_translation_status_match_replaces_body ... ok [INFO] [stdout] test tests::error_translation_second_rule_when_first_no_match ... ok [INFO] [stdout] test tests::error_translation_status_with_substring_replaces_body ... ok [INFO] [stdout] test tests::peek_model_returns_question_on_garbage ... ok [INFO] [stdout] test tests::error_translation_status_mismatch_passes_through ... ok [INFO] [stdout] test tests::peek_model_returns_question_on_missing ... ok [INFO] [stdout] test tests::translate_gemini_error_missing_code_defaults ... ok [INFO] [stdout] test tests::translate_gemini_error_preserves_upstream_code ... ok [INFO] [stdout] test tests::error_translation_substring_mismatch_passes_through ... ok [INFO] [stdout] test tests::translate_gemini_error_to_openai ... ok [INFO] [stdout] test tests::translate_non_gemini_json_passes_through ... ok [INFO] [stdout] test session::tests::replay_updates_upstream_node_last_seen_utc ... ok [INFO] [stdout] test tests::peek_model_extracts_field ... ok [INFO] [stdout] test tests::translate_non_json_body_passes_through ... ok [INFO] [stdout] test tests::translate_gemini_error_to_anthropic ... ok [INFO] [stdout] test sse::tests::mem_sse_buffer_large_content_within_limit ... ok [INFO] [stderr] {"section":"test","request_id":"1788425230-0","ts":"2026-09-03T08:47:10Z","direction":"request","model":"test-model","upstream":"test-upstream","status":502,"duration_ms":4,"request_size_bytes":2,"response_size_bytes":40,"streaming":true,"error":"{\"error\":{\"message\":\"upstream failure\"}}"} [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/inf_splitter-316590a10e091392) [INFO] [stdout] test interactions_handler::tests::split_system_instruction_streaming_cancels_acked_on_failure ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 364 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running tests/e2e.rs (/opt/rustwide/target/release/deps/e2e-6da406a413b22205) [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.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 36 tests [INFO] [stdout] test anthropic_split_streaming_uses_final_id ... ok [INFO] [stdout] test control_messages_stripped_from_delta ... ok [INFO] [stdout] test default_provider_catches_unmatched_model ... ok [INFO] [stdout] test interactions_content_type_field_is_correct ... ok [INFO] [stdout] test interactions_error_translation_e2e ... ok [INFO] [stdout] test anthropic_ingress_to_interactions_roundtrip ... ok [INFO] [stdout] test interactions_openai_ingress_returns_openai_format ... ok [INFO] [stdout] test control_message_idempotency ... ok [INFO] [stdout] test clean_all_reports_errors_when_upstream_unreachable ... ok [INFO] [stdout] test control_message_clean_all_sessions ... ok [INFO] [stdout] test anthropic_client_to_openai_upstream_cross_roundtrip ... ok [INFO] [stdout] test interactions_forwards_client_headers_to_upstream ... ok [INFO] [stdout] test anthropic_client_to_anthropic_upstream_passthrough_roundtrip ... ok [INFO] [stdout] test interactions_sets_x_goog_api_key_from_config ... ok [INFO] [stdout] test interactions_multi_turn_session_delta ... ok [INFO] [stdout] test interactions_streaming_anthropic_sse_roundtrip ... ok [INFO] [stdout] test non_streaming_split_merge_preserves_tool_calls ... ok [INFO] [stdout] test interactions_split_send_returns_real_response ... ok [INFO] [stdout] test multi_provider_routes_to_correct_upstream ... ok [INFO] [stdout] test non_streaming_split_merges_all_piece_responses ... ok [INFO] [stdout] test openai_client_to_openai_upstream_passthrough_roundtrip ... ok [INFO] [stdout] test openai_split_streaming_uses_final_id ... ok [INFO] [stdout] test split_send_creates_v2_nodes_replay_works ... ok [INFO] [stdout] test model_list_routes_all_entries_to_same_upstream ... ok [INFO] [stdout] test split_send_piece_failure_cancels_acked_pieces ... ok [INFO] [stdout] test interactions_openai_streaming_returns_openai_sse ... ok [INFO] [stdout] test openai_split_send_returns_openai_format ... ok [INFO] [stdout] test control_message_extend_lifetime ... ok [INFO] [stdout] test interactions_strips_client_auth_headers_when_api_key_set ... ok [INFO] [stdout] test interactions_token_limits_injected ... ok [INFO] [stdout] test openai_client_to_anthropic_upstream_cross_roundtrip ... ok [INFO] [stdout] test openai_ingress_to_interactions_roundtrip ... ok [INFO] [stdout] test streaming_system_instruction_split_uses_final_id ... ok [INFO] [stdout] test unroutable_model_returns_400_e2e ... ok [INFO] [stdout] test interactions_session_persistence_survives_restart ... ok [INFO] [stdout] test retry_during_in_flight_split_waits_and_returns_merged ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.70s [INFO] [stdout] [INFO] [stderr] Running tests/protocol_conversion.rs (/opt/rustwide/target/release/deps/protocol_conversion-45ee9b3543aaafa0) [INFO] [stdout] [INFO] [stdout] running 67 tests [INFO] [stdout] test anthropic_ingress_openai_upstream_streaming ... ok [INFO] [stdout] test anthropic_passthrough_non_streaming_egress_response_dump ... ok [INFO] [stdout] test drop_fields_anthropic_passthrough ... ok [INFO] [stdout] test anthropic_passthrough_success_produces_stats_and_dumps ... ok [INFO] [stdout] test anthropic_passthrough_no_conversion ... ok [INFO] [stdout] test drop_fields_noop_when_absent ... ok [INFO] [stdout] test anthropic_ingress_openai_upstream_converts_both_ways ... ok [INFO] [stdout] test anthropic_passthrough_dump_off_no_dump_file ... ok [INFO] [stdout] test drop_fields_nonexistent_field_is_noop ... ok [INFO] [stdout] test delayed_upstream_produces_nonzero_duration_ms ... ok [INFO] [stdout] test anthropic_to_openai_translation_success_produces_stats_and_dumps ... ok [INFO] [stdout] test anthropic_passthrough_error_produces_dumps ... ok [INFO] [stdout] test anthropic_passthrough_success_produces_ingress_dump ... ok [INFO] [stdout] test drop_fields_noop_when_empty_list ... ok [INFO] [stdout] test anthropic_to_openai_non_streaming_success_egress_response_dump ... ok [INFO] [stdout] test anthropic_passthrough_streaming_egress_response_dump ... ok [INFO] [stderr] {"section":"local","request_id":"1788425232-0","ts":"2026-09-03T08:47:13Z","direction":"openai->openai","model":"dump-model","upstream":"http://127.0.0.1:44023","status":502,"duration_ms":0,"request_size_bytes":108,"response_size_bytes":41,"streaming":false,"messages_detail_ingress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"},{"parts":[{"chars":5,"type":"text","words":1}],"role":"assistant"}],"messages_detail_egress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"},{"parts":[{"chars":5,"type":"text","words":1}],"role":"assistant"}],"error":"{\"error\":{\"message\":\"upstream exploded\"}}"} [INFO] [stdout] test dump_on_error_passthrough_does_not_break_response ... ok [INFO] [stdout] test drop_fields_anthropic_to_openai_conversion ... ok [INFO] [stdout] test dump_mode_error_writes_only_on_error ... ok [INFO] [stdout] test anthropic_to_openai_streaming_success_egress_response_dump ... ok [INFO] [stdout] test drop_fields_openai_passthrough ... ok [INFO] [stderr] {"section":"remote","request_id":"1788425233-0","ts":"2026-09-03T08:47:13Z","direction":"openai->anthropic","model":"dump-stream-model","upstream":"http://127.0.0.1:38943","status":502,"duration_ms":0,"request_size_bytes":106,"response_size_bytes":62,"streaming":true,"input_messages":1,"max_tokens":64,"messages_detail_ingress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"}],"messages_detail_egress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"}],"error":"{\"error\":{\"message\":\"down\",\"type\":\"api_error\"},\"type\":\"error\"}"} [INFO] [stdout] test dump_on_error_stream_conversion_error_does_not_break_response ... ok [INFO] [stdout] test dump_mode_all_writes_to_file_on_success ... ok [INFO] [stdout] test drop_fields_openai_to_anthropic_conversion ... ok [INFO] [stdout] test interactions_dump_and_stats_share_request_id ... ok [INFO] [stdout] test egress_request_dump_timestamp_not_after_response ... ok [INFO] [stdout] test empty_model_returns_400 ... ok [INFO] [stderr] {"section":"remote","request_id":"1788425232-0","ts":"2026-09-03T08:47:13Z","direction":"openai->anthropic","model":"dump-conv-model","upstream":"http://127.0.0.1:45031","status":503,"duration_ms":0,"request_size_bytes":157,"response_size_bytes":67,"streaming":false,"input_messages":2,"max_tokens":64,"messages_detail_ingress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"},{"parts":[{"chars":13,"type":"text","words":2}],"role":"user"}],"messages_detail_egress":[{"parts":[{"chars":5,"type":"text","words":1}],"role":"user"},{"parts":[{"chars":13,"type":"text","words":2}],"role":"user"}],"error":"{\"error\":{\"message\":\"too busy\",\"type\":\"overloaded\"},\"type\":\"error\"}"} [INFO] [stdout] test dump_on_error_conversion_does_not_break_response ... ok [INFO] [stdout] test diagnostics_file_rotates_on_max_file_size ... ok [INFO] [stdout] test invalid_json_body_returns_400 ... ok [INFO] [stdout] test no_messages_field_produces_no_detail_null_in_stats ... ok [INFO] [stdout] test interactions_split_send_records_aggregate_stats ... ok [INFO] [stdout] test invalid_json_body_produces_ingress_dump ... ok [INFO] [stdout] test diagnostics_rotation_compresses_with_7z ... ok [INFO] [stdout] test drop_fields_per_model_all_and_specific ... ok [INFO] [stdout] test interactions_error_records_stats_with_error_field ... ok [INFO] [stdout] test empty_model_produces_ingress_dump ... ok [INFO] [stdout] test interactions_no_dump_when_off ... ok [INFO] [stdout] test interactions_error_produces_dumps ... ok [INFO] [stdout] test non_utf8_client_body_returns_400 ... ok [INFO] [stdout] test non_utf8_upstream_response_returns_500_anthropic ... ok [INFO] [stdout] test non_utf8_upstream_response_returns_500_openai ... ok [INFO] [stdout] test interactions_streaming_records_streaming_true_in_stats ... ok [INFO] [stdout] test openai_ingress_anthropic_upstream_streaming ... ok [INFO] [stdout] test interactions_non_streaming_produces_dumps ... ok [INFO] [stdout] test openai_ingress_anthropic_upstream_converts_both_ways ... ok [INFO] [stdout] test interactions_streaming_produces_dumps ... ok [INFO] [stdout] test openai_passthrough_non_streaming_egress_response_dump ... ok [INFO] [stdout] test openai_to_anthropic_streaming_success_egress_response_dump ... ok [INFO] [stdout] test openai_passthrough_no_conversion ... ok [INFO] [stdout] test interactions_system_instruction_split_records_stats ... ok [INFO] [stdout] test openai_passthrough_streaming_records_streaming_true_in_stats ... ok [INFO] [stdout] test relay_openai_upstream_does_not_duplicate_sse_headers ... ok [INFO] [stdout] test openai_passthrough_streaming_egress_response_dump ... ok [INFO] [stdout] test passthrough_success_request_dumps_have_status ... ok [INFO] [stdout] test stats_mode_all_writes_to_file_on_success ... ok [INFO] [stdout] test openai_to_anthropic_non_streaming_success_egress_response_dump ... ok [INFO] [stdout] test translation_anthropic_to_openai_produces_ingress_and_egress_events ... ok [INFO] [stdout] test openai_to_anthropic_translation_success_produces_stats_and_dumps ... ok [INFO] [stdout] test split_send_error_records_response_dump_and_error_stats ... ok [INFO] [stdout] test stats_mode_error_writes_only_on_error ... ok [INFO] [stdout] test diagnostics_rotation_compresses_with_bz2 ... ok [INFO] [stdout] test openai_passthrough_error_produces_ingress_dump ... ok [INFO] [stdout] test upstream_error_relays_status ... ok [INFO] [stdout] test unroutable_model_returns_400 ... ok [INFO] [stdout] test streaming_passthrough_records_streaming_true_in_stats ... ok [INFO] [stdout] test translation_openai_to_anthropic_produces_ingress_and_egress_events ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 67 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.20s [INFO] [stdout] [INFO] [stderr] Doc-tests inf_splitter [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" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca", kill_on_drop: false }` [INFO] [stdout] ce5adb0511ac678647711c2e12cdb68cc06a46b839af2bc2c79cc8ce9c1ee2ca