[INFO] fetching crate yoagent 0.23.0...
[INFO] testing yoagent-0.23.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate yoagent 0.23.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate yoagent 0.23.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate yoagent 0.23.0
[INFO] tweaked toml for crates.io crate yoagent 0.23.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate yoagent 0.23.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate yoagent 0.23.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded eventsource-stream v0.2.3
[INFO] [stderr]   Downloaded kameleoon-reqwest-eventsource v0.6.2
[INFO] [stderr]   Downloaded yoagent-state v0.5.2
[INFO] [stderr]   Downloaded openapiv3 v2.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb
[INFO] running `Command { std: "docker" "start" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", 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" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", 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" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling cmov v0.5.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling ctutils v0.4.2
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling cpufeatures v0.3.1
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling thiserror v2.0.21
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling hybrid-array v0.4.15
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling cc v1.5.1
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling futures-timer v3.0.4
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling rand v0.10.3
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.21
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.6
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.10
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling kameleoon-reqwest-eventsource v0.6.2
[INFO] [stderr]    Compiling yoagent v0.23.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 37s
[INFO] running `Command { std: "docker" "inspect" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", 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" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling lazy_static v1.5.1
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.6
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.21
[INFO] [stderr]    Compiling hyper-rustls v0.27.10
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling kameleoon-reqwest-eventsource v0.6.2
[INFO] [stderr]    Compiling yoagent v0.23.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 27s
[INFO] running `Command { std: "docker" "inspect" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", 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" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yoagent-f097e3bd7a45c2df)
[INFO] [stdout] 
[INFO] [stdout] running 418 tests
[INFO] [stdout] test context::tests::test_compact_within_budget ... ok
[INFO] [stdout] test context::tests::extension_message_token_estimate_includes_message_overhead ... ok
[INFO] [stdout] test context::tests::level2_summary_keeps_short_assistant_text ... ok
[INFO] [stdout] test context::tests::test_compact_drops_middle_when_needed ... ok
[INFO] [stdout] test context::tests::test_compaction_target_rejects_nonsense_ratios ... ok
[INFO] [stdout] test context::tests::test_compact_target_ratio_leaves_headroom ... ok
[INFO] [stdout] test context::tests::test_context_tracker_no_usage ... ok
[INFO] [stdout] test context::tests::test_context_tracker_reset ... ok
[INFO] [stdout] test context::tests::test_floor_overrides_a_lower_target_ratio_only_under_headroom ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens ... ok
[INFO] [stdout] test context::tests::test_context_tracker_with_usage ... ok
[INFO] [stdout] test context::compaction_retention::compaction_keeps_a_usable_well_formed_transcript ... ok
[INFO] [stdout] test context::tests::test_context_config_from_context_window ... ok
[INFO] [stdout] test context::tests::test_execution_limits ... ok
[INFO] [stdout] test context::tests::test_headroom_policy_is_inert_without_a_growth_estimate ... ok
[INFO] [stdout] test context::tests::test_ratio_of_one_restores_compact_to_just_fit ... ok
[INFO] [stdout] test context::tests::test_truncate_degenerate_line_budget ... ok
[INFO] [stdout] test context::tests::test_level1_truncation ... ok
[INFO] [stdout] test context::tests::test_truncate_head_tail ... ok
[INFO] [stdout] test context::tests::tool_boundaries_never_split_an_open_call_from_its_result ... ok
[INFO] [stdout] test context::tests::test_truncate_tool_output_helper ... ok
[INFO] [stdout] test context::tests::test_truncate_is_idempotent_and_keeps_an_honest_count ... ok
[INFO] [stdout] test llm_compaction::losing_race_warning::a_splice_clears_the_latch_so_the_signal_can_retract ... ok
[INFO] [stdout] test llm_compaction::losing_race_warning::one_fallback_is_quiet_and_the_warning_fires_once ... ok
[INFO] [stdout] test llm_compaction::losing_race_warning::no_request_issued_means_no_cost_claim ... ok
[INFO] [stdout] test llm_compaction::losing_race_warning::a_successful_splice_resets_the_streak ... ok
[INFO] [stdout] test context::tests::test_headroom_policy_derives_the_ratio_from_growth ... ok
[INFO] [stdout] test llm_compaction::losing_race_warning::a_discarded_briefing_counts_as_a_fallback ... ok
[INFO] [stdout] test llm_compaction::tests::clip_keeps_only_the_prefix_within_the_byte_limit ... ok
[INFO] [stdout] test context::tests::test_level3_drops_only_what_the_target_requires ... ok
[INFO] [stdout] test context::tests::test_compaction_marker_carries_no_drifting_count ... ok
[INFO] [stdout] test llm_compaction::tests::a_short_history_does_not_burn_the_inert_warning ... ok
[INFO] [stdout] test context::tests::test_compaction_never_orphans_tool_calls ... ok
[INFO] [stdout] test llm_compaction::tests::head_is_kept_verbatim_or_summarized_but_not_both ... ok
[INFO] [stdout] test llm_compaction::tests::impossible_settings_warn_once_instead_of_silently_no_oping ... ok
[INFO] [stdout] test llm_compaction::tests::a_hung_request_releases_the_in_flight_slot ... ok
[INFO] [stdout] test llm_compaction::tests::same_shape_rewrite_is_still_detected ... ok
[INFO] [stdout] test llm_compaction::tests::provider_failure_falls_back_deterministically ... ok
[INFO] [stdout] test llm_compaction::tests::compact_counts_real_fallbacks_and_warns_on_the_streak ... ok
[INFO] [stdout] test llm_compaction::tests::a_session_that_starts_over_budget_recovers ... ok
[INFO] [stdout] test llm_compaction::tests::stale_summary_is_discarded_not_spliced ... ok
[INFO] [stdout] test llm_compaction::tests::spliced_history_is_level_1_stable ... ok
[INFO] [stdout] test llm_compaction::tests::splices_summary_when_over_budget ... ok
[INFO] [stdout] test llm_compaction::tests::under_trigger_is_a_no_op ... ok
[INFO] [stdout] test mcp::client::tests::test_client_info_default ... ok
[INFO] [stdout] test mcp::tool_adapter::tests::test_from_client_creates_adapters ... ok
[INFO] [stdout] test mcp::tool_adapter::tests::test_tool_adapter_handles_error ... ok
[INFO] [stdout] test mcp::tool_adapter::tests::test_tool_adapter_wraps_mcp_tool ... ok
[INFO] [stdout] test llm_compaction::tests::transcript_is_capped_in_total_not_just_per_block ... ok
[INFO] [stdout] test mcp::transport::tests::test_stdio_transport_with_cat ... ok
[INFO] [stdout] test mcp::types::tests::test_initialize_result_deserialization ... ok
[INFO] [stdout] test mcp::types::tests::test_json_rpc_error_response ... ok
[INFO] [stdout] test mcp::types::tests::test_json_rpc_request_serialization ... ok
[INFO] [stdout] test mcp::types::tests::test_json_rpc_response_deserialization ... ok
[INFO] [stdout] test mcp::types::tests::test_mcp_tool_call_result ... ok
[INFO] [stdout] test mcp::types::tests::test_mcp_tool_info_deserialization ... ok
[INFO] [stdout] test mcp::types::tests::test_unique_request_ids ... ok
[INFO] [stdout] test provider::anthropic::no_arg_tool_calls::an_empty_argument_stream_is_an_empty_object ... ok
[INFO] [stdout] test provider::anthropic::no_arg_tool_calls::malformed_arguments_still_fail ... ok
[INFO] [stdout] test provider::anthropic::no_arg_tool_calls::well_formed_arguments_parse ... ok
[INFO] [stdout] test provider::anthropic::tests::haiku_4_5_structured_with_thinking_uses_budget ... ok
[INFO] [stdout] test provider::anthropic::tests::native_flag_is_the_only_switch ... ok
[INFO] [stdout] test provider::anthropic::tests::native_structured_output_merges_with_effort ... ok
[INFO] [stdout] test provider::anthropic::tests::native_structured_output_sends_output_config_format ... ok
[INFO] [stdout] test provider::anthropic::tests::native_structured_output_with_legacy_thinking ... ok
[INFO] [stdout] test provider::anthropic::tests::redacted_thinking_from_another_provider_is_not_replayed ... ok
[INFO] [stdout] test provider::anthropic::tests::structured_output_disables_thinking ... ok
[INFO] [stdout] test provider::anthropic::tests::test_adaptive_thinking_by_default ... ok
[INFO] [stdout] test provider::anthropic::tests::test_adaptive_thinking_does_not_clamp_max_tokens ... ok
[INFO] [stdout] test provider::anthropic::tests::test_adaptive_thinking_effort_mapping ... ok
[INFO] [stdout] test provider::anthropic::tests::test_adaptive_thinking_xhigh_and_max_pass_through ... ok
[INFO] [stdout] test provider::anthropic::tests::test_cache_auto_places_all_breakpoints ... ok
[INFO] [stdout] test provider::anthropic::tests::test_cache_breakpoint_falls_back_when_second_to_last_is_empty ... ok
[INFO] [stdout] test provider::anthropic::tests::test_cache_control_not_set_on_empty_text_block ... ok
[INFO] [stdout] test provider::anthropic::tests::test_cache_disabled_no_breakpoints ... ok
[INFO] [stdout] test provider::anthropic::tests::test_cache_manual_system_only ... ok
[INFO] [stdout] test provider::anthropic::tests::test_content_to_anthropic_filters_empty_text ... ok
[INFO] [stdout] test provider::anthropic::tests::test_default_base_url_yields_official_endpoint ... ok
[INFO] [stdout] test provider::anthropic::tests::test_empty_assistant_message_is_skipped ... ok
[INFO] [stdout] test provider::anthropic::tests::test_explicit_max_tokens_beats_model_config ... ok
[INFO] [stdout] test provider::anthropic::tests::test_legacy_official_base_url_without_version_still_works ... ok
[INFO] [stdout] test provider::anthropic::tests::test_legacy_thinking_budget_clamped_to_api_minimum ... ok
[INFO] [stdout] test provider::anthropic::tests::test_legacy_thinking_budget_for_xhigh_and_max ... ok
[INFO] [stdout] test provider::anthropic::tests::test_max_tokens_falls_back_to_model_config ... ok
[INFO] [stdout] test provider::anthropic::tests::test_request_url_from_model_config_base_url ... ok
[INFO] [stdout] test provider::anthropic::tests::test_structured_output_forces_synthetic_tool ... ok
[INFO] [stdout] test provider::anthropic::tests::test_thinking_off_sends_no_thinking_field ... ok
[INFO] [stdout] test provider::anthropic::tests::test_tool_result_text_only_uses_string ... ok
[INFO] [stdout] test provider::anthropic::tests::test_tool_result_with_image ... ok
[INFO] [stdout] test provider::anthropic::tests::test_usage_cache_hit_rate ... ok
[INFO] [stdout] test provider::anthropic::tests::tool_forced_structured_body_is_unchanged ... ok
[INFO] [stdout] test provider::azure_openai::tests::a_model_config_without_compat_keeps_the_clamp ... ok
[INFO] [stdout] test provider::azure_openai::tests::compat_ceiling_is_honoured_and_off_omits_effort ... ok
[INFO] [stdout] test provider::azure_openai::tests::every_base_url_shape_resolves_to_the_v1_responses_path ... ok
[INFO] [stdout] test provider::azure_openai::tests::legacy_deployment_base_url_moves_the_deployment_into_model ... ok
[INFO] [stdout] test provider::azure_openai::tests::thinking_level_sets_reasoning_effort ... ok
[INFO] [stdout] test provider::azure_openai::tests::thinking_off_omits_reasoning ... ok
[INFO] [stdout] test provider::azure_openai::tests::xhigh_and_max_clamp_to_high ... ok
[INFO] [stdout] test provider::bedrock::tests::a_clock_before_the_epoch_is_an_error_not_a_1970_signature ... ok
[INFO] [stdout] test provider::bedrock::tests::a_request_that_cannot_be_built_is_not_a_network_error ... ok
[INFO] [stdout] test provider::bedrock::tests::api_key_with_colons_is_iam_credentials ... ok
[INFO] [stdout] test provider::bedrock::tests::api_key_without_colon_is_a_bearer_token ... ok
[INFO] [stdout] test provider::bedrock::tests::auth_debug_never_prints_secrets ... ok
[INFO] [stdout] test provider::bedrock::tests::auth_precedence ... ok
[INFO] [stdout] test provider::bedrock::tests::bearer_env_var_is_checked_too ... ok
[INFO] [stdout] test mcp::transport::tests::test_http_transport_creation ... ok
[INFO] [stdout] test provider::bedrock::tests::cancellation_interrupts_a_stalled_stream ... ok
[INFO] [stdout] test provider::bedrock::tests::claude_model_ids_replay_signed_reasoning_only ... ok
[INFO] [stdout] test provider::bedrock::tests::credential_headers_are_marked_sensitive ... ok
[INFO] [stdout] test provider::bedrock::tests::env_iam_credentials_with_session_token ... ok
[INFO] [stdout] test provider::bedrock::tests::every_documented_stop_reason_is_mapped ... ok
[INFO] [stdout] test provider::bedrock::tests::exceptions_classify_like_their_http_status ... ok
[INFO] [stdout] test provider::bedrock::tests::half_an_env_pair_names_the_missing_half ... ok
[INFO] [stdout] test provider::bedrock::tests::invalid_header_values_are_errors_naming_the_header ... ok
[INFO] [stdout] test provider::bedrock::tests::malformed_iam_keys_are_not_sent_as_bearer_tokens ... ok
[INFO] [stdout] test provider::bedrock::tests::no_credentials_is_an_auth_error ... ok
[INFO] [stdout] test provider::bedrock::tests::non_unicode_env_values_are_reported_not_ignored ... ok
[INFO] [stdout] test provider::bedrock::tests::reasoning_replay_rules ... ok
[INFO] [stdout] test provider::bedrock::tests::region_comes_from_the_endpoint_host ... ok
[INFO] [stdout] test provider::bedrock::tests::region_precedence_host_then_aws_region_then_default ... ok
[INFO] [stdout] test provider::bedrock::tests::signed_path_double_encodes_the_model_id ... ok
[INFO] [stdout] test provider::bedrock::tests::temporary_credentials_need_a_session_token ... ok
[INFO] [stdout] test provider::bedrock::tests::test_build_bedrock_body ... ok
[INFO] [stdout] test provider::bedrock::tests::test_content_to_bedrock ... ok
[INFO] [stdout] test provider::bedrock::tests::test_content_to_bedrock_filters_empty_text ... ok
[INFO] [stdout] test provider::bedrock::tests::thinking_blocks_are_replayed_with_signature ... ok
[INFO] [stdout] test provider::bedrock::tests::thinking_level_sets_additional_model_request_fields ... ok
[INFO] [stdout] test provider::bedrock::tests::thinking_off_omits_additional_fields ... ok
[INFO] [stdout] test provider::bedrock::tests::transport_error_mid_stream_is_a_network_error ... ok
[INFO] [stdout] test provider::bedrock::tests::user_headers_colliding_with_signed_headers_are_refused ... ok
[INFO] [stdout] test provider::bedrock::tests::xhigh_and_max_use_the_legacy_anthropic_budgets ... ok
[INFO] [stdout] test provider::bedrock::tests::zero_bytes_is_an_error_not_an_empty_turn ... ok
[INFO] [stdout] test provider::eventstream::tests::crc32_check_value ... ok
[INFO] [stdout] test provider::eventstream::tests::frames_survive_arbitrary_chunking ... ok
[INFO] [stdout] test provider::eventstream::tests::headers_length_over_the_maximum_is_malformed ... ok
[INFO] [stdout] test provider::eventstream::tests::headers_length_past_the_frame_is_malformed_not_a_panic ... ok
[INFO] [stdout] test provider::eventstream::tests::headers_running_past_their_section_are_malformed ... ok
[INFO] [stdout] test provider::eventstream::tests::oversized_length_is_rejected_not_buffered ... ok
[INFO] [stdout] test provider::eventstream::tests::truncated_frame_at_end_of_stream_is_an_error ... ok
[INFO] [stdout] test provider::eventstream::tests::unknown_header_type_is_malformed ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_negative_corrupted_header_len ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_negative_corrupted_headers ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_negative_corrupted_length ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_negative_corrupted_payload ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_positive_all_headers ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_positive_empty_message ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_positive_int32_header ... ok
[INFO] [stdout] test llm_compaction::tests::default_retain_tail_scales_to_a_small_budget ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_positive_payload_one_str_header ... ok
[INFO] [stdout] test provider::eventstream::tests::zero_length_header_name_is_malformed ... ok
[INFO] [stdout] test provider::google::tests::gemini_2x_payload_is_unchanged_budget ... ok
[INFO] [stdout] test provider::google::tests::gemini_3_8_flash_sends_level_and_clamps_minimal_to_low ... ok
[INFO] [stdout] test provider::google::tests::gemini_3_flash_lite_and_3_5_flash_pass_minimal_through ... ok
[INFO] [stdout] test provider::eventstream::tests::vector_positive_payload_no_headers ... ok
[INFO] [stdout] test provider::google::tests::gemini_3_ids_are_read_through_prefixes_and_paths ... ok
[INFO] [stdout] test provider::google::tests::gemini_3_pro_has_no_minimal ... ok
[INFO] [stdout] test provider::google::tests::gemini_3_tts_models_get_no_thinking_config ... ok
[INFO] [stdout] test provider::google::tests::google_compat_overrides_the_model_id_rule ... ok
[INFO] [stdout] test provider::google::tests::gemini_image_models_get_only_their_accepted_levels ... ok
[INFO] [stdout] test provider::google::tests::google_compat_serde_default_and_round_trip ... ok
[INFO] [stdout] test provider::google::tests::off_omits_thinking_config_on_every_gemini_generation ... ok
[INFO] [stdout] test provider::google::tests::positive_control_2_5_and_3_x_payloads_differ ... ok
[INFO] [stdout] test provider::google::tests::positive_control_off_revert_only_touches_off ... ok
[INFO] [stdout] test provider::google::tests::structured_output_sets_response_schema ... ok
[INFO] [stdout] test provider::google::tests::test_build_google_request ... ok
[INFO] [stdout] test provider::google::tests::test_content_to_google_parts_filters_empty_text ... ok
[INFO] [stdout] test provider::google::tests::test_content_to_google_parts_text ... ok
[INFO] [stdout] test provider::google::tests::test_function_response_includes_id ... ok
[INFO] [stdout] test provider::google::tests::test_function_response_synthetic_id_omitted ... ok
[INFO] [stdout] test provider::google::tests::test_is_error_payload ... ok
[INFO] [stdout] test provider::google::tests::test_content_to_google_parts_tool_call ... ok
[INFO] [stdout] test provider::google::tests::test_next_sse_data_consumes_events_without_data_lines ... ok
[INFO] [stdout] test provider::google::tests::test_next_sse_data_partial_events_stay_buffered ... ok
[INFO] [stdout] test provider::google::tests::test_next_sse_data_splits_earliest_separator_first ... ok
[INFO] [stdout] test provider::google::tests::test_parse_chunk_with_crlf_sse ... ok
[INFO] [stdout] test provider::google::tests::test_parse_chunk_with_empty_text ... ok
[INFO] [stdout] test provider::google::tests::test_parse_chunk_with_function_call_and_thought_signature ... ok
[INFO] [stdout] test provider::google::tests::test_thought_signature_round_trip ... ok
[INFO] [stdout] test provider::google::tests::thinking_blocks_are_dropped_on_replay ... ok
[INFO] [stdout] test provider::google::tests::thinking_level_sets_thinking_config ... ok
[INFO] [stdout] test provider::google::tests::test_tool_call_without_thought_signature ... ok
[INFO] [stdout] test llm_compaction::tests::emits_an_event_on_both_compaction_paths ... ok
[INFO] [stdout] test provider::google::tests::thinking_off_omits_thinking_config ... ok
[INFO] [stdout] test provider::google_vertex::tests::thinking_level_sets_thinking_config ... ok
[INFO] [stdout] test provider::google_vertex::tests::tool_call_thought_signature_is_replayed ... ok
[INFO] [stdout] test provider::google_vertex::tests::gemini_3_on_vertex_sends_thinking_level_not_budget ... ok
[INFO] [stdout] test provider::google_vertex::tests::vertex_honours_the_google_compat_override ... ok
[INFO] [stdout] test provider::google_vertex::tests::xhigh_and_max_clamp_to_the_flash_budget_ceiling ... ok
[INFO] [stdout] test provider::model::tests::claude_presets_use_native_structured_output ... ok
[INFO] [stdout] test provider::google_vertex::tests::thinking_off_omits_thinking_config ... ok
[INFO] [stdout] test provider::model::tests::claude_id_compat_by_generation ... ok
[INFO] [stdout] test provider::model::tests::effort_clamps_are_detected_exactly ... ok
[INFO] [stdout] test provider::model::tests::effort_clamp_warning_dedupes_per_model_and_kind ... ok
[INFO] [stdout] test provider::model::tests::gpt_5_5_long_band ... ok
[INFO] [stdout] test provider::model::tests::generic_constructors_price_listed_ids ... ok
[INFO] [stdout] test provider::model::tests::cost_serde_back_compat ... ok
[INFO] [stdout] test provider::model::tests::gpt_6_presets ... ok
[INFO] [stdout] test provider::model::tests::named_presets_are_priced ... ok
[INFO] [stdout] test provider::model::tests::opencode_claude_compat_matches_presets ... ok
[INFO] [stdout] test provider::model::tests::meta_preset_matches_launch_specs ... ok
[INFO] [stdout] test provider::model::tests::priced_providers_match_the_constructors ... ok
[INFO] [stdout] test provider::model::tests::test_anthropic_compat_deserializes_from_partial_json ... ok
[INFO] [stdout] test provider::model::tests::test_cost_config_default ... ok
[INFO] [stdout] test provider::model::tests::gpt_6_rates_per_band ... ok
[INFO] [stdout] test provider::model::tests::test_api_protocol_display ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_anthropic ... ok
[INFO] [stdout] test provider::model::tests::test_cost_usd ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_deserializes_without_anthropic_field ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_deepseek ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_local_remains_neutral ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_minimax ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_ollama ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_openai ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_openai_compat ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_qwen ... ok
[INFO] [stdout] test provider::model::tests::test_new_generation_presets ... ok
[INFO] [stdout] test provider::model::tests::test_openai_compat_deserializes_without_assistant_after_tool_result_flag ... ok
[INFO] [stdout] test provider::model::tests::test_openai_compat_variants ... ok
[INFO] [stdout] test provider::model::tests::test_opencode_go_protocol_selection ... ok
[INFO] [stdout] test provider::model::tests::unknown_ids_and_gateways_are_unpriced ... ok
[INFO] [stdout] test provider::model::tests::test_opencode_zen_protocol_selection ... ok
[INFO] [stdout] test provider::model::tests::zero_cache_rates_bill_at_the_input_rate ... ok
[INFO] [stdout] test provider::openai_compat::tests::derived_key_is_stable_as_the_conversation_grows ... ok
[INFO] [stdout] test provider::model::tests::with_prices_replaces_only_listed_models ... ok
[INFO] [stdout] test provider::openai_compat::tests::explicit_session_key_wins_over_derivation ... ok
[INFO] [stdout] test provider::openai_compat::tests::key_survives_a_compaction_marker_replacing_the_head ... ok
[INFO] [stdout] test provider::openai_compat::tests::prompt_cache_key_is_absent_when_caching_is_off ... ok
[INFO] [stdout] test provider::model::tests::test_model_config_zai ... ok
[INFO] [stdout] test provider::openai_compat::tests::prompt_cache_key_is_sent_when_caching_is_enabled ... ok
[INFO] [stdout] test provider::openai_compat::tests::null_as_zero_reads_numbers_unchanged ... ok
[INFO] [stdout] test provider::openai_compat::tests::prompt_cache_key_reaches_only_native_openai ... ok
[INFO] [stdout] test provider::openai_compat::tests::structured_output_sets_json_schema_response_format ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_basic ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_qwen_tools_use_openai_shape ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_deepseek_off_uses_current_api_shape ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_deepseek_thinking_enabled ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_with_tools ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_content_to_openai_filters_empty_text ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_build_request_body_qwen_uses_max_tokens_and_streaming_usage ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_content_to_openai_single_empty_text_filtered ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_content_to_openai_multipart ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_content_to_openai_simple_text ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_ignores_the_openai_effort_caps ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_omits_reasoning_content_without_tools ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_replays_reasoning_content_with_tools ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_max_reaches_the_max_rung_and_xhigh_does_not ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_effort_caps_deserialize_to_legacy_defaults ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_usage_cache_fields_parse ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_deepseek_lower_levels_are_unchanged ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_effort_ceiling_max_sends_max_only_for_max ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_effort_ceiling_xhigh_sends_xhigh_for_xhigh_and_max ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_off_bodies_are_byte_identical_to_pre_176_for_capped_presets ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_gpt_5_5_preset_reaches_xhigh_and_omits_effort_for_off ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_off_omits_reasoning_effort_on_every_ceiling ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_ollama_inserts_assistant_after_tool_result_run ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_ollama_inserts_one_assistant_after_multiple_tool_results ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_ollama_does_not_insert_assistant_before_existing_assistant ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_openai_xhigh_and_max_clamp_to_high ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_other_providers_never_send_reasoning_content ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_replays_reasoning_content_is_deepseek_only_among_presets ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_tool_result_text_only_uses_string ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_tool_result_with_image ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_usage_cache_write_tokens_parsed_and_excluded_from_input ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_presets_without_effort_caps_send_byte_identical_bodies ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_usage_tolerates_explicit_nulls ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_usage_without_cache_write_tokens_is_unchanged ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_xai_sends_reasoning_effort ... ok
[INFO] [stdout] test provider::openai_compat::tests::ungated_provider_sends_no_key_even_when_set_explicitly ... ok
[INFO] [stdout] test provider::openai_responses::tests::compat_ceiling_is_honoured ... ok
[INFO] [stdout] test provider::openai_responses::tests::gpt_6_astra_reaches_max_and_never_sends_none ... ok
[INFO] [stdout] test provider::openai_responses::tests::gpt_6_sol_and_luna_omit_effort_for_off ... ok
[INFO] [stdout] test provider::openai_responses::tests::off_bodies_are_byte_identical_to_the_uncapped_body_for_every_preset ... ok
[INFO] [stdout] test provider::openai_responses::tests::without_compat_the_body_is_what_it_always_was ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_xai_off_omits_reasoning_effort ... ok
[INFO] [stdout] test provider::prices::fetch::tests::effective_rates_treat_zero_cache_as_input ... ok
[INFO] [stdout] test provider::prices::fetch::tests::skips_what_it_cannot_express ... ok
[INFO] [stdout] test provider::prices::global::tests::unit_tests_do_not_read_the_env_override ... ok
[INFO] [stdout] test provider::prices::fetch::tests::maps_flat_and_tiered_costs ... ok
[INFO] [stdout] test provider::prices::tests::cache_write_at_input_is_validated ... ok
[INFO] [stdout] test provider::prices::tests::diff_reports_added_removed_and_changed ... ok
[INFO] [stdout] test provider::prices::tests::builtin_parses_and_round_trips ... ok
[INFO] [stdout] test provider::prices::tests::empty_ids_are_invalid_entries ... ok
[INFO] [stdout] test provider::prices::tests::layered_replaces_per_model_and_keeps_the_rest ... ok
[INFO] [stdout] test provider::prices::tests::negative_rates_are_rejected ... ok
[INFO] [stdout] test provider::prices::tests::schema_version_is_checked ... ok
[INFO] [stdout] test provider::prices::tests::tiers_must_ascend ... ok
[INFO] [stdout] test provider::prices::tests::unknown_fields_are_rejected_strictly ... ok
[INFO] [stdout] test provider::prices::tests::unknown_fields_are_returned_leniently ... ok
[INFO] [stdout] test provider::prices::tests::io_and_json_errors_name_their_origin ... ok
[INFO] [stdout] test provider::prices::tests::wire_fields_are_pinned_to_the_schema_version ... ok
[INFO] [stdout] test provider::openai_compat::tests::test_redacted_thinking_is_not_replayed_as_reasoning_content ... ok
[INFO] [stdout] test provider::registry::registry_tests::default_registry_covers_all_protocols ... ok
[INFO] [stdout] test provider::registry::registry_tests::default_registry_maps_each_protocol_to_its_own_provider ... ok
[INFO] [stdout] test provider::registry::registry_tests::empty_registry_resolves_nothing ... ok
[INFO] [stdout] test provider::prices::tests::verified_must_be_an_iso_date ... ok
[INFO] [stdout] test provider::registry::resolve_key_tests::test_meta_env_resolution ... ok
[INFO] [stdout] test provider::registry::resolve_key_tests::test_env_resolution ... ok
[INFO] [stdout] test provider::registry::resolve_key_tests::test_deterministic_branches ... ok
[INFO] [stdout] test provider::registry::tests::test_default_registry_has_all_providers ... ok
[INFO] [stdout] test provider::registry::tests::test_registry_protocols ... ok
[INFO] [stdout] test provider::registry::tests::test_custom_registry ... ok
[INFO] [stdout] test provider::responses_stream::tests::usage_tolerates_explicit_nulls ... ok
[INFO] [stdout] test provider::responses_stream::tests::usage_without_details_is_all_uncached ... ok
[INFO] [stdout] test provider::responses_stream::tests::data_only_messages_take_the_event_name_from_type ... ok
[INFO] [stdout] test provider::responses_stream::tests::usage_splits_cache_read_and_write_out_of_input ... ok
[INFO] [stdout] test provider::sigv4::tests::amz_date_formats_utc ... ok
[INFO] [stdout] test provider::sigv4::tests::debug_redacts_secrets ... ok
[INFO] [stdout] test provider::sigv4::tests::empty_payload_hash_is_the_sha256_of_nothing ... ok
[INFO] [stdout] test provider::sigv4::tests::get_slash_pointless_dot_normalized ... ok
[INFO] [stdout] test provider::sigv4::tests::get_slashes_normalized ... ok
[INFO] [stdout] test provider::sigv4::tests::get_unreserved ... ok
[INFO] [stdout] test provider::sigv4::tests::get_vanilla ... ok
[INFO] [stdout] test provider::sigv4::tests::get_vanilla_with_session_token ... ok
[INFO] [stdout] test provider::sigv4::tests::header_values_are_trimmed_and_space_runs_collapsed ... ok
[INFO] [stdout] test provider::sigv4::tests::get_utf8 ... ok
[INFO] [stdout] test provider::sigv4::tests::get_space_unnormalized ... ok
[INFO] [stdout] test provider::sigv4::tests::post_header_key_case ... ok
[INFO] [stdout] test provider::sigv4::tests::paths_that_normalize_to_root ... ok
[INFO] [stdout] test provider::sigv4::tests::post_x_www_form_urlencoded ... ok
[INFO] [stdout] test provider::sigv4::tests::post_vanilla ... ok
[INFO] [stdout] test provider::tool_args::tests::double_encoded_arguments_are_marked ... ok
[INFO] [stdout] test provider::sigv4::tests::wire_encoded_segments_are_encoded_again ... ok
[INFO] [stdout] test provider::tool_args::tests::empty_text_is_a_zero_argument_call ... ok
[INFO] [stdout] test provider::tool_args::tests::malformed_text_is_marked_not_defaulted ... ok
[INFO] [stdout] test provider::tool_args::tests::marker_key_among_other_keys_is_not_the_marker ... ok
[INFO] [stdout] test provider::tool_args::tests::non_object_json_is_marked_not_passed_through ... ok
[INFO] [stdout] test provider::tool_args::tests::null_is_a_zero_argument_call ... ok
[INFO] [stdout] test provider::tool_args::tests::valid_json_passes_through ... ok
[INFO] [stdout] test provider::traits::tests::a_system_prompt_alone_is_enough_to_derive_a_key ... ok
[INFO] [stdout] test provider::traits::tests::azure_no_capacity_mid_stream_is_rate_limited_not_overflow ... ok
[INFO] [stdout] test provider::traits::tests::blank_explicit_session_key_is_treated_as_unset ... ok
[INFO] [stdout] test provider::traits::tests::classify_auth_error ... ok
[INFO] [stdout] test provider::traits::tests::classify_bedrock_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_anthropic_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_google_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_empty_body_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_groq_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_rate_limit ... ok
[INFO] [stdout] test provider::traits::tests::classify_regular_api_error ... ok
[INFO] [stdout] test provider::traits::tests::classify_xai_overflow ... ok
[INFO] [stdout] test provider::traits::tests::classify_openai_overflow ... ok
[INFO] [stdout] test provider::traits::tests::derived_key_ignores_everything_after_the_first_user_message ... ok
[INFO] [stdout] test provider::traits::tests::distinct_system_prompts_derive_distinct_keys ... ok
[INFO] [stdout] test provider::traits::tests::derived_key_survives_compaction_that_rewrites_the_head ... ok
[INFO] [stdout] test provider::traits::tests::empty_system_prompt_yields_no_key ... ok
[INFO] [stdout] test provider::traits::tests::http_429_is_rate_limited_even_with_an_overflow_phrase ... ok
[INFO] [stdout] test provider::traits::tests::manual_with_all_flags_off_sends_no_key ... ok
[INFO] [stdout] test provider::traits::tests::non_overflow_messages ... ok
[INFO] [stdout] test provider::traits::tests::explicit_session_key_is_returned_verbatim ... ok
[INFO] [stdout] test provider::traits::tests::overflow_message_case_insensitive ... ok
[INFO] [stdout] test provider::traits::tests::parse_retry_after_fractional_seconds ... ok
[INFO] [stdout] test provider::traits::tests::parse_retry_after_missing_header ... ok
[INFO] [stdout] test provider::traits::tests::parse_retry_after_rejects_http_date ... ok
[INFO] [stdout] test provider::traits::tests::parse_retry_after_rejects_negative ... ok
[INFO] [stdout] test provider::traits::tests::non_text_content_does_not_affect_the_key ... ok
[INFO] [stdout] test provider::traits::tests::parse_retry_after_whole_seconds ... ok
[INFO] [stdout] test provider::traits::tests::sessions_sharing_a_system_prompt_share_a_key_by_design ... ok
[INFO] [stdout] test provider::traits::tests::session_key_is_none_when_caching_is_off ... ok
[INFO] [stdout] test provider::traits::tests::sse_overflow_and_plain_errors_are_unchanged ... ok
[INFO] [stdout] test provider::traits::tests::structured_rate_limit_codes_in_sse_errors ... ok
[INFO] [stdout] test retry::attempt_indexing::backoff_grows_with_the_attempt_number ... ok
[INFO] [stdout] test retry::attempt_indexing::a_zero_attempt_does_not_panic ... ok
[INFO] [stdout] test shared_state::tests::test_capacity_limit ... ok
[INFO] [stdout] test shared_state::tests::test_concurrent_access ... ok
[INFO] [stdout] test shared_state::tests::test_file_backend_key_encoding ... ok
[INFO] [stdout] test shared_state::tests::test_get_set_remove ... ok
[INFO] [stdout] test shared_state::tests::test_keys_sorted ... ok
[INFO] [stdout] test shared_state::tests::test_file_backend ... ok
[INFO] [stdout] test shared_state::tests::test_overwrite_same_key ... ok
[INFO] [stdout] test shared_state::tests::test_summary_formatting ... ok
[INFO] [stdout] test shared_state::tests::test_with_backend ... ok
[INFO] [stdout] test skills::tests::empty_when_no_skills ... ok
[INFO] [stdout] test shared_state::tests::test_overwrite_within_capacity ... ok
[INFO] [stdout] test skills::tests::error_on_missing_description ... ok
[INFO] [stdout] test skills::tests::error_on_missing_name ... ok
[INFO] [stdout] test skills::tests::error_on_missing_frontmatter ... ok
[INFO] [stdout] test skills::tests::format_for_prompt_xml ... ok
[INFO] [stdout] test skills::tests::load_real_agentskills_format ... ok
[INFO] [stdout] test skills::tests::later_dirs_override_earlier ... ok
[INFO] [stdout] test skills::tests::load_skills_from_directory ... ok
[INFO] [stdout] test skills::tests::malformed_override_does_not_remove_valid_skill ... ok
[INFO] [stdout] test skills::tests::merge_skill_sets ... ok
[INFO] [stdout] test skills::tests::quoted_frontmatter_values ... ok
[INFO] [stdout] test skills::tests::resilient_load_collects_all_skill_errors_in_path_order ... ok
[INFO] [stdout] test skills::tests::resilient_load_keeps_valid_skills_and_collects_errors ... ok
[INFO] [stdout] test skills::tests::resilient_load_reports_unreadable_root_path ... ok
[INFO] [stdout] test skills::tests::skips_dirs_without_skill_md ... ok
[INFO] [stdout] test skills::tests::skips_nonexistent_dirs ... ok
[INFO] [stdout] test skills::tests::valid_override_still_wins_in_resilient_load ... ok
[INFO] [stdout] test skills::tests::xml_escaping ... ok
[INFO] [stdout] test tools::sandbox::tests::empty_sandbox_allows_anything ... ok
[INFO] [stdout] test tools::sandbox::tests::error_does_not_disclose_the_allowed_roots ... ok
[INFO] [stdout] test tools::sandbox::tests::inside_allowed_root_passes_outside_is_rejected ... ok
[INFO] [stdout] test skills::tests::resilient_load_isolates_invalid_utf8 ... ok
[INFO] [stdout] test tools::sandbox::tests::nonexistent_path_outside_root_is_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::symlink_out_of_the_root_is_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::traversal_out_of_the_root_is_rejected ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_get_missing_key ... ok
[INFO] [stdout] test tools::sandbox::tests::nonexistent_file_under_allowed_root_is_permitted ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_invalid_action ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_list ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_missing_params ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_set_and_get ... ok
[INFO] [stdout] test types::spend_rollup_tests::record_turn_free_model_prices_at_zero ... ok
[INFO] [stdout] test types::spend_rollup_tests::record_turn_priced_then_unpriced_is_unknown ... ok
[INFO] [stdout] test types::spend_rollup_tests::record_turn_sums_priced_turns_and_ignores_empty_unpriced_ones ... ok
[INFO] [stdout] test types::spend_rollup_tests::record_turn_unpriced_then_priced_is_unknown ... ok
[INFO] [stdout] test types::spend_rollup_tests::usage_sums_saturate_instead_of_overflowing ... ok
[INFO] [stdout] test tools::shared_state_tool::tests::test_remove ... ok
[INFO] [stdout] test types::wire_tag_freeze::every_delta_variant_is_frozen_tagged_and_round_trips ... ok
[INFO] [stdout] test types::thinking_level_tests::serde_names_are_lowercase_and_old_values_still_load ... ok
[INFO] [stdout] test types::wire_tag_freeze::every_event_variant_is_frozen_tagged_and_round_trips ... ok
[INFO] [stdout] test provider::sse::tests::a_failed_stream_is_never_reopened ... ok
[INFO] [stdout] test llm_compaction::tests::a_non_stop_summary_is_rejected_not_spliced ... ok
[INFO] [stdout] test provider::bedrock::tests::byte_stream_is_buffered_across_arbitrary_chunks ... ok
[INFO] [stdout] test llm_compaction::tests::the_safety_net_preserves_the_briefing_it_paid_for ... ok
[INFO] [stdout] test llm_compaction::tests::feeding_the_result_back_still_splices ... ok
[INFO] [stdout] test llm_compaction::tests::splice_never_orphans_a_parallel_tool_call ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 418 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.41s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agent_loop_test.rs (/opt/rustwide/target/debug/deps/agent_loop_test-bc4bfdd9e64a2495)
[INFO] [stdout] 
[INFO] [stdout] running 90 tests
[INFO] [stdout] test a_batch_reports_its_most_severe_verdict ... ok
[INFO] [stdout] test agent_end_carries_a_summed_session_rollup ... ok
[INFO] [stdout] test a_truncated_output_is_stashed_and_the_marker_names_the_key ... ok
[INFO] [stdout] test a_partially_truncated_result_keys_the_right_block ... ok
[INFO] [stdout] test a_length_turn_with_a_truncated_call_is_answered_and_the_loop_continues ... ok
[INFO] [stdout] test a_failed_stash_leaves_an_unkeyed_marker ... ok
[INFO] [stdout] test a_zero_threshold_disables_the_check ... ok
[INFO] [stdout] test a_steer_nudge_does_not_orphan_the_tool_calls_it_interrupts ... ok
[INFO] [stdout] test an_abort_actually_halts_the_run ... ok
[INFO] [stdout] test a_no_op_compaction_is_not_counted ... ok
[INFO] [stdout] test agent_with_shared_state_registers_the_tool_and_wires_the_sink ... ok
[INFO] [stdout] test an_in_place_rewrite_is_counted_despite_an_unchanged_message_count ... ok
[INFO] [stdout] test an_abort_answers_its_outstanding_tool_calls_before_stopping ... ok
[INFO] [stdout] test an_attempt_the_provider_closed_is_not_closed_again ... ok
[INFO] [stdout] test an_attempt_that_failed_before_starting_is_not_closed ... ok
[INFO] [stdout] test cancelling_during_the_backoff_aborts_the_turn_without_retrying ... ok
[INFO] [stdout] test cost_accrues_when_rates_are_configured_and_stays_none_otherwise ... ok
[INFO] [stdout] test compaction_headroom_ratio_reaches_the_strategy ... ok
[INFO] [stdout] test detection_can_be_switched_off ... ok
[INFO] [stdout] test an_image_only_result_stashes_nothing ... ok
[INFO] [stdout] test archived_agent_end_without_stats_still_deserializes ... ok
[INFO] [stdout] test an_interleaved_different_call_resets_the_counter ... ok
[INFO] [stdout] test an_exhausted_retry_closes_the_last_attempt_with_the_returned_error ... ok
[INFO] [stdout] test embedded_stream_error_emits_balanced_start_and_end_events ... ok
[INFO] [stdout] test double_encoded_arguments_are_answered_not_run ... ok
[INFO] [stdout] test distinct_arguments_never_trip ... ok
[INFO] [stdout] test identical_calls_within_one_batch_trip_the_detector ... ok
[INFO] [stdout] test each_text_block_gets_its_own_key_and_resolves_to_itself ... ok
[INFO] [stdout] test loop_detection_is_enabled_by_default ... ok
[INFO] [stdout] test key_order_does_not_disguise_a_repeat ... ok
[INFO] [stdout] test loop_detection_messages_are_clean_prose ... ok
[INFO] [stdout] test failed_attempts_are_forwarded_completely_closed_and_marked_as_retried ... ok
[INFO] [stdout] test malformed_but_complete_arguments_are_not_called_cut_off ... ok
[INFO] [stdout] test parallel_truncated_results_each_get_a_resolvable_key ... ok
[INFO] [stdout] test on_append_capping_can_be_turned_off ... ok
[INFO] [stdout] test output_that_fits_is_not_stashed ... ok
[INFO] [stdout] test rollup_accumulates_across_every_turn ... ok
[INFO] [stdout] test repeated_identical_calls_steer_then_abort ... ok
[INFO] [stdout] test per_tool_override_exempts_a_tool_from_capping ... ok
[INFO] [stdout] test rollup_of_an_empty_run_is_zero_not_nan ... ok
[INFO] [stdout] test steering_queued_after_tool_execution_reaches_the_next_turn ... ok
[INFO] [stdout] test test_abort_cancels_loop ... ok
[INFO] [stdout] test alternating_calls_are_not_detected_by_design ... ok
[INFO] [stdout] test steered_signatures_are_tracked_independently ... ok
[INFO] [stdout] test test_calibration_floor_prevents_budget_collapse ... ok
[INFO] [stdout] test test_before_turn_can_abort ... ok
[INFO] [stdout] test test_calibration_subtracts_measured_overhead ... ok
[INFO] [stdout] test test_continue_from_tool_result ... ok
[INFO] [stdout] test test_after_turn_receives_messages ... ok
[INFO] [stdout] test test_execution_limit_counts_cached_tokens ... ok
[INFO] [stdout] test test_callbacks_are_optional ... ok
[INFO] [stdout] test test_filter_chain_first_reject_wins ... ok
[INFO] [stdout] test test_custom_compaction_strategy_is_called ... ok
[INFO] [stdout] test test_filter_pass_message_goes_through ... ok
[INFO] [stdout] test test_filter_non_text_content_only_text_extracted ... ok
[INFO] [stdout] test test_filter_warn_injects_warning_message ... ok
[INFO] [stdout] test test_filter_multiple_warns_accumulate ... ok
[INFO] [stdout] test test_message_update_events_emitted_during_streaming ... ok
[INFO] [stdout] test test_on_error_fires_on_provider_error ... ok
[INFO] [stdout] test test_none_compaction_strategy_uses_default ... ok
[INFO] [stdout] test test_no_retry_on_auth_error ... ok
[INFO] [stdout] test test_parallel_tools_progress_distinguishable ... ok
[INFO] [stdout] test test_default_compaction_matches_compact_messages ... ok
[INFO] [stdout] test test_on_update_still_works_after_refactor ... ok
[INFO] [stdout] test test_retry_none_disables_retries ... ok
[INFO] [stdout] test test_progress_message_event_emitted ... ok
[INFO] [stdout] test test_filter_reject_returns_empty ... ok
[INFO] [stdout] test test_simple_text_response ... ok
[INFO] [stdout] test test_tool_call_and_response ... ok
[INFO] [stdout] test test_tool_call_with_provider_metadata_executes ... ok
[INFO] [stdout] test test_tool_error_is_reported ... ok
[INFO] [stdout] test test_tool_execution_update_events_emitted ... ok
[INFO] [stdout] test test_tool_ignoring_progress_no_panic ... ok
[INFO] [stdout] test failed_attempts_are_deterministic_on_a_multi_threaded_runtime ... ok
[INFO] [stdout] test the_threshold_trips_on_the_nth_consecutive_call ... ok
[INFO] [stdout] test test_unknown_tool_reports_error ... ok
[INFO] [stdout] test test_retry_on_rate_limit_succeeds ... ok
[INFO] [stdout] test tool_output_is_capped_on_append_when_enabled ... ok
[INFO] [stdout] test tool_output_is_capped_on_append_by_default ... ok
[INFO] [stdout] test test_retry_exhausted_returns_error ... ok
[INFO] [stdout] test unparsed_tool_arguments_are_not_executed ... ok
[INFO] [stdout] test total_tokens_is_not_summed_into_the_rollup ... ok
[INFO] [stdout] test turn_delay_is_skipped_first_then_applied_between_turns ... ok
[INFO] [stdout] test tool_output_is_untouched_without_a_context_config ... ok
[INFO] [stdout] test without_a_sink_truncation_is_unchanged ... ok
[INFO] [stdout] test with_shared_state_is_idempotent ... ok
[INFO] [stdout] test test_parallel_tool_execution_faster_than_sequential ... ok
[INFO] [stdout] test provider_retry_reports_the_error_and_the_delay ... ok
[INFO] [stdout] test test_batched_tool_execution ... ok
[INFO] [stdout] test test_sequential_tool_execution_is_slower ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agent_test.rs (/opt/rustwide/target/debug/deps/agent_test-fce4e1a0914420ac)
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test test_agent_builder_pattern ... ok
[INFO] [stdout] test session_cost_usd_zero_for_free_model ... ok
[INFO] [stdout] test session_cost_usd_none_when_rates_unconfigured ... ok
[INFO] [stdout] test session_cost_usd_none_without_model_config ... ok
[INFO] [stdout] test session_cost_usd_sums_assistant_turns_only ... ok
[INFO] [stdout] test test_agent_reset ... ok
[INFO] [stdout] test session_cost_usd_none_for_legacy_all_zero_cost ... ok
[INFO] [stdout] test test_agent_continues_after_restore ... ok
[INFO] [stdout] test test_explicit_api_key_wins_over_env ... ok
[INFO] [stdout] test test_env_var_fallback_resolves_api_key ... ok
[INFO] [stdout] test test_from_provider_runs_end_to_end ... ok
[INFO] [stdout] test test_agent_simple_prompt ... ok
[INFO] [stdout] test test_from_config_resolves_env_key ... ok
[INFO] [stdout] test test_model_config_mock_is_unpriced ... ok
[INFO] [stdout] test test_middleware_never_sees_synthetic_structured_tool ... ok
[INFO] [stdout] test test_agent_with_tools ... ok
[INFO] [stdout] test test_prompt_messages_with_sender ... ok
[INFO] [stdout] test test_native_structured_output_executes_schema_named_user_tool ... ok
[INFO] [stdout] test test_continue_loop_with_sender ... ok
[INFO] [stdout] test test_prompt_structured_never_parses_stale_history ... ok
[INFO] [stdout] test test_prompt_structured_parse_error_carries_raw ... ok
[INFO] [stdout] test test_prompt_structured_strips_markdown_fences ... ok
[INFO] [stdout] test test_prompt_structured_parses_text_json ... ok
[INFO] [stdout] test test_prompt_structured_reports_a_cancelled_call_as_provider_error ... ok
[INFO] [stdout] test test_prompt_structured_schema_reaches_provider_then_resets ... ok
[INFO] [stdout] test test_prompt_structured_surfaces_provider_error ... ok
[INFO] [stdout] test test_prompt_with_sender_streams_events ... ok
[INFO] [stdout] test test_queue_inspection_and_take ... ok
[INFO] [stdout] test test_prompt_structured_unwraps_forced_tool_call ... ok
[INFO] [stdout] test test_from_config_with_errors_on_empty_registry ... ok
[INFO] [stdout] test test_save_and_restore_messages ... ok
[INFO] [stdout] test test_set_model_preserves_explicit_provider_and_key ... ok
[INFO] [stdout] test test_prompt_with_sender_tools_restored ... ok
[INFO] [stdout] test test_set_model_switches_model_id ... ok
[INFO] [stdout] test test_tool_middleware_deny_blocks_tool_and_loop_continues ... ok
[INFO] [stdout] test test_tool_middleware_chain_first_deny_wins ... ok
[INFO] [stdout] test test_tool_middleware_deny_under_batched_strategy ... ok
[INFO] [stdout] test test_prompt_with_sender_real_time_streaming ... ok
[INFO] [stdout] test test_drop_aborts_in_flight_tool_and_closes_channel ... ok
[INFO] [stdout] test test_from_config_wires_model_and_config ... ok
[INFO] [stdout] test test_tool_middleware_modify_rewrites_args ... ok
[INFO] [stdout] test test_tool_middleware_deny_under_sequential_strategy ... ok
[INFO] [stdout] test test_with_messages_builder ... ok
[INFO] [stdout] test test_tool_middleware_panic_denies_and_loop_survives ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/anthropic_stream_test.rs (/opt/rustwide/target/debug/deps/anthropic_stream_test-f227466a41ddf6bc)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test bearer_auth_sends_authorization_and_no_x_api_key ... ok
[INFO] [stdout] test an_unrecognized_stop_reason_is_logged ... ok
[INFO] [stdout] test a_healthy_sibling_tool_call_does_not_dangle ... ok
[INFO] [stdout] test clean_eof_guard_rejects_unterminated_tool_call ... ok
[INFO] [stdout] test a_zero_argument_tool_call_is_usable_not_malformed ... ok
[INFO] [stdout] test context_window_exceeded_maps_to_overflow_error ... ok
[INFO] [stdout] test content_block_stop_without_an_index_does_not_close_block_zero ... ok
[INFO] [stdout] test a_trailing_empty_delta_preserves_stop_reason_and_usage ... ok
[INFO] [stdout] test message_delta_without_usage_still_yields_its_stop_reason ... ok
[INFO] [stdout] test default_auth_sends_x_api_key ... ok
[INFO] [stdout] test intermediate_message_delta_does_not_arm_the_clean_eof_guard ... ok
[INFO] [stdout] test an_unfinalized_tool_call_never_reaches_the_caller ... ok
[INFO] [stdout] test a_healthy_turn_logs_no_stop_reason_warning ... ok
[INFO] [stdout] test malformed_tool_arguments_fail_the_turn_instead_of_defaulting ... ok
[INFO] [stdout] test provider_comes_from_model_config_not_hardcoded ... ok
[INFO] [stdout] test pause_turn_is_reported_as_incomplete_rather_than_finished ... ok
[INFO] [stdout] test prompt_structured_on_opus_5_5_uses_native_output_format ... ok
[INFO] [stdout] test end_turn_and_stop_sequence_are_recognized_stop_reasons ... ok
[INFO] [stdout] test rate_limit_carries_retry_after_from_header ... ok
[INFO] [stdout] test redacted_thinking_from_another_provider_is_not_replayed_to_anthropic ... ok
[INFO] [stdout] test redacted_thinking_is_kept_in_order_without_a_placeholder ... ok
[INFO] [stdout] test refusal_stop_reason_maps_to_refusal_with_error_message ... ok
[INFO] [stdout] test stream_ended_after_stop_reason_is_clean_eof ... ok
[INFO] [stdout] test stream_ended_without_stop_reason_is_retryable_network_error ... ok
[INFO] [stdout] test unrecognized_stop_reason_falls_back_to_a_normal_stop ... ok
[INFO] [stdout] test user_authorization_header_suppresses_x_api_key ... ok
[INFO] [stdout] test unknown_block_types_are_skipped_without_shifting_later_blocks ... ok
[INFO] [stdout] test redacted_thinking_is_replayed_unmodified_in_the_next_request ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.87s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/azure_openai_test.rs (/opt/rustwide/target/debug/deps/azure_openai_test-13a04b1838fee17e)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test resource_root_base_url_posts_to_v1_responses_with_api_key ... ok
[INFO] [stdout] test openai_v1_base_url_with_trailing_slash_is_not_doubled ... ok
[INFO] [stdout] test entra_id_bearer_without_a_key_sends_no_api_key_header ... ok
[INFO] [stdout] test legacy_deployment_base_url_still_works_and_names_the_deployment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bedrock_auth_test.rs (/opt/rustwide/target/debug/deps/bedrock_auth_test-49faa2b742c92910)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test bedrock_protocol_ignores_generic_api_key_env_vars ... ok
[INFO] [stdout] test agent_from_config_signs_with_env_credentials ... ok
[INFO] [stdout] test bearer_token_env_var_wins_over_iam_env_credentials ... ok
[INFO] [stdout] test explicit_authorization_header_wins ... ok
[INFO] [stdout] test colliding_user_header_on_the_sigv4_path_sends_nothing ... ok
[INFO] [stdout] test bedrock_api_key_is_a_bearer_token ... ok
[INFO] [stdout] test iam_credentials_sign_the_request_sent ... ok
[INFO] [stdout] test iam_credentials_from_the_environment ... ok
[INFO] [stdout] test malformed_iam_key_is_an_error_and_nothing_is_sent ... ok
[INFO] [stdout] test malformed_keys_send_nothing ... ok
[INFO] [stdout] test iam_credentials_without_session_token ... ok
[INFO] [stdout] test no_credentials_is_an_error_and_nothing_is_sent ... ok
[INFO] [stdout] test sigv4_without_a_region_is_an_error_and_nothing_is_sent ... ok
[INFO] [stdout] test signature_expired_suggests_checking_the_clock ... ok
[INFO] [stdout] test trailing_slash_on_base_url_is_trimmed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bedrock_stream_test.rs (/opt/rustwide/target/debug/deps/bedrock_stream_test-f8994c9c99f25cd5)
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] test context_window_exceeded_stop_is_an_overflow ... ok
[INFO] [stdout] test connection_dropped_mid_stream_is_an_error ... ok
[INFO] [stdout] test drop_before_metadata_is_an_error ... ok
[INFO] [stdout] test closed_block_without_input_is_a_zero_argument_call ... ok
[INFO] [stdout] test crc_mismatch_is_an_error ... ok
[INFO] [stdout] test empty_body_is_an_error_not_an_empty_turn ... ok
[INFO] [stdout] test error_frame_with_throttling_code_is_a_rate_limit ... ok
[INFO] [stdout] test http_error_names_the_aws_error_type ... ok
[INFO] [stdout] test chunked_tool_input_runs_with_the_full_arguments ... ok
[INFO] [stdout] test drop_after_a_complete_response_keeps_it ... ok
[INFO] [stdout] test interleaved_tool_calls_accumulate_by_block_index ... ok
[INFO] [stdout] test frames_split_across_network_chunks_at_awkward_offsets ... ok
[INFO] [stdout] test http_errors_are_classified ... ok
[INFO] [stdout] test model_stream_error_exception_mid_stream_is_an_error ... ok
[INFO] [stdout] test max_tokens_is_length ... ok
[INFO] [stdout] test last_metadata_wins ... ok
[INFO] [stdout] test json_success_body_is_an_error ... ok
[INFO] [stdout] test json_lines_body_is_an_error ... ok
[INFO] [stdout] test guardrail_and_content_filter_are_refusals ... ok
[INFO] [stdout] test message_stop_without_metadata_reports_zero_usage ... ok
[INFO] [stdout] test separate_text_blocks_stay_separate ... ok
[INFO] [stdout] test non_eventstream_content_type_reports_the_body ... ok
[INFO] [stdout] test redacted_thinking_from_the_anthropic_api_is_not_replayed_to_bedrock ... ok
[INFO] [stdout] test signature_deltas_are_appended ... ok
[INFO] [stdout] test stream_without_message_stop_is_an_error ... ok
[INFO] [stdout] test server_side_tool_use_is_not_executed ... ok
[INFO] [stdout] test text_across_frames_with_usage_including_cache ... ok
[INFO] [stdout] test throttling_exception_is_a_retryable_rate_limit ... ok
[INFO] [stdout] test redacted_reasoning_is_kept_and_replayed ... ok
[INFO] [stdout] test truncated_frame_at_end_of_body_is_an_error ... ok
[INFO] [stdout] test reasoning_with_signature_is_accumulated_and_replayed ... ok
[INFO] [stdout] test unclosed_tool_block_emits_tool_call_end ... ok
[INFO] [stdout] test unknown_members_and_events_are_skipped ... ok
[INFO] [stdout] test unneeded_fields_may_be_missing ... ok
[INFO] [stdout] test protocol_violations_are_errors ... ok
[INFO] [stdout] test validation_exception_with_overflow_message_is_context_overflow ... ok
[INFO] [stdout] test refusal_or_error_after_a_tool_block_is_not_run ... ok
[INFO] [stdout] test truncated_tool_input_is_answered_with_an_error_not_run ... ok
[INFO] [stdout] test unclosed_tool_block_is_never_runnable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.57s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/context_cache_test.rs (/opt/rustwide/target/debug/deps/context_cache_test-44fc0303b7a084fe)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test read_output_is_exempt_from_head_tail_truncation ... ok
[INFO] [stdout] test repeated_compaction_of_settled_history_is_a_no_op ... ok
[INFO] [stdout] test compaction_is_deterministic ... ok
[INFO] [stdout] test compaction_does_not_fire_every_turn_once_over_budget ... ok
[INFO] [stdout] test compaction_preserves_the_prefix_cache_across_a_long_session ... ok
[INFO] [stdout] test headroom_policy_holds_the_compaction_interval_across_session_lengths ... ok
[INFO] [stdout] test defaults_beat_the_legacy_settings ... ok
[INFO] [stdout] test unbounded_read_pages_cost_cache ... ok
[INFO] [stdout] test report_cost_for_docs has been running for over 60 seconds
[INFO] [stdout] test report_cost_for_docs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 62.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/gasp_test.rs (/opt/rustwide/target/debug/deps/gasp_test-00e6fef3bb859642)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/google_stream_test.rs (/opt/rustwide/target/debug/deps/google_stream_test-a2927257c3a46fed)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test safety_finish_reason_maps_to_refusal ... ok
[INFO] [stdout] test cached_tokens_are_not_double_counted_in_usage ... ok
[INFO] [stdout] test thought_signature_round_trips_and_synthetic_id_is_stripped ... ok
[INFO] [stdout] test thought_parts_map_to_thinking_content ... ok
[INFO] [stdout] test text_deltas_accumulate_across_events ... ok
[INFO] [stdout] test empty_text_part_does_not_swallow_function_call ... ok
[INFO] [stdout] test in_stream_error_payload_fails_the_stream ... ok
[INFO] [stdout] test function_call_with_thought_signature_is_captured ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/hooks_test.rs (/opt/rustwide/target/debug/deps/hooks_test-a30fd40c94c85290)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test a_short_reply_carries_the_exchange_it_answers ... ok
[INFO] [stdout] test a_short_new_command_stands_alone ... ok
[INFO] [stdout] test a_compaction_boundary_is_never_crossed ... ok
[INFO] [stdout] test a_sub_agent_turn_hook_notes_its_own_requests ... ok
[INFO] [stdout] test a_question_mark_inside_code_or_urls_is_not_a_question ... ok
[INFO] [stdout] test a_sub_agent_async_filter_can_reject_or_warn ... ok
[INFO] [stdout] test a_tool_call_request_can_be_built_outside_the_loop ... ok
[INFO] [stdout] test compacted_history_does_not_yield_summary_text ... ok
[INFO] [stdout] test loop_injected_messages_are_not_the_user_request ... ok
[INFO] [stdout] test an_async_filter_called_synchronously_fails_closed ... ok
[INFO] [stdout] test a_hook_returning_none_leaves_the_request_unchanged ... ok
[INFO] [stdout] test several_run_prompts_are_labelled ... ok
[INFO] [stdout] test middleware_sees_the_conversation_and_latest_user_text ... ok
[INFO] [stdout] test raw_loop_callers_wrap_the_provider ... ok
[INFO] [stdout] test user_request_parts_match_the_prose ... ok
[INFO] [stdout] test sync_and_async_filters_share_one_ordered_list ... ok
[INFO] [stdout] test async_input_filter_rejects_before_the_model_is_called ... ok
[INFO] [stdout] test an_image_only_latest_message_stops_the_search ... ok
[INFO] [stdout] test async_input_filter_warns_and_passes ... ok
[INFO] [stdout] test a_panicking_async_filter_rejects_and_the_agent_keeps_its_tools ... ok
[INFO] [stdout] test turn_hook_adds_a_transient_note_to_the_latest_user_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_anthropic.rs (/opt/rustwide/target/debug/deps/integration_anthropic-d4229e4046052a13)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_anthropic_multi_turn ... ignored
[INFO] [stdout] test test_anthropic_simple_text ... ignored
[INFO] [stdout] test test_anthropic_tool_use ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_gemini.rs (/opt/rustwide/target/debug/deps/integration_gemini-00c77567bcfc2839)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_gemini_simple_text ... ignored
[INFO] [stdout] test test_gemini_tool_use ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_opencode.rs (/opt/rustwide/target/debug/deps/integration_opencode-80f98b3ad2faffef)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_opencode_zen_anthropic_messages ... ignored
[INFO] [stdout] test test_opencode_zen_chat_completions ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mcp_http_chunking_test.rs (/opt/rustwide/target/debug/deps/mcp_http_chunking_test-d804ebedee6b1f91)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test unterminated_final_event_after_a_notification_is_parsed ... ok
[INFO] [stdout] test bare_cr_framing_is_supported ... ok
[INFO] [stdout] test multibyte_character_split_across_chunks_is_not_corrupted ... ok
[INFO] [stdout] test event_boundary_split_across_chunks_is_still_found ... ok
[INFO] [stdout] test crlf_boundary_split_mid_sequence_is_normalized ... ok
[INFO] [stdout] test byte_at_a_time_delivery_assembles_correctly ... ok
[INFO] [stdout] test truncation_after_the_answer_still_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mcp_http_streaming_test.rs (/opt/rustwide/target/debug/deps/mcp_http_streaming_test-a225bf5862126491)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test returns_without_waiting_for_the_server_to_close_the_stream ... ok
[INFO] [stdout] test returns_at_the_result_frame_despite_leading_notifications ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mcp_http_transport_test.rs (/opt/rustwide/target/debug/deps/mcp_http_transport_test-02eb9ef1c82be0d5)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test accept_header_advertises_both_framings ... ok
[INFO] [stdout] test accepted_with_empty_body_is_not_an_error ... ok
[INFO] [stdout] test close_without_a_session_sends_nothing ... ok
[INFO] [stdout] test close_ignores_a_server_that_rejects_delete ... ok
[INFO] [stdout] test bom_prefixed_plain_json_body_still_parses ... ok
[INFO] [stdout] test e2e_handshake_over_streamable_http ... ok
[INFO] [stdout] test close_deletes_the_session_when_one_exists ... ok
[INFO] [stdout] test bare_ack_frame_does_not_shadow_the_response ... ok
[INFO] [stdout] test empty_body_on_plain_200_is_an_error ... ok
[INFO] [stdout] test notification_frames_do_not_shadow_the_response ... ok
[INFO] [stdout] test expired_session_is_cleared_and_named ... ok
[INFO] [stdout] test frame_with_both_method_and_result_is_not_the_response ... ok
[INFO] [stdout] test plain_json_response_still_parses ... ok
[INFO] [stdout] test non_2xx_preserves_the_server_explanation ... ok
[INFO] [stdout] test json_rpc_error_over_sse_reaches_the_caller ... ok
[INFO] [stdout] test mismatched_response_id_is_rejected ... ok
[INFO] [stdout] test non_utf8_charset_is_refused_rather_than_mangled ... ok
[INFO] [stdout] test multi_line_data_frames_are_joined ... ok
[INFO] [stdout] test server_initiated_request_does_not_shadow_the_response ... ok
[INFO] [stdout] test sse_framed_response_parses ... ok
[INFO] [stdout] test unparseable_body_is_an_error_with_context ... ok
[INFO] [stdout] test session_id_is_captured_then_replayed ... ok
[INFO] [stdout] test sse_skips_frames_that_are_not_json_rpc ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.66s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/openai_compat_stream_test.rs (/opt/rustwide/target/debug/deps/openai_compat_stream_test-0b217cf14b97920e)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test a_zero_argument_tool_call_is_usable ... ok
[INFO] [stdout] test delta_content_is_not_a_refusal ... ok
[INFO] [stdout] test complete_tool_call_is_still_tool_use ... ok
[INFO] [stdout] test test_stream_ended_without_finish_reason_is_error ... ok
[INFO] [stdout] test test_stream_ended_after_finish_reason_is_clean_eof ... ok
[INFO] [stdout] test length_cut_mid_arguments_keeps_the_length_stop_reason ... ok
[INFO] [stdout] test test_usage_chunk_after_finish_reason_survives_doneless_close ... ok
[INFO] [stdout] test tool_call_arguments_reassemble_across_chunks ... ok
[INFO] [stdout] test content_filter_finish_reason_is_a_refusal ... ok
[INFO] [stdout] test truncated_tool_arguments_are_marked_unparsed_not_defaulted ... ok
[INFO] [stdout] test delta_refusal_is_a_refusal_with_its_text ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/openapi_test.rs (/opt/rustwide/target/debug/deps/openapi_test-7a87930d2983d760)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/prefix_cache_harness.rs (/opt/rustwide/target/debug/deps/prefix_cache_harness-9b32998337183a47)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test compaction_strategies_prefix_stability ... ignored, benchmark: minutes to run; see the module docs for the command
[INFO] [stdout] test llm_compaction_across_turn_sizes ... ignored, benchmark: minutes to run; see the module docs for the command
[INFO] [stderr]      Running tests/preset_prices_test.rs (/opt/rustwide/target/debug/deps/preset_prices_test-da6649a0e982d09c)
[INFO] [stdout] test harness_detects_rewrites_and_only_rewrites ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.80s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test the_pin_detects_a_one_ulp_change ... ok
[INFO] [stdout] test every_preset_output_limit_is_pinned ... ok
[INFO] [stdout] test every_preset_cost_config_is_pinned ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_audit.rs (/opt/rustwide/target/debug/deps/price_audit-b6dd1f3f542f72ba)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test hardcoded_prices_have_not_drifted ... ignored, network: fetches models.dev; run before a release
[INFO] [stdout] test models_dev_source_still_maps ... ignored, network: fetches models.dev; run before a release
[INFO] [stdout] test cost_usd_applies_the_context_tier_by_prompt_size ... ok
[INFO] [stdout] test cache_write_at_input_allowance_is_asserted_both_ways ... ok
[INFO] [stdout] test is_configured_means_any_rate_set ... ok
[INFO] [stdout] test every_priced_preset_is_an_audited_entry ... ok
[INFO] [stdout] test typesafe_decision_price_is_audited_as_explicitly_absent ... ok
[INFO] [stdout] test absent_upstream_accounts_for_every_field ... ok
[INFO] [stdout] test the_audit_logic_runs_offline_against_the_fixture ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_env_bad_test.rs (/opt/rustwide/target/debug/deps/price_env_bad_test-d3fac8b0afe12717)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test a_bad_env_file_is_logged_and_ignored ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_env_test.rs (/opt/rustwide/target/debug/deps/price_env_test-3fcdd3a2b170e71a)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test env_var_file_overrides_what_it_lists_and_is_read_once ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_env_unset_test.rs (/opt/rustwide/target/debug/deps/price_env_unset_test-a1e0ab8b700bcd33)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test an_empty_env_var_is_unset ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_explicit_cost_test.rs (/opt/rustwide/target/debug/deps/price_explicit_cost_test-8f870d64fc917848)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test sub_agent_reprice_replaces_a_constructor_priced_cost ... ok
[INFO] [stdout] test an_explicit_cost_reaches_session_cost_via_from_provider ... ok
[INFO] [stdout] test an_explicit_cost_survives_set_model ... ok
[INFO] [stdout] test agent_reprice_replaces_a_constructor_priced_cost_only ... ok
[INFO] [stdout] test an_explicit_cost_prices_a_sub_agent_run ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_fetch_test.rs (/opt/rustwide/target/debug/deps/price_fetch_test-2b72bd66831b8c20)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test an_expired_cache_is_refetched_and_rewritten ... ok
[INFO] [stdout] test a_changed_models_dev_envelope_is_an_error_not_an_empty_table ... ok
[INFO] [stdout] test a_cache_is_parsed_leniently_and_reports_ignored_fields ... ok
[INFO] [stdout] test a_cache_of_another_source_is_a_miss ... ok
[INFO] [stdout] test a_failed_cache_write_is_reported ... ok
[INFO] [stdout] test a_fresh_cache_is_used_without_a_request ... ok
[INFO] [stdout] test a_future_mtime_is_treated_as_expired ... ok
[INFO] [stdout] test a_timed_out_fetch_falls_back_to_the_cache ... ok
[INFO] [stdout] test fetches_models_dev_format_from_a_url ... ok
[INFO] [stdout] test http_errors_timeouts_and_refused_connections_are_reported ... ok
[INFO] [stdout] test models_dev_fixture_maps_into_our_schema ... ok
[INFO] [stdout] test models_dev_provider_keys_are_renamed ... ok
[INFO] [stdout] test an_unreadable_cache_is_reported ... ok
[INFO] [stdout] test skipping_a_builtin_model_is_named_in_a_warning ... ok
[INFO] [stdout] test offline_falls_back_to_the_stale_cache_then_builtin ... ok
[INFO] [stdout] test source_urls ... ok
[INFO] [stdout] test the_models_dev_report_says_what_was_skipped_and_why ... ok
[INFO] [stdout] test the_yoagent_main_url_names_the_checked_in_file ... ok
[INFO] [stdout] test url_sources_are_parsed_strictly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.48s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/price_override_test.rs (/opt/rustwide/target/debug/deps/price_override_test-ebbf0c5fea7430f7)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test precedence_user_over_fetched_over_builtin ... ok
[INFO] [stdout] test install_override_reports_changes_reverts_and_inert_entries ... ok
[INFO] [stdout] test reprice_repeats_the_constructor_lookup ... ok
[INFO] [stdout] test risky_overrides_are_warned_about ... ok
[INFO] [stdout] test user_override_beats_builtin_per_model ... ok
[INFO] [stdout] test an_override_after_a_fetch_reports_against_the_fetched_price ... ok
[INFO] [stdout] test reprice_ignores_a_config_whose_provider_changed ... ok
[INFO] [stdout] test an_explicit_cost_wins_over_the_layers ... ok
[INFO] [stdout] test configs_resolve_at_construction ... ok
[INFO] [stdout] test install_fetched_reports_against_the_previous_state_and_marks_shadowed ... ok
[INFO] [stdout] test add_only_merges_and_never_overrides ... ok
[INFO] [stdout] test fetched_disagreements_are_logged_and_truncated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/provider_metadata_guard.rs (/opt/rustwide/target/debug/deps/provider_metadata_guard-0ca67885bb430013)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test the_gemini_family_writes_only_the_expected_keys ... ok
[INFO] [stdout] test only_the_gemini_family_writes_provider_metadata ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/reasoning_effort_test.rs (/opt/rustwide/target/debug/deps/reasoning_effort_test-be999f41fb177023)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test gpt_6_astra_off_omits_effort_on_responses_and_azure ... ok
[INFO] [stdout] test gpt_5_5_on_chat_completions_reaches_xhigh_and_omits_effort_for_off ... ok
[INFO] [stdout] test configs_without_the_capability_keep_the_high_clamp ... ok
[INFO] [stdout] test gpt_6_sol_off_omits_effort_and_max_sends_max_on_responses_and_azure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.33s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/refusal_loop_test.rs (/opt/rustwide/target/debug/deps/refusal_loop_test-01a7afcabc25e5eb)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test chat_content_filter_after_a_complete_tool_call_does_not_run_it ... ok
[INFO] [stdout] test prompt_structured_reports_a_refusal_with_its_explanation ... ok
[INFO] [stdout] test responses_refusal_beside_a_function_call_does_not_run_it ... ok
[INFO] [stdout] test positive_control_the_same_tool_call_runs_without_a_refusal ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/responses_rebill_test.rs (/opt/rustwide/target/debug/deps/responses_rebill_test-1d266ec5f3aedfa6)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test response_incomplete_is_terminal_not_retried ... ok
[INFO] [stdout] test response_failed_is_terminal_not_retried ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/responses_stream_test.rs (/opt/rustwide/target/debug/deps/responses_stream_test-b06112a660706e27)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test azure_no_capacity_mid_stream_is_rate_limited ... ok
[INFO] [stdout] test a_refusal_only_in_the_finished_item_is_still_a_refusal ... ok
[INFO] [stdout] test incomplete_mid_arguments_keeps_length_and_marks_the_call ... ok
[INFO] [stdout] test call_with_no_deltas_takes_arguments_from_done ... ok
[INFO] [stdout] test a_refusal_beside_a_function_call_is_not_masked_as_tool_use ... ok
[INFO] [stdout] test from_config_openai_responses_runs_a_function_call_end_to_end ... ok
[INFO] [stdout] test ordinary_text_is_not_a_refusal ... ok
[INFO] [stdout] test parallel_calls_with_interleaved_deltas_route_by_output_index ... ok
[INFO] [stdout] test null_usage_counts_do_not_drop_the_terminal_event ... ok
[INFO] [stdout] test one_function_call_with_chunked_arguments ... ok
[INFO] [stdout] test a_streamed_refusal_is_a_refusal_with_its_text_once ... ok
[INFO] [stdout] test reasoning_summary_becomes_thinking ... ok
[INFO] [stdout] test text_is_collected_once ... ok
[INFO] [stdout] test usage_splits_cached_and_written_tokens_and_prices_each ... ok
[INFO] [stdout] test content_filter_is_a_refusal_and_max_output_tokens_stays_length ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.69s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/serialization_test.rs (/opt/rustwide/target/debug/deps/serialization_test-db1f1e1cd9fff523)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test test_agent_event_fields_are_camel_case ... ok
[INFO] [stdout] test model_config_debug_redacts_header_values_but_keeps_names ... ok
[INFO] [stdout] test test_agent_event_type_tags_are_frozen ... ok
[INFO] [stdout] test stream_config_debug_distinguishes_an_empty_key ... ok
[INFO] [stdout] test stream_config_debug_redacts_the_api_key ... ok
[INFO] [stdout] test model_config_serialization_stays_lossless ... ok
[INFO] [stdout] test redacted_thinking_provenance_roundtrips_and_old_format_loads ... ok
[INFO] [stdout] test test_agent_event_unit_variant_shape ... ok
[INFO] [stdout] test test_agent_message_roundtrip ... ok
[INFO] [stdout] test test_agent_event_every_variant_roundtrips ... ok
[INFO] [stdout] test test_agent_event_forward_compat_deserialization ... ok
[INFO] [stdout] test test_agent_event_deserializes_from_raw_json ... ok
[INFO] [stdout] test test_extension_message_roundtrip ... ok
[INFO] [stdout] test test_message_assistant_roundtrip ... ok
[INFO] [stdout] test test_full_conversation_roundtrip ... ok
[INFO] [stdout] test test_legacy_snake_case_payload_still_deserializes ... ok
[INFO] [stdout] test test_message_end_full_payload_shape_is_frozen ... ok
[INFO] [stdout] test test_refusal_stop_reason_round_trip ... ok
[INFO] [stdout] test test_content_variants_roundtrip ... ok
[INFO] [stdout] test test_context_compacted_wire_shape_is_frozen ... ok
[INFO] [stdout] test test_execution_limits_roundtrip ... ok
[INFO] [stdout] test test_tool_execution_strategy_roundtrip ... ok
[INFO] [stdout] test test_message_tool_result_roundtrip ... ok
[INFO] [stdout] test test_message_user_roundtrip ... ok
[INFO] [stdout] test test_provider_retry_payload_shape_is_frozen ... ok
[INFO] [stdout] test test_stream_delta_every_variant_roundtrips ... ok
[INFO] [stdout] test test_stream_delta_type_tags_are_frozen ... ok
[INFO] [stdout] test test_constructors_pin_fields ... ok
[INFO] [stdout] test test_tool_call_with_metadata_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/session_test.rs (/opt/rustwide/target/debug/deps/session_test-fefc4880e728680e)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test checkpoints_label_and_seek ... ok
[INFO] [stdout] test from_jsonl_reports_bad_line ... ok
[INFO] [stdout] test append_new_detects_diverged_history ... ok
[INFO] [stdout] test from_messages_builds_linear_session ... ok
[INFO] [stdout] test linear_append_builds_a_chain ... ok
[INFO] [stdout] test seek_checkpoint_latest_wins_on_duplicate_labels ... ok
[INFO] [stdout] test seek_and_append_forks_without_losing_the_old_branch ... ok
[INFO] [stdout] test seek_unknown_entry_errors ... ok
[INFO] [stdout] test jsonl_roundtrip_preserves_tree_and_ids ... ok
[INFO] [stdout] test from_jsonl_rejects_duplicate_ids ... ok
[INFO] [stdout] test from_jsonl_rejects_dangling_or_forward_parent ... ok
[INFO] [stdout] test fork_edit_rerun_with_agent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/shared_state_test.rs (/opt/rustwide/target/debug/deps/shared_state_test-59ce961bf71aeab5)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test a_budget_too_small_for_a_marker_reports_no_marker ... ok
[INFO] [stdout] test a_scoped_view_cannot_escape_its_scope ... ok
[INFO] [stdout] test a_keyed_marker_survives_re_truncation_byte_for_byte ... ok
[INFO] [stdout] test a_scoped_stash_entry_is_evictable ... ok
[INFO] [stdout] test a_marker_inside_the_tools_own_output_is_left_alone ... ok
[INFO] [stdout] test a_store_of_caller_keys_refuses_rather_than_evicting ... ok
[INFO] [stdout] test scoped_views_cannot_see_or_touch_each_other ... ok
[INFO] [stdout] test stash_key_is_stable_and_collision_resistant ... ok
[INFO] [stdout] test scoped_summary_does_not_disclose_sibling_keys ... ok
[INFO] [stdout] test test_parallel_sub_agents_share_state ... ok
[INFO] [stdout] test lossy_compaction_drops_the_marker_while_the_stash_survives ... ok
[INFO] [stdout] test eviction_never_takes_a_caller_owned_key ... ok
[INFO] [stdout] test file_backend_evicts_the_oldest_stash_entry_to_stay_under_its_cap ... ok
[INFO] [stderr]      Running tests/sub_agent_test.rs (/opt/rustwide/target/debug/deps/sub_agent_test-e35a214516f6bfac)
[INFO] [stdout] test test_shared_state_summary_in_system_prompt ... ok
[INFO] [stdout] test test_sub_agent_writes_shared_state ... ok
[INFO] [stdout] test the_default_backend_does_not_wedge_once_full ... ok
[INFO] [stdout] test test_sub_agent_reads_shared_state ... ok
[INFO] [stdout] test the_parent_still_sees_everything_scopes_write ... ok
[INFO] [stdout] test unscoped_behaviour_is_unchanged ... ok
[INFO] [stdout] test test_sub_agent_without_shared_state_unchanged ... ok
[INFO] [stdout] test an_over_cap_value_is_rejected_and_leaves_the_store_intact ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test is_unpriced_separates_unknown_from_nothing_spent ... ok
[INFO] [stdout] test no_delegation_leaves_the_bucket_empty_and_off_the_wire ... ok
[INFO] [stdout] test failed_sub_agent_still_reports_what_it_spent ... ok
[INFO] [stdout] test custom_tool_reporting_a_delegated_run_is_counted ... ok
[INFO] [stdout] test a_turn_limited_sub_agent_returns_partial_work_and_says_so ... ok
[INFO] [stdout] test agent_exposes_sub_agent_spend_across_runs ... ok
[INFO] [stdout] test a_scoped_sub_agent_stash_resolves_through_its_own_scoped_tool ... ok
[INFO] [stdout] test nested_sub_agent_usage_sums_through_the_tree ... ok
[INFO] [stdout] test test_sub_agent_basic ... ok
[INFO] [stdout] test test_sub_agent_cancellation ... ok
[INFO] [stdout] test a_looping_sub_agent_reports_failure_not_empty_success ... ok
[INFO] [stdout] test test_sub_agent_cancelled_mid_call_fails_the_delegation ... ok
[INFO] [stdout] test test_sub_agent_event_forwarding ... ok
[INFO] [stdout] test test_sub_agent_env_key_fallback ... ok
[INFO] [stdout] test report_delegated_run_without_a_loop_is_a_no_op ... ok
[INFO] [stdout] test sub_agent_usage_reaches_the_parent_in_a_separate_bucket ... ok
[INFO] [stdout] test test_sub_agent_from_provider_construction ... ok
[INFO] [stdout] test test_sub_agent_max_turns ... ok
[INFO] [stdout] test sub_agent_cost_uses_the_childs_own_pricing ... ok
[INFO] [stdout] test test_sub_agent_missing_task_parameter ... ok
[INFO] [stdout] test test_sub_agent_in_parent_loop ... ok
[INFO] [stdout] test test_sub_agent_temperature_reaches_provider ... ok
[INFO] [stdout] test test_sub_agent_from_config_with_errors_on_empty_registry ... ok
[INFO] [stdout] test test_sub_agent_with_empty_skillset_is_noop ... ok
[INFO] [stdout] test test_sub_agent_tool_middleware_denies ... ok
[INFO] [stdout] test test_sub_agent_with_tools ... ok
[INFO] [stdout] test test_sub_agent_from_config_wires_model ... ok
[INFO] [stdout] test test_sub_agent_with_skills ... ok
[INFO] [stdout] test test_sub_agent_with_skills_empty_base_prompt ... ok
[INFO] [stdout] test two_delegations_in_one_call_attach_combined_stats ... ok
[INFO] [stdout] test test_sub_agent_skills_before_shared_state ... ok
[INFO] [stdout] test total_cost_combines_own_and_delegated_spend_over_one_window ... ok
[INFO] [stdout] test unpriced_delegation_makes_the_total_unknown ... ok
[INFO] [stdout] test unpriced_spend_poisons_the_cost_instead_of_under_reporting ... ok
[INFO] [stdout] test total_cost_without_delegation_is_the_agents_own ... ok
[INFO] [stdout] test stashed_output_does_not_leak_into_the_sub_agent_system_prompt ... ok
[INFO] [stdout] test test_sub_agent_parallel ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/telemetry_test.rs (/opt/rustwide/target/debug/deps/telemetry_test-abc4b9d5b1b0cac7)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test llm_stream_records_tokens_and_cost ... ok
[INFO] [stdout] test llm_stream_cost_distinguishes_free_from_unpriced ... ok
[INFO] [stdout] test loop_emits_agent_llm_and_tool_spans ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tool_source_test.rs (/opt/rustwide/target/debug/deps/tool_source_test-9115e7593d3ced98)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test continue_loop_with_sender_consults_the_source_and_drops_its_tools ... ok
[INFO] [stdout] test a_source_whose_tools_change_is_seen_by_the_next_run ... ok
[INFO] [stdout] test a_source_is_consulted_once_per_run_not_per_turn ... ok
[INFO] [stdout] test a_run_after_continue_loop_does_not_keep_the_sourced_tools ... ok
[INFO] [stdout] test a_sub_agent_consults_its_source_per_delegation ... ok
[INFO] [stdout] test the_injected_shared_state_tool_wins_a_collision_and_survives ... ok
[INFO] [stdout] test the_receiver_returning_prompt_also_resolves_and_drops_sourced_tools ... ok
[INFO] [stdout] test the_same_set_in_another_order_offers_an_identical_list ... ok
[INFO] [stdout] test static_tools_win_a_collision_then_earlier_sources ... ok
[INFO] [stdout] test a_parent_abort_interrupts_a_sub_agents_hung_source ... ok
[INFO] [stdout] test a_panicking_source_contributes_nothing_and_the_run_proceeds ... ok
[INFO] [stdout] test a_source_panicking_before_returning_its_future_is_contained ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tools_test.rs (/opt/rustwide/target/debug/deps/tools_test-9020856831af273f)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test test_bash_blocked_command ... ok
[INFO] [stdout] test test_bash_deny_pattern ... ok
[INFO] [stdout] test list_and_search_tools_reject_paths_outside_allowed_roots ... ok
[INFO] [stdout] test read_tool_rejects_paths_outside_allowed_roots ... ok
[INFO] [stdout] test test_bash_cancel ... ok
[INFO] [stdout] test test_default_tools_complete ... ok
[INFO] [stdout] test test_edit_file_no_match ... ok
[INFO] [stdout] test test_read_file_line_numbers ... ok
[INFO] [stdout] test test_read_file_not_found ... ok
[INFO] [stdout] test test_list_files_tool ... ok
[INFO] [stdout] test test_read_file_unbounded_when_max_lines_disabled ... ok
[INFO] [stdout] test test_edit_file ... ok
[INFO] [stdout] test test_read_file_pages_long_files_by_default ... ok
[INFO] [stdout] test test_bash_failure ... ok
[INFO] [stdout] test test_read_text_file_unchanged ... ok
[INFO] [stdout] test test_read_file_with_offset_limit ... ok
[INFO] [stdout] test test_read_jpeg_file ... ok
[INFO] [stdout] test test_read_image_file ... ok
[INFO] [stdout] test test_read_write_file ... ok
[INFO] [stdout] test test_write_creates_directories ... ok
[INFO] [stdout] test test_bash_echo ... ok
[INFO] [stdout] test bash_env_allowlist_hides_other_variables ... ok
[INFO] [stdout] test test_search_pattern ... ok
[INFO] [stdout] test test_search_no_matches ... ok
[INFO] [stdout] test unrestricted_tools_are_unchanged_by_default ... ok
[INFO] [stdout] test write_and_edit_tools_reject_paths_outside_allowed_roots ... ok
[INFO] [stdout] test test_bash_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/wasm32.rs (/opt/rustwide/target/debug/deps/wasm32-dec8a91705a4d92d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests yoagent
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test src/llm_compaction.rs - llm_compaction (line 39) ... ignored
[INFO] [stdout] test src/agent.rs - agent::Agent::from_config (line 183) - compile ... ok
[INFO] [stdout] test src/llm_compaction.rs - llm_compaction::LlmCompaction::with_event_sender (line 708) - compile ... ok
[INFO] [stdout] test src/mcp/mod.rs - mcp (line 7) - compile ... ok
[INFO] [stdout] test src/llm_compaction.rs - llm_compaction (line 203) - compile ... ok
[INFO] [stdout] test src/agent.rs - agent::Agent::prompt_with_sender (line 1129) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 16) - compile ... ok
[INFO] [stdout] test src/provider/prices/fetch.rs - provider::prices::fetch::PriceTable::fetch_cached (line 472) - compile ... ok
[INFO] [stdout] test src/provider/turn_hook.rs - provider::turn_hook::TurnHookProvider (line 16) ... ignored
[INFO] [stdout] test src/provider/prices/global.rs - provider::prices::global::install_fetched_with (line 383) - compile ... ok
[INFO] [stdout] test src/session.rs - session (line 15) - compile ... ok
[INFO] [stdout] test src/shared_state.rs - shared_state (line 9) - compile ... ok
[INFO] [stdout] test src/provider/prices/global.rs - provider::prices::global (line 8) ... ok
[INFO] [stdout] test src/shared_state.rs - shared_state::FileBackend (line 238) - compile ... ok
[INFO] [stdout] test src/skills.rs - skills (line 17) - compile ... ok
[INFO] [stdout] test src/sub_agent.rs - sub_agent (line 19) - compile ... ok
[INFO] [stdout] test src/provider/model.rs - provider::model::CostConfig (line 95) ... ok
[INFO] [stdout] test src/context.rs - context::ContextTracker (line 86) ... ok
[INFO] [stdout] test src/provider/model.rs - provider::model::ModelConfig::with_prices (line 1203) ... ok
[INFO] [stdout] test src/shared_state.rs - shared_state::SharedState (line 541) ... ok
[INFO] [stdout] test src/provider/model.rs - provider::model::ModelConfig::reprice (line 1165) ... ok
[INFO] [stdout] test src/tool_source.rs - tool_source::ToolSource (line 65) ... ok
[INFO] [stdout] test src/provider/traits.rs - provider::traits::StreamConfig (line 38) ... ok
[INFO] [stdout] test src/types.rs - types::Content::thinking_redacted (line 130) ... ok
[INFO] [stdout] test src/types.rs - types::SessionStats (line 1128) ... ok
[INFO] [stdout] test src/tools/sandbox.rs - tools::sandbox (line 14) ... ok
[INFO] [stdout] test src/types.rs - types::ToolCallRequest<'a>::new (line 2184) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 8.47s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb", kill_on_drop: false }`
[INFO] [stdout] eefcba49793f8d2914f08c3b105a787d0bc7acf641278f671420c9942cf211fb
