[INFO] fetching crate unigateway-core 2.0.8...
[INFO] testing unigateway-core-2.0.8 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate unigateway-core 2.0.8 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate unigateway-core 2.0.8
[INFO] finished tweaking crates.io crate unigateway-core 2.0.8
[INFO] tweaked toml for crates.io crate unigateway-core 2.0.8 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate unigateway-core 2.0.8 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate unigateway-core 2.0.8 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio v1.52.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5b3656f8bfe4cb869d4211867fc9e8f9c7fa985b7b1137ceae2d2c57d8a559e0
[INFO] running `Command { std: "docker" "start" "-a" "5b3656f8bfe4cb869d4211867fc9e8f9c7fa985b7b1137ceae2d2c57d8a559e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5b3656f8bfe4cb869d4211867fc9e8f9c7fa985b7b1137ceae2d2c57d8a559e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b3656f8bfe4cb869d4211867fc9e8f9c7fa985b7b1137ceae2d2c57d8a559e0", kill_on_drop: false }`
[INFO] [stdout] 5b3656f8bfe4cb869d4211867fc9e8f9c7fa985b7b1137ceae2d2c57d8a559e0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f56787c4bf6cbb6d30da291158e9f57d23c2480713962c77facc5449a4636112
[INFO] running `Command { std: "docker" "start" "-a" "f56787c4bf6cbb6d30da291158e9f57d23c2480713962c77facc5449a4636112", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[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 serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling unigateway-core v2.0.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.25s
[INFO] running `Command { std: "docker" "inspect" "f56787c4bf6cbb6d30da291158e9f57d23c2480713962c77facc5449a4636112", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f56787c4bf6cbb6d30da291158e9f57d23c2480713962c77facc5449a4636112", kill_on_drop: false }`
[INFO] [stdout] f56787c4bf6cbb6d30da291158e9f57d23c2480713962c77facc5449a4636112
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71de73386d8dcee45a4f8a76bffe759f16e81cf52f487fb8baf0074b5d7c793e
[INFO] running `Command { std: "docker" "start" "-a" "71de73386d8dcee45a4f8a76bffe759f16e81cf52f487fb8baf0074b5d7c793e", kill_on_drop: false }`
[INFO] [stderr]    Compiling unigateway-core v2.0.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.92s
[INFO] running `Command { std: "docker" "inspect" "71de73386d8dcee45a4f8a76bffe759f16e81cf52f487fb8baf0074b5d7c793e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71de73386d8dcee45a4f8a76bffe759f16e81cf52f487fb8baf0074b5d7c793e", kill_on_drop: false }`
[INFO] [stdout] 71de73386d8dcee45a4f8a76bffe759f16e81cf52f487fb8baf0074b5d7c793e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5aa874b02f8625d4dfece6b0022baf53a5b51581647dcd65b978e89692598d9d
[INFO] running `Command { std: "docker" "start" "-a" "5aa874b02f8625d4dfece6b0022baf53a5b51581647dcd65b978e89692598d9d", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/unigateway_core-3a69675a4d0a8833)
[INFO] [stdout] 
[INFO] [stdout] running 85 tests
[INFO] [stdout] test conversion::tests::anthropic_image_blocks_parse_to_content_blocks ... ok
[INFO] [stdout] test conversion::tests::anthropic_tool_use_serializes_to_openai_tool_call ... ok
[INFO] [stdout] test conversion::tests::anthropic_content_blocks_preserve_thinking_signature ... ok
[INFO] [stdout] test conversion::tests::content_block_preserves_thinking_signature ... ok
[INFO] [stdout] test conversion::tests::anthropic_tools_convert_to_openai_function_tools ... ok
[INFO] [stdout] test conversion::tests::content_block_preserves_tool_use_input ... ok
[INFO] [stdout] test conversion::tests::content_blocks_reject_placeholder_signature_for_anthropic_request ... ok
[INFO] [stdout] test conversion::tests::content_blocks_serialize_to_anthropic_blocks ... ok
[INFO] [stdout] test conversion::tests::anthropic_tool_result_single_text_block_preserves_structured_content ... ok
[INFO] [stdout] test conversion::tests::anthropic_tool_result_multiple_blocks_preserve_json_content ... ok
[INFO] [stdout] test conversion::tests::anthropic_messages_convert_to_openai_messages ... ok
[INFO] [stdout] test conversion::tests::openai_assistant_tool_calls_parse_to_content_blocks ... ok
[INFO] [stdout] test conversion::tests::openai_assistant_tool_calls_ignore_empty_string_content ... ok
[INFO] [stdout] test conversion::tests::anthropic_request_messages_reject_placeholder_signature ... ok
[INFO] [stdout] test conversion::tests::openai_function_tools_convert_to_anthropic_tools ... ok
[INFO] [stdout] test conversion::tests::openai_image_blocks_parse_to_content_blocks ... ok
[INFO] [stdout] test conversion::tests::openai_message_downstream_blocks_include_thinking_and_tool_use ... ok
[INFO] [stdout] test conversion::tests::openai_message_downstream_blocks_preserve_image_url_items ... ok
[INFO] [stdout] test conversion::tests::openai_multiple_system_messages_preserve_order_without_joining ... ok
[INFO] [stdout] test conversion::tests::openai_messages_to_anthropic_messages_preserve_image_content_blocks ... ok
[INFO] [stdout] test conversion::tests::openai_message_downstream_blocks_preserve_input_image_data_urls ... ok
[INFO] [stdout] test conversion::tests::tool_call_delta_update_deduplicates_cumulative_argument_snapshots ... ok
[INFO] [stdout] test conversion::tests::openai_system_text_blocks_preserve_anthropic_block_array ... ok
[INFO] [stdout] test conversion::tests::tool_call_delta_update_emits_start_and_delta ... ok
[INFO] [stdout] test conversion::tests::tool_call_delta_update_normalizes_double_encoded_json_string ... ok
[INFO] [stdout] test conversion::tests::tool_call_delta_update_only_emits_new_argument_fragment ... ok
[INFO] [stdout] test conversion::tests::openai_messages_convert_to_anthropic_messages ... ok
[INFO] [stdout] test conversion::tests::tool_call_stop_update_emits_stop_only_for_started_call ... ok
[INFO] [stdout] test conversion::tests::tool_choice_converts_between_openai_and_anthropic_shapes ... ok
[INFO] [stdout] test engine::tests::proxy::proxy_chat_delegates_to_registered_driver ... ok
[INFO] [stdout] test engine::tests::retries::aimd_on_saturation_reduces_limit_for_429 ... ok
[INFO] [stdout] test conversion::tests::openai_tool_message_parses_to_tool_result_block ... ok
[INFO] [stdout] test conversion::tests::tool_call_delta_update_strips_empty_object_prefix ... ok
[INFO] [stdout] test conversion::tests::tool_call_stop_update_emits_placeholder_start_and_buffered_delta ... ok
[INFO] [stdout] test engine::tests::retries::hooks_receive_failed_attempts_and_failed_request_report ... ok
[INFO] [stdout] test engine::tests::retries::fallback_strategy_tries_next_endpoint_on_failure ... ok
[INFO] [stdout] test engine::tests::routing::round_robin_rotates_across_enabled_endpoints ... ok
[INFO] [stdout] test engine::tests::routing::execution_plan_uses_candidate_subset ... ok
[INFO] [stdout] test engine::tests::routing::routing_feedback_prioritizes_scored_endpoints ... ok
[INFO] [stdout] test engine::tests::retries::aimd_saturation_yields_all_endpoints_saturated ... ok
[INFO] [stdout] test engine::tests::retries::chat_failure_returns_aggregated_attempt_reports ... ok
[INFO] [stdout] test engine::tests::streaming::hooks_receive_stream_lifecycle_events_for_streaming_chat ... ok
[INFO] [stdout] test protocol::anthropic::tests::anthropic_driver_executes_non_streaming_chat ... ok
[INFO] [stdout] test pool::tests::secret_string_debug_is_redacted ... ok
[INFO] [stdout] test engine::tests::routing::upsert_get_list_and_remove_pool ... ok
[INFO] [stdout] test engine::tests::streaming::streaming_completion_resolves_without_draining_output_stream ... ok
[INFO] [stdout] test engine::tests::routing::snapshot_is_stable_after_pool_update ... ok
[INFO] [stdout] test protocol::anthropic::tests::anthropic_driver_executes_streaming_chat ... ok
[INFO] [stdout] test protocol::anthropic::tests::anthropic_driver_streaming_chat_completion_survives_dropped_stream ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_converts_openai_raw_messages_to_anthropic_messages ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_drops_top_p_when_both_temperature_and_top_p_present ... ok
[INFO] [stdout] test engine::tests::retries::round_robin_retries_only_for_configured_conditions ... ok
[INFO] [stdout] test engine::tests::proxy::proxy_chat_fails_when_driver_missing ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_moves_system_messages_to_top_level_field ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_preserves_anthropic_raw_messages ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_merges_anthropic_extra_without_overriding_core_fields ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_preserves_structured_image_blocks_without_raw_messages ... ok
[INFO] [stdout] test protocol::openai::requests::tests::openai_chat_messages_falls_back_to_flattened_when_no_raw ... ok
[INFO] [stdout] test protocol::openai::requests::tests::openai_chat_messages_preserves_structured_text_blocks ... ok
[INFO] [stdout] test engine::tests::retries::responses_failure_returns_aggregated_attempt_reports ... ok
[INFO] [stdout] test protocol::anthropic::tests::build_chat_request_rejects_placeholder_signature_in_anthropic_raw_messages ... ok
[INFO] [stdout] test protocol::openai::requests::tests::openai_chat_messages_preserves_tool_call_structure ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_maps_model_and_url ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_injects_thinking_for_claude_when_xml_think_tag_requested ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_merges_extra_without_overriding_core_fields ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_preserves_structured_image_blocks_without_raw_messages ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_preserves_structured_text_blocks_without_raw_messages ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_normalizes_string_any_tool_choice ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_skips_thinking_injection_for_non_claude_or_missing_metadata ... ok
[INFO] [stdout] test protocol::openai::tests::build_embeddings_request_preserves_encoding_format ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_preserves_structured_tool_result_content_without_raw_messages ... ok
[INFO] [stdout] test protocol::openai::tests::build_chat_request_translates_anthropic_raw_messages_and_tool_choice ... ok
[INFO] [stdout] test protocol::openai::tests::build_responses_request_forwards_supported_optional_fields ... ok
[INFO] [stdout] test protocol::openai::tests::openai_driver_executes_streaming_responses ... ok
[INFO] [stdout] test protocol::openai::tests::openai_driver_streaming_chat_completion_survives_dropped_stream ... ok
[INFO] [stdout] test protocol::openai::tests::openai_driver_executes_streaming_chat ... ok
[INFO] [stdout] test protocol::openai::tests::openai_driver_streaming_responses_completion_survives_dropped_stream ... ok
[INFO] [stdout] test request::tests::proxy_chat_request_marks_openai_raw_messages ... ok
[INFO] [stdout] test request::tests::proxy_chat_request_round_trips_client_protocol ... ok
[INFO] [stdout] test request::tests::legacy_message_converts_to_structured_text_message ... ok
[INFO] [stdout] test protocol::openai::tests::parse_responses_response_reads_responses_usage_shape ... ok
[INFO] [stdout] test request::tests::proxy_chat_request_round_trips_thinking_signature_status ... ok
[INFO] [stdout] test request::tests::structured_message_preserves_ordered_blocks ... ok
[INFO] [stdout] test request::tests::unknown_metadata_values_are_ignored_by_typed_helpers ... ok
[INFO] [stdout] test protocol::openai::tests::openai_driver_executes_non_streaming_operations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 85 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests unigateway_core
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/hooks.rs - hooks::GatewayHooks (line 18) ... 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] all doctests ran in 1.06s; merged doctests compilation took 0.95s
[INFO] running `Command { std: "docker" "inspect" "5aa874b02f8625d4dfece6b0022baf53a5b51581647dcd65b978e89692598d9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5aa874b02f8625d4dfece6b0022baf53a5b51581647dcd65b978e89692598d9d", kill_on_drop: false }`
[INFO] [stdout] 5aa874b02f8625d4dfece6b0022baf53a5b51581647dcd65b978e89692598d9d
