[INFO] cloning repository https://github.com/dravr-ai/dravr-embache
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dravr-ai/dravr-embache" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdravr-ai%2Fdravr-embache", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdravr-ai%2Fdravr-embache'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f06030a375df19c03da616ece3a98491f65d954f
[INFO] testing dravr-ai/dravr-embache against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdravr-ai%2Fdravr-embache" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/dravr-ai/dravr-embache
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/dravr-ai/dravr-embache
[INFO] tweaked toml for git repo https://github.com/dravr-ai/dravr-embache written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dravr-ai/dravr-embache on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dravr-ai/dravr-embache 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:153:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | homepage = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 | repository = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |              -------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `embacle` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e
[INFO] running `Command { std: "docker" "start" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", 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" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", 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" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:153:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | homepage = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 | repository = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |              -------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `embacle` (manifest) generated 1 warning
[INFO] [stderr]    Compiling unicode-ident v1.0.26
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling which v8.0.6
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling embacle v0.34.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.40s
[INFO] running `Command { std: "docker" "inspect" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", 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" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:153:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | homepage = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 | repository = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |              -------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `embacle` (manifest) generated 1 warning
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling zerocopy v0.8.59
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_lex v1.1.1
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling zerocopy-derive v0.8.59
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling embacle v0.34.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] running `Command { std: "docker" "inspect" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", 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" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:153:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | homepage = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 | repository = "https://github.com/dravr-ai/dravr-embacle"
[INFO] [stderr]     |              -------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `embacle` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/embacle/8461822ec78c8992/out/embacle-8461822ec78c8992)
[INFO] [stdout] 
[INFO] [stdout] running 407 tests
[INFO] [stdout] test agent::tests::on_turn_callback_invoked ... ok
[INFO] [stdout] test agent::tests::max_turns_exhaustion ... ok
[INFO] [stdout] test agent::tests::multi_turn_with_tool_calls ... ok
[INFO] [stdout] test agent::tests::single_turn_no_tool_calls ... ok
[INFO] [stdout] test auth::tests::test_check_env_var_auth_not_found ... ok
[INFO] [stdout] test agent::tests::token_accumulation ... ok
[INFO] [stdout] test auth::tests::test_check_env_var_auth_empty_value_skipped ... ok
[INFO] [stdout] test auth::tests::test_check_env_var_auth_found ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_binary_missing ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_installed_auth_unverified ... ok
[INFO] [stdout] test agent::tests::request_template_preserves_params ... ok
[INFO] [stdout] test auth::tests::test_is_installed_for_not_ready ... ok
[INFO] [stdout] test auth::tests::test_is_installed_for_ready ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_is_ready ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_not_ready ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_unknown ... ok
[INFO] [stdout] test cache::tests::stats_tracking ... ok
[INFO] [stdout] test cache::tests::streaming_bypasses ... ok
[INFO] [stdout] test cache::tests::cache_miss_different_request ... ok
[INFO] [stdout] test capability_guard::tests::allows_images_with_vision_capability ... ok
[INFO] [stdout] test capability_guard::tests::permissive_returns_empty_when_all_supported ... ok
[INFO] [stdout] test auth::tests::test_provider_readiness_display ... ok
[INFO] [stdout] test capability_guard::tests::permissive_returns_multiple_warnings ... ok
[INFO] [stdout] test cache::tests::bypass_nonzero_temp ... ok
[INFO] [stdout] test cache::tests::cache_hit ... ok
[INFO] [stdout] test capability_guard::tests::permissive_returns_warnings_for_temperature ... ok
[INFO] [stdout] test cache::tests::cache_with_temp_configured ... ok
[INFO] [stdout] test cache::tests::eviction_at_capacity ... ok
[INFO] [stdout] test cache::tests::key_determinism ... ok
[INFO] [stdout] test capability_guard::tests::permissive_warns_for_images_without_vision ... ok
[INFO] [stdout] test capability_guard::tests::permissive_returns_warnings_for_max_tokens ... ok
[INFO] [stdout] test capability_guard::tests::permissive_warns_for_tools_without_function_calling ... ok
[INFO] [stdout] test capability_guard::tests::strict_allows_supported_capabilities ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_images_without_vision ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_tools_without_function_calling ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_response_format ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_max_tokens ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_temperature ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_top_p ... ok
[INFO] [stdout] test claude_code::tests::a_low_credit_balance_is_not_a_quota_refusal ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_stop ... ok
[INFO] [stdout] test claude_code::tests::a_result_line_that_is_an_error_fails_the_stream ... ok
[INFO] [stdout] test capability_guard::tests::strict_rejects_unsupported_streaming ... ok
[INFO] [stdout] test claude_code::tests::a_stdio_server_carries_command_args_and_env ... ok
[INFO] [stdout] test claude_code::tests::a_structured_terminal_reason_is_enough_on_its_own ... ok
[INFO] [stdout] test claude_code::tests::a_usage_limit_is_a_quota_refusal_not_a_fault ... ok
[INFO] [stdout] test claude_code::tests::an_http_server_carries_its_headers_as_an_object ... ok
[INFO] [stdout] test claude_code::tests::a_turn_with_no_cache_is_unchanged ... ok
[INFO] [stdout] test claude_code::tests::new_lets_the_cli_credentials_through_the_sandbox ... ok
[INFO] [stdout] test claude_code::tests::every_server_reaches_the_config ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_invalid_json ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_error_flag ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_missing_optional_fields ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_null_result ... ok
[INFO] [stdout] test claude_code::tests::the_api_error_envelope_types_are_recognised ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_valid_json ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_prompt_too_long_via_message_fallback ... ok
[INFO] [stdout] test claude_code::tests::the_allowlist_names_each_server_not_each_tool ... ok
[INFO] [stdout] test claude_code::tests::test_parse_response_prompt_too_long_is_context_length ... ok
[INFO] [stdout] test claude_code::tests::the_prompt_count_absorbs_the_cached_share ... ok
[INFO] [stdout] test cli_common::tests::falls_back_to_stdout_when_stderr_empty ... ok
[INFO] [stdout] test claude_code::tests::the_subtype_and_status_ride_the_message ... ok
[INFO] [stdout] test cli_common::tests::falls_back_to_stdout_when_stderr_whitespace_only ... ok
[INFO] [stdout] test cli_common::tests::preserves_multiline_errors ... ok
[INFO] [stdout] test cli_common::tests::prefers_stderr_when_both_present ... ok
[INFO] [stdout] test cli_common::tests::renders_no_output_when_both_empty ... ok
[INFO] [stdout] test cline_cli::tests::test_capabilities ... ok
[INFO] [stdout] test cline_cli::tests::test_default_model ... ok
[INFO] [stdout] test cli_common::tests::truncates_oversized_streams ... ok
[INFO] [stdout] test cline_cli::tests::test_parse_ndjson_response_basic ... ok
[INFO] [stdout] test cline_cli::tests::test_parse_ndjson_no_completion_returns_empty ... ok
[INFO] [stdout] test cline_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test codex_cli::tests::test_custom_model ... ok
[INFO] [stdout] test codex_cli::tests::test_available_models ... ok
[INFO] [stdout] test cline_cli::tests::test_parse_ndjson_task_started_adds_no_content ... ok
[INFO] [stdout] test codex_cli::tests::test_default_model ... ok
[INFO] [stdout] test codex_cli::tests::test_capabilities ... ok
[INFO] [stdout] test codex_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test codex_cli::tests::test_parse_jsonl_response_multiple_messages ... ok
[INFO] [stdout] test codex_cli::tests::test_parse_jsonl_response_basic ... ok
[INFO] [stdout] test codex_cli::tests::test_parse_jsonl_response_empty ... ok
[INFO] [stdout] test codex_cli::tests::test_parse_jsonl_skips_non_agent_items ... ok
[INFO] [stdout] test compat::tests::test_capabilities_claude_code ... ok
[INFO] [stdout] test compat::tests::test_capabilities_continue_cli ... ok
[INFO] [stdout] test compat::tests::test_capabilities_cline_cli ... ok
[INFO] [stdout] test compat::tests::test_capabilities_codex_cli ... ok
[INFO] [stdout] test compat::tests::test_capabilities_goose_cli ... ok
[INFO] [stdout] test compat::tests::test_capabilities_cursor_agent ... ok
[INFO] [stdout] test compat::tests::test_capabilities_gemini_cli ... ok
[INFO] [stdout] test compat::tests::test_capabilities_kilo_cli ... ok
[INFO] [stdout] test compat::tests::test_cli_capabilities_incompatible_old_version ... ok
[INFO] [stdout] test compat::tests::test_capabilities_opencode ... ok
[INFO] [stdout] test compat::tests::test_cli_capabilities_compatible ... ok
[INFO] [stdout] test compat::tests::test_compare_versions_newer ... ok
[INFO] [stdout] test compat::tests::test_compare_versions_equal ... ok
[INFO] [stdout] test compat::tests::test_compare_versions_older ... ok
[INFO] [stdout] test compat::tests::test_parse_semver_invalid ... ok
[INFO] [stdout] test compat::tests::test_const_parse_version ... ok
[INFO] [stdout] test cache::tests::ttl_expiration ... ok
[INFO] [stdout] test compat::tests::test_parse_semver_simple ... ok
[INFO] [stdout] test compat::tests::test_parse_semver_with_name_prefix ... ok
[INFO] [stdout] test compat::tests::test_parse_semver_with_v_prefix ... ok
[INFO] [stdout] test config::tests::test_cli_runner_type_binary_names ... ok
[INFO] [stdout] test config::tests::test_cli_runner_type_display ... ok
[INFO] [stdout] test compat::tests::test_parse_semver_with_prerelease ... ok
[INFO] [stdout] test config::tests::allowing_env_keys_appends_without_repeating ... ok
[INFO] [stdout] test config::tests::test_cli_runner_type_env_keys ... ok
[INFO] [stdout] test config::tests::test_parse_env_keys_empty_string ... ok
[INFO] [stdout] test config::tests::test_default_allowed_env_keys ... ok
[INFO] [stdout] test config::tests::test_parse_timeout_invalid ... ok
[INFO] [stdout] test config::tests::test_parse_timeout_valid ... ok
[INFO] [stdout] test config::tests::test_parse_env_keys_trailing_comma ... ok
[INFO] [stdout] test config::tests::test_runner_config_builder ... ok
[INFO] [stdout] test config::tests::test_parse_env_keys_basic ... ok
[INFO] [stdout] test config::tests::test_parse_env_keys_with_whitespace ... ok
[INFO] [stdout] test container::tests::test_docker_args_env_vars ... ok
[INFO] [stdout] test config::tests::test_runner_config_defaults ... ok
[INFO] [stdout] test container::tests::test_docker_args_security_hardening ... ok
[INFO] [stdout] test container::tests::test_docker_args_network_modes ... ok
[INFO] [stdout] test container::tests::test_docker_args_memory_and_pids_limits ... ok
[INFO] [stdout] test container::tests::test_docker_args_without_stdin ... ok
[INFO] [stdout] test container::tests::test_docker_args_with_stdin_redirect ... ok
[INFO] [stdout] test container::tests::test_network_mode_display ... ok
[INFO] [stdout] test container::tests::test_shell_escape_empty ... ok
[INFO] [stdout] test container::tests::test_docker_args_extra_mounts ... ok
[INFO] [stdout] test container::tests::test_shell_escape_single_quotes ... ok
[INFO] [stdout] test container::tests::test_shell_escape_simple ... ok
[INFO] [stdout] test continue_cli::tests::test_capabilities_no_streaming ... ok
[INFO] [stdout] test continue_cli::tests::test_default_model ... ok
[INFO] [stdout] test continue_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test continue_cli::tests::test_parse_json_response_basic ... ok
[INFO] [stdout] test continue_cli::tests::test_parse_json_response_empty_output ... ok
[INFO] [stdout] test copilot::tests::build_command_includes_model_flag_when_some ... ok
[INFO] [stdout] test copilot::tests::build_command_omits_model_flag_when_none ... ok
[INFO] [stdout] test copilot::tests::default_model_is_auto_sentinel ... ok
[INFO] [stdout] test copilot::tests::effective_effort_falls_back_to_family_default ... ok
[INFO] [stdout] test copilot::tests::effective_effort_none_when_unpinned_and_unconfigured ... ok
[INFO] [stdout] test copilot::tests::effective_effort_config_override_applies_without_model ... ok
[INFO] [stdout] test copilot::tests::fallback_models_match_catalog ... ok
[INFO] [stdout] test copilot::tests::resolve_model_falls_back_to_config ... ok
[INFO] [stdout] test copilot::tests::resolve_model_prefers_request_override ... ok
[INFO] [stdout] test copilot::tests::resolve_model_returns_none_when_unpinned ... ok
[INFO] [stdout] test copilot_common::tests::permission_policy_parse_denies_unless_spelled_out ... ok
[INFO] [stdout] test copilot_common::tests::render_caps_history_to_the_most_recent_turns ... ok
[INFO] [stdout] test copilot_common::tests::render_inlines_system_history_and_user_in_order ... ok
[INFO] [stdout] test copilot_common::tests::render_with_no_user_message_yields_history_only ... ok
[INFO] [stdout] test copilot_common::tests::render_without_inline_system_leaves_the_system_slot_to_the_transport ... ok
[INFO] [stdout] test copilot_models::tests::catalog_ids_matches_catalog_len ... ok
[INFO] [stdout] test continue_cli::tests::test_parse_json_response_skips_lifecycle_events ... ok
[INFO] [stdout] test copilot_models::tests::catalog_is_pre_ranked ... ok
[INFO] [stdout] test copilot::tests::effective_effort_prefers_config_override ... ok
[INFO] [stdout] test copilot_models::tests::catalog_lists_the_model_coaching_turns_run_on ... ok
[INFO] [stdout] test copilot_models::tests::classify_model_error_ignores_unrelated_stderr ... ok
[INFO] [stdout] test copilot_models::tests::classify_model_error_parses_copilot_message ... ok
[INFO] [stdout] test copilot_models::tests::default_effort_is_none_for_haiku_and_gemini ... ok
[INFO] [stdout] test copilot_models::tests::default_effort_is_none_for_unknown_id ... ok
[INFO] [stdout] test copilot_models::tests::next_preferred_walks_catalog ... ok
[INFO] [stdout] test copilot_models::tests::preferred_default_is_newest_opus ... ok
[INFO] [stdout] test copilot_models::tests::reasoning_effort_as_str ... ok
[INFO] [stdout] test factory::tests::all_providers_count ... ok
[INFO] [stdout] test factory::tests::parse_case_insensitive ... ok
[INFO] [stdout] test factory::tests::parse_short_forms ... ok
[INFO] [stdout] test factory::tests::parse_snake_case_variants ... ok
[INFO] [stdout] test factory::tests::valid_provider_names_lists_every_provider_once ... ok
[INFO] [stdout] test fallback::tests::available_models_deduplicated ... ok
[INFO] [stdout] test copilot_models::tests::default_effort_picks_medium_for_opus_sonnet_gpt5 ... ok
[INFO] [stdout] test copilot_models::tests::next_preferred_last_entry_returns_none ... ok
[INFO] [stdout] test copilot_models::tests::next_preferred_unknown_id_returns_none ... ok
[INFO] [stdout] test fallback::tests::all_fail_returns_last_error ... ok
[INFO] [stdout] test fallback::tests::empty_vec_rejected ... ok
[INFO] [stdout] test fallback::tests::first_fails_second_succeeds ... ok
[INFO] [stdout] test fallback::tests::health_all_down ... ok
[INFO] [stdout] test fallback::tests::health_check_any_healthy_tier_wins_over_an_error ... ok
[INFO] [stdout] test fallback::tests::health_check_last_tier_unhealthy_outranks_an_earlier_error ... ok
[INFO] [stdout] test fallback::tests::health_check_returns_the_last_tiers_error_when_none_is_healthy ... ok
[INFO] [stdout] test fallback::tests::health_or_logic ... ok
[INFO] [stdout] test fallback::tests::no_retry_on_permanent_error ... ok
[INFO] [stdout] test fallback::tests::strict_policy_falls_through_on_a_tiers_rate_limit ... ok
[INFO] [stdout] test factory::tests::parse_unknown_returns_none ... ok
[INFO] [stdout] test fallback::tests::backoff_respects_max_delay ... ok
[INFO] [stdout] test fallback::tests::capabilities_union ... ok
[INFO] [stdout] test fallback::tests::single_provider_passthrough ... ok
[INFO] [stdout] test gemini_cli::tests::test_capabilities ... ok
[INFO] [stdout] test fallback::tests::zero_retries_matches_original_behavior ... ok
[INFO] [stdout] test fallback::tests::strict_policy_propagates_an_invalid_request ... ok
[INFO] [stdout] test gemini_cli::tests::test_available_models ... ok
[INFO] [stdout] test gemini_cli::tests::test_default_model ... ok
[INFO] [stdout] test gemini_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test gemini_cli::tests::test_custom_model ... ok
[INFO] [stdout] test gemini_cli::tests::test_parse_jsonl_response ... ok
[INFO] [stdout] test gemini_cli::tests::test_parse_single_json_response_no_stats ... ok
[INFO] [stdout] test gemini_cli::tests::test_parse_single_json_response ... ok
[INFO] [stdout] test goose_cli::tests::test_parse_json_response_multi_content ... ok
[INFO] [stdout] test goose_cli::tests::test_parse_json_response_skips_user_messages ... ok
[INFO] [stdout] test goose_cli::tests::test_default_model ... ok
[INFO] [stdout] test goose_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test goose_cli::tests::test_parse_json_response_basic ... ok
[INFO] [stdout] test goose_cli::tests::test_capabilities ... ok
[INFO] [stdout] test guardrail::tests::content_length_rejects_long_message ... ok
[INFO] [stdout] test guardrail::tests::content_length_accepts_within_limits ... ok
[INFO] [stdout] test guardrail::tests::content_length_rejects_total_overflow ... ok
[INFO] [stdout] test guardrail::tests::content_length_response_passthrough ... ok
[INFO] [stdout] test guardrail::tests::pii_allows_clean_content ... ok
[INFO] [stdout] test guardrail::tests::empty_guardrails_passthrough ... ok
[INFO] [stdout] test fallback::tests::retry_on_transient_then_succeeds ... ok
[INFO] [stdout] test guardrail::tests::multiple_guardrails ... ok
[INFO] [stdout] test guardrail::tests::pii_detects_email ... ok
[INFO] [stdout] test guardrail::tests::delegates_trait_methods ... ok
[INFO] [stdout] test fallback::tests::stream_retry_on_transient ... ok
[INFO] [stdout] test guardrail::tests::pii_detects_email_in_response ... ok
[INFO] [stdout] test guardrail::tests::pii_phone_without_separators ... ok
[INFO] [stdout] test guardrail::tests::topic_filter_blocks_response ... ok
[INFO] [stdout] test guardrail::tests::topic_filter_case_insensitive ... ok
[INFO] [stdout] test guardrail::tests::topic_filter_blocks_request ... ok
[INFO] [stdout] test guardrail::tests::pre_request_rejection_prevents_inner_call ... ok
[INFO] [stdout] test guardrail::tests::post_response_rejection ... ok
[INFO] [stdout] test guardrail::tests::topic_filter_multiple_patterns ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_basic ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_empty_output ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_error_with_content ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_multiple_text_parts ... ok
[INFO] [stdout] test kilo_cli::tests::test_capabilities ... ok
[INFO] [stdout] test guardrail::tests::pii_detects_phone ... ok
[INFO] [stdout] test guardrail::tests::topic_filter_allows_clean_content ... ok
[INFO] [stdout] test kilo_cli::tests::test_default_model ... ok
[INFO] [stdout] test kilo_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test kiro_cli::tests::test_capabilities_no_streaming ... ok
[INFO] [stdout] test kiro_cli::tests::test_default_model ... ok
[INFO] [stdout] test kiro_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_with_reasoning ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_with_tool_use ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_no_tokens ... ok
[INFO] [stdout] test kilo_cli::tests::test_parse_ndjson_response_with_error ... ok
[INFO] [stdout] test kiro_cli::tests::test_parse_text_response_mixed_lines ... ok
[INFO] [stdout] test kiro_cli::tests::test_parse_text_response_with_ansi ... ok
[INFO] [stdout] test kiro_cli::tests::test_parse_text_response_with_prefix ... ok
[INFO] [stdout] test kiro_cli::tests::test_strip_ansi_color_codes ... ok
[INFO] [stdout] test kiro_cli::tests::test_strip_ansi_cursor_codes ... ok
[INFO] [stdout] test kiro_cli::tests::test_strip_ansi_no_codes ... ok
[INFO] [stdout] test mcp_tool_bridge::tests::conversion_correctness ... ok
[INFO] [stdout] test kiro_cli::tests::test_parse_text_response_multiline ... ok
[INFO] [stdout] test kiro_cli::tests::test_available_models ... ok
[INFO] [stdout] test kiro_cli::tests::test_parse_text_response_empty_output ... ok
[INFO] [stdout] test fallback::tests::retry_exhausts_then_next_provider ... ok
[INFO] [stdout] test mcp_tool_bridge::tests::empty_list_conversion ... ok
[INFO] [stdout] test mcp_tool_bridge::tests::handler_with_test_executor ... ok
[INFO] [stdout] test metrics::tests::cost_credits_reported_cache_reads ... ok
[INFO] [stdout] test metrics::tests::call_count_increments ... ok
[INFO] [stdout] test metrics::tests::cost_accumulates ... ok
[INFO] [stdout] test kiro_cli::tests::test_strip_ansi_empty ... ok
[INFO] [stdout] test metrics::tests::cost_with_known_model ... ok
[INFO] [stdout] test kiro_cli::tests::test_strip_ansi_osc_sequences ... ok
[INFO] [stdout] test metrics::tests::cost_with_estimated_tokens ... ok
[INFO] [stdout] test mcp_tool_bridge::tests::handler_error_path ... ok
[INFO] [stdout] test metrics::tests::cost_with_unknown_model ... ok
[INFO] [stdout] test metrics::tests::cost_with_unknown_provider_is_zero ... ok
[INFO] [stdout] test metrics::tests::div_by_zero_guard_on_avg_latency ... ok
[INFO] [stdout] test metrics::tests::reset_zeroes_cost ... ok
[INFO] [stdout] test metrics::tests::errors_count_on_failure ... ok
[INFO] [stdout] test metrics::tests::fresh_report_is_zeroed ... ok
[INFO] [stdout] test metrics::tests::reset_zeroes_counters ... ok
[INFO] [stdout] test metrics::tests::token_estimation_when_no_usage ... ok
[INFO] [stdout] test opencode::tests::test_default_model ... ok
[INFO] [stdout] test opencode::tests::test_name_and_display ... ok
[INFO] [stdout] test opencode::tests::test_capabilities_no_streaming ... ok
[INFO] [stdout] test prompt::tests::test_build_user_prompt_excludes_system ... ok
[INFO] [stdout] test opencode::tests::test_parse_ndjson_response_basic ... ok
[INFO] [stdout] test opencode::tests::test_parse_ndjson_response_empty_output ... ok
[INFO] [stdout] test prompt::tests::test_build_prompt_multi_role_conversation ... ok
[INFO] [stdout] test prompt::tests::test_build_user_prompt_only_system_messages ... ok
[INFO] [stdout] test opencode::tests::test_parse_ndjson_response_multiple_text_parts ... ok
[INFO] [stdout] test prompt::tests::test_build_prompt_single_user_message ... ok
[INFO] [stdout] test prompt::tests::test_extract_system_message_absent ... ok
[INFO] [stdout] test prompt::tests::test_mime_to_extension ... ok
[INFO] [stdout] test prompt::tests::test_prepare_prompt_assistant_images_ignored ... ok
[INFO] [stdout] test prompt::tests::test_extract_system_message_present ... ok
[INFO] [stdout] test prompt::tests::test_extract_system_message_returns_first ... ok
[INFO] [stdout] test prompt::tests::test_prepare_prompt_no_images ... ok
[INFO] [stdout] test opencode::tests::test_parse_ndjson_response_no_tokens ... ok
[INFO] [stdout] test prompt::tests::test_build_prompt_empty_messages ... ok
[INFO] [stdout] test quality_gate::tests::exhaustion_sets_finish_reason ... ok
[INFO] [stdout] test prompt::tests::test_prepare_prompt_with_images ... ok
[INFO] [stdout] test prompt::tests::test_prepare_prompt_multiple_images ... ok
[INFO] [stdout] test quality_gate::tests::validate_valid_passes ... ok
[INFO] [stdout] test prompt::tests::test_prepare_user_prompt_with_images_excludes_system ... ok
[INFO] [stdout] test quality_gate::tests::validate_refusal_detected_case_insensitive ... ok
[INFO] [stdout] test quota::tests::a_colonless_offset_parses ... ok
[INFO] [stdout] test quality_gate::tests::validate_too_short_fails ... ok
[INFO] [stdout] test quota::tests::a_cooldown_blocks_until_it_expires ... ok
[INFO] [stdout] test quality_gate::tests::retry_loop_with_eventual_success ... ok
[INFO] [stdout] test quality_gate::tests::validate_empty_fails ... ok
[INFO] [stdout] test quota::tests::a_leap_day_is_not_off_by_one ... ok
[INFO] [stdout] test quota::tests::a_known_instant_matches_its_epoch ... ok
[INFO] [stdout] test quota::tests::a_leap_second_is_tolerated ... ok
[INFO] [stdout] test quota::tests::a_threshold_is_inclusive_at_the_boundary ... ok
[INFO] [stdout] test quota::tests::a_cooldown_earned_by_another_credential_is_void ... ok
[INFO] [stdout] test quota::tests::a_missing_limits_array_is_an_error_not_an_empty_budget ... ok
[INFO] [stdout] test quota::tests::a_window_without_a_readable_reset_is_skipped_not_defaulted ... ok
[INFO] [stdout] test quota::tests::a_non_utc_offset_shifts_the_instant ... ok
[INFO] [stdout] test quota::tests::an_out_of_range_field_is_rejected_rather_than_normalised ... ok
[INFO] [stdout] test quota::tests::a_scoped_window_saturates_independently_of_the_overall_one ... ok
[INFO] [stdout] test quota::tests::an_unknown_kind_still_counts_against_the_budget ... ok
[INFO] [stdout] test quota::tests::every_window_becomes_its_own_snapshot ... ok
[INFO] [stdout] test quota::tests::a_window_resets_only_once_its_stated_instant_passes ... ok
[INFO] [stdout] test quota::tests::garbage_is_an_error_not_the_epoch ... ok
[INFO] [stdout] test quota::tests::percent_is_read_on_the_0_to_100_scale ... ok
[INFO] [stdout] test quota_store::tests::an_empty_store_still_answers_for_every_backend ... ok
[INFO] [stdout] test quota::tests::the_unix_epoch_itself_round_trips ... ok
[INFO] [stdout] test router::tests::a_backend_with_no_reading_is_not_retired ... ok
[INFO] [stdout] test quota_store::tests::a_reading_survives_and_is_addressable_out_of_order ... ok
[INFO] [stdout] test router::tests::a_failing_checker_does_not_park_us_on_the_secondary ... ok
[INFO] [stdout] test router::tests::a_foreign_store_drives_the_decision ... ok
[INFO] [stdout] test router::tests::a_penalty_holds_only_until_its_instant ... ok
[INFO] [stdout] test router::tests::a_full_window_steps_aside_before_a_turn_is_spent ... ok
[INFO] [stdout] test router::tests::an_ordinary_failure_is_not_rerouted ... ok
[INFO] [stdout] test router::tests::a_quota_refusal_reroutes_within_the_same_turn ... ok
[INFO] [stdout] test router::tests::crossing_the_threshold_moves_the_selection ... ok
[INFO] [stdout] test router::tests::a_reading_is_reused_rather_than_refetched_every_turn ... ok
[INFO] [stdout] test router::tests::a_router_needs_a_backend ... ok
[INFO] [stdout] test router::tests::the_first_backend_wins_while_it_has_room ... ok
[INFO] [stdout] test router::tests::the_fullest_window_decides_not_the_average ... ok
[INFO] [stdout] test router::tests::the_model_list_is_the_union_of_every_backend ... ok
[INFO] [stdout] test router::tests::the_preferred_backend_serves_while_it_has_room ... ok
[INFO] [stdout] test sandbox::tests::test_build_policy_existing_dir ... ok
[INFO] [stdout] test sandbox::tests::test_build_policy_fallback_to_cwd ... ok
[INFO] [stdout] test sandbox::tests::test_build_policy_nonexistent_dir_falls_back ... ok
[INFO] [stdout] test sandbox::tests::test_sandbox_policy_defaults ... ok
[INFO] [stdout] test structured_output::tests::extract_json_with_nested_braces ... ok
[INFO] [stdout] test structured_output::tests::extract_json_from_markdown_fences ... ok
[INFO] [stdout] test quota_store::tests::a_narrower_load_does_not_lose_what_was_stored ... ok
[INFO] [stdout] test structured_output::tests::extract_raw_json ... ok
[INFO] [stdout] test quota_store::tests::a_reading_leaves_a_penalty_that_is_still_live ... ok
[INFO] [stdout] test structured_output::tests::full_retry_loop_eventual_success ... ok
[INFO] [stdout] test structured_output::tests::validate_additional_properties_false ... ok
[INFO] [stdout] test structured_output::tests::validate_array_items ... ok
[INFO] [stdout] test structured_output::tests::validate_missing_required_fields ... ok
[INFO] [stdout] test structured_output::tests::validate_enum_values ... ok
[INFO] [stdout] test structured_output::tests::validate_nested_object ... ok
[INFO] [stdout] test structured_output::tests::validate_numeric_bounds ... ok
[INFO] [stdout] test structured_output::tests::validate_valid_object ... ok
[INFO] [stdout] test structured_output::tests::validate_wrong_root_type ... ok
[INFO] [stdout] test structured_output::tests::validate_wrong_types ... ok
[INFO] [stdout] test system_delivery::tests::every_runner_declares_a_delivery_mode ... ok
[INFO] [stdout] test quota_store::tests::a_reading_clears_a_penalty_whose_instant_has_passed ... ok
[INFO] [stdout] test system_delivery::tests::the_excluding_builder_really_drops_the_system_text ... ok
[INFO] [stdout] test system_delivery::tests::inlining_runners_carry_the_system_text_in_the_prompt ... ok
[INFO] [stdout] test router::tests::everything_exhausted_still_routes_somewhere ... ok
[INFO] [stdout] test system_delivery::tests::only_runners_with_a_system_slot_use_a_separate_channel ... ok
[INFO] [stdout] test structured_output::tests::exhaustion_returns_error ... ok
[INFO] [stdout] test sandbox::tests::test_sandbox_policy_with_custom_keys ... ok
[INFO] [stdout] test tool_simulation::tests::catalog_reveals_nested_object_and_array_item_fields ... ok
[INFO] [stdout] test tool_simulation::tests::catalog_rendering_of_a_flat_schema_is_byte_identical ... ok
[INFO] [stdout] test tool_simulation::tests::few_shot_example_has_the_nested_shape_not_a_placeholder_string ... ok
[INFO] [stdout] test tool_simulation::tests::format_tool_results_multiple ... ok
[INFO] [stdout] test tool_simulation::tests::format_tool_results_single ... ok
[INFO] [stdout] test tool_simulation::tests::inject_appends_to_existing_system ... ok
[INFO] [stdout] test tool_simulation::tests::inject_creates_system_when_missing ... ok
[INFO] [stdout] test tool_simulation::tests::generate_tool_catalog_has_tools ... ok
[INFO] [stdout] test tool_simulation::tests::parse_malformed_json_skipped ... ok
[INFO] [stdout] test tool_simulation::tests::parse_multiple_tool_calls ... ok
[INFO] [stdout] test tool_simulation::tests::strip_preserves_no_tool_calls ... ok
[INFO] [stdout] test tool_simulation::tests::strip_tool_call_blocks_removes_blocks ... ok
[INFO] [stdout] test tool_simulation::tests::parse_no_tool_calls ... ok
[INFO] [stdout] test tool_simulation::tests::parse_single_tool_call ... ok
[INFO] [stdout] test tool_simulation::tests::parse_tool_call_without_arguments ... ok
[INFO] [stdout] test tool_simulation::tests::strip_tool_result_echo_preserves_clean_prose ... ok
[INFO] [stdout] test turn::tests::new_ids_are_unique ... ok
[INFO] [stdout] test turn::tests::serde_round_trip_is_plain_uuid_string ... ok
[INFO] [stdout] test types::tests::capability_flags_new_fields ... ok
[INFO] [stdout] test tool_simulation::tests::strip_tool_result_echo_removes_full_echoed_turn ... ok
[INFO] [stdout] test tool_simulation::tests::strip_tool_result_echo_roundtrips_format_to_empty ... ok
[INFO] [stdout] test types::tests::chat_message_images_not_serialized_when_none ... ok
[INFO] [stdout] test types::tests::chat_message_tool_constructor ... ok
[INFO] [stdout] test types::tests::chat_message_with_images_serde_round_trip ... ok
[INFO] [stdout] test types::tests::chat_message_regular_constructors_have_none_tool_fields ... ok
[INFO] [stdout] test types::tests::chat_request_has_images ... ok
[INFO] [stdout] test types::tests::chat_request_has_images_empty_vec ... ok
[INFO] [stdout] test types::tests::image_part_invalid_mime_type ... ok
[INFO] [stdout] test types::tests::image_part_serde_round_trip ... ok
[INFO] [stdout] test types::tests::image_part_valid_mime_types ... ok
[INFO] [stdout] test types::tests::is_provider_fault_classification ... ok
[INFO] [stdout] test types::tests::chat_message_without_images_backward_compat ... ok
[INFO] [stdout] test types::tests::chat_request_builder_methods ... ok
[INFO] [stdout] test tool_simulation::tests::strip_simulation_artifacts_removes_both_scaffolds ... ok
[INFO] [stdout] test types::tests::invalid_request_constructor ... ok
[INFO] [stdout] test tool_simulation::tests::strip_tool_result_echo_drops_unclosed_block ... ok
[INFO] [stdout] test types::tests::is_transient_classification ... ok
[INFO] [stdout] test types::tests::message_role_tool_as_str ... ok
[INFO] [stdout] test types::tests::response_format_serde_variants ... ok
[INFO] [stdout] test types::tests::tool_definition_serde_round_trip ... ok
[INFO] [stdout] test types::tests::user_with_images_constructor ... ok
[INFO] [stdout] test warp_cli::tests::test_available_models ... ok
[INFO] [stdout] test warp_cli::tests::test_capabilities_no_streaming ... ok
[INFO] [stdout] test warp_cli::tests::test_default_model ... ok
[INFO] [stdout] test warp_cli::tests::test_name_and_display ... ok
[INFO] [stdout] test tool_simulation::tests::generate_tool_catalog_no_parameters ... ok
[INFO] [stdout] test tool_simulation::tests::generate_tool_catalog_uses_natural_framing_not_injection_primer ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_multiple_agent_lines ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_skips_invalid_json ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_with_tool_calls ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_without_system_line ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_basic ... ok
[INFO] [stdout] test types::tests::tool_choice_serde_variants ... ok
[INFO] [stdout] test warp_cli::tests::test_parse_ndjson_response_empty_output ... ok
[INFO] [stdout] test types::tests::tool_definition_without_parameters ... ok
[INFO] [stdout] test types::tests::model_unavailable_constructor ... ok
[INFO] [stdout] test types::tests::tool_call_request_serde_round_trip ... ok
[INFO] [stderr]      Running tests/acp_model_routing.rs (/opt/rustwide/target/debug/build/embacle/4fed89363e4f188c/out/acp_model_routing-4fed89363e4f188c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 407 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agui.rs (/opt/rustwide/target/debug/build/embacle/518e7310a02c49aa/out/agui-518e7310a02c49aa)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/claude_code_result_document.rs (/opt/rustwide/target/debug/build/embacle/2aa91e699642679e/out/claude_code_result_document-2aa91e699642679e)
[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 3 tests
[INFO] [stdout] test an_error_document_outranks_the_exit_code ... ok
[INFO] [stdout] test a_non_document_on_a_failed_exit_keeps_the_exit_diagnostic ... ok
[INFO] [stderr]      Running tests/credential_pool.rs (/opt/rustwide/target/debug/build/embacle/30988dbaef41db41/out/credential_pool-30988dbaef41db41)
[INFO] [stdout] test a_success_document_on_a_failed_exit_is_still_a_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test the_credential_key_is_the_runner_family_s_first_key ... ok
[INFO] [stdout] test with_env_keeps_one_value_per_key ... ok
[INFO] [stdout] test an_empty_pool_is_a_config_error ... ok
[INFO] [stdout] test a_runner_without_a_credential_variable_cannot_be_pooled ... ok
[INFO] [stdout] test accounts_are_named_in_order_and_the_first_keeps_the_runner_name ... ok
[INFO] [stdout] test each_account_s_child_sees_its_own_token ... ok
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/build/embacle/ba63b4e330b89c89/out/e2e-ba63b4e330b89c89)
[INFO] [stdout] test a_spent_account_s_refusal_names_that_account ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test e2e_claude_code ... ok
[INFO] [stdout] test e2e_codex_cli ... ok
[INFO] [stdout] test e2e_cline_cli ... ok
[INFO] [stdout] test e2e_goose_cli ... ok
[INFO] [stdout] test e2e_gemini_cli ... ok
[INFO] [stdout] test e2e_continue_cli ... ok
[INFO] [stdout] test e2e_copilot ... ok
[INFO] [stdout] test e2e_cursor_agent ... ok
[INFO] [stdout] test e2e_kilo_cli ... ok
[INFO] [stdout] test e2e_opencode ... ok
[INFO] [stdout] test e2e_warp_cli ... ok
[INFO] [stdout] test e2e_kiro_cli ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_cli_notice.rs (/opt/rustwide/target/debug/build/embacle/9c265b10998e1884/out/e2e_cli_notice-9c265b10998e1884)
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_router.rs (/opt/rustwide/target/debug/build/embacle/40a34376e5a01b2e/out/e2e_router-40a34376e5a01b2e)
[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/fallback_observer.rs (/opt/rustwide/target/debug/build/embacle/70f243e6b652069d/out/fallback_observer-70f243e6b652069d)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test a_deterministic_error_fires_no_hop_callback_and_propagates ... ok
[INFO] [stdout] test a_vetoed_primary_is_never_called_and_the_skip_is_reported ... ok
[INFO] [stdout] test exhaustion_reports_the_last_error ... ok
[INFO] [stdout] test an_empty_completion_is_reported_as_such ... ok
[INFO] [stdout] test success_after_a_fault_names_the_tier_that_answered ... ok
[INFO] [stdout] test a_position_zero_veto_lands_on_the_second_tier_not_the_third ... ok
[INFO] [stdout] test an_opened_stream_reports_success ... ok
[INFO] [stdout] test the_permissive_policy_forwards_the_model_unchanged ... ok
[INFO] [stdout] test callbacks_run_on_the_calling_task ... ok
[INFO] [stdout] test three_tiers_are_walked_flat_and_the_last_is_always_asked ... ok
[INFO] [stdout] test the_model_is_cleared_once_and_every_later_tier_sees_it_cleared ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fallback_policy.rs (/opt/rustwide/target/debug/build/embacle/2731dcad7935487d/out/fallback_policy-2731dcad7935487d)
[INFO] [stdout] running 19 tests
[INFO] [stdout] test a_bare_empty_turn_is_empty ... ok
[INFO] [stdout] test a_real_reply_is_not_empty ... ok
[INFO] [stdout] test an_empty_tool_call_vec_is_still_empty ... ok
[INFO] [stdout] test an_empty_completion_falls_through_to_the_secondary ... ok
[INFO] [stdout] test an_invalid_request_is_not_rerouted ... ok
[INFO] [stdout] test a_provider_fault_is_not_a_cooldown ... ok
[INFO] [stdout] test permissive_falls_through_on_every_error ... ok
[INFO] [stdout] test permissive_returns_an_empty_completion_as_success ... ok
[INFO] [stdout] test an_empty_completion_from_the_last_tier_is_returned ... ok
[INFO] [stdout] test the_last_tier_is_asked_even_in_cooldown ... ok
[INFO] [stdout] test whitespace_content_with_tool_calls_is_not_empty ... ok
[INFO] [stdout] test whitespace_only_content_is_empty ... ok
[INFO] [stdout] test empty_content_with_tool_calls_is_not_empty ... ok
[INFO] [stdout] test the_default_policy_is_permissive ... ok
[INFO] [stdout] test an_empty_answer_carrying_a_tool_call_stays_with_the_primary ... ok
[INFO] [stdout] test a_provider_fault_falls_through_to_the_secondary ... ok
[INFO] [stdout] test a_primary_that_answers_is_the_answer ... ok
[INFO] [stdout] test strict_fall_through_follows_is_provider_fault_for_every_kind ... ok
[INFO] [stdout] test a_tier_that_refused_on_quota_is_passed_over_until_its_cooldown_ends ... ok
[INFO] [stderr]      Running tests/function_call_serde.rs (/opt/rustwide/target/debug/build/embacle/7592a78de0d3221f/out/function_call_serde-7592a78de0d3221f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test function_call_round_trips_through_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/github_rate_limit.rs (/opt/rustwide/target/debug/build/embacle/aefd707250231214/out/github_rate_limit-aefd707250231214)
[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/http_model_override.rs (/opt/rustwide/target/debug/build/embacle/16a8a7d4ff706fdd/out/http_model_override-16a8a7d4ff706fdd)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/http_provider_metadata.rs (/opt/rustwide/target/debug/build/embacle/acdd9ca969d2e84e/out/http_provider_metadata-acdd9ca969d2e84e)
[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/http_sse_parser.rs (/opt/rustwide/target/debug/build/embacle/4623b54b0d6a108f/out/http_sse_parser-4623b54b0d6a108f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/openai_compatible.rs (/opt/rustwide/target/debug/build/embacle/d0c3019cdae0b0a6/out/openai_compatible-d0c3019cdae0b0a6)
[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/openai_compatible_wire.rs (/opt/rustwide/target/debug/build/embacle/e99463b3d0fee327/out/openai_compatible_wire-e99463b3d0fee327)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/permission_policy_defaults.rs (/opt/rustwide/target/debug/build/embacle/aa00b0f0d4cb1de7/out/permission_policy_defaults-aa00b0f0d4cb1de7)
[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/pricing.rs (/opt/rustwide/target/debug/build/embacle/01ad842d343dcbad/out/pricing-01ad842d343dcbad)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test cache_read_rate_is_per_provider ... ok
[INFO] [stdout] test reasoning_tokens_bill_at_the_output_rate ... ok
[INFO] [stdout] test test_every_default_model_has_pricing ... ok
[INFO] [stdout] test test_gemini_25_pro_pricing ... ok
[INFO] [stdout] test test_gemini_flash_lite_latest_pricing ... ok
[INFO] [stdout] test test_groq_llama_pricing ... ok
[INFO] [stdout] test test_groq_mixtral_pricing ... ok
[INFO] [stdout] test test_known_model_cost ... ok
[INFO] [stdout] test test_prefix_matching ... ok
[INFO] [stdout] test cache_counts_are_clamped_to_the_prompt ... ok
[INFO] [stdout] test real_acp_turn_splits_prompt_across_three_rates ... ok
[INFO] [stdout] test anthropic_cache_write_bills_above_fresh_input ... ok
[INFO] [stdout] test anthropic_cache_read_bills_at_ten_percent ... ok
[INFO] [stdout] test test_zero_tokens_returns_zero ... ok
[INFO] [stdout] test test_unknown_model_returns_zero ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pricing_provider_keys.rs (/opt/rustwide/target/debug/build/embacle/f1201d95bb4eeab5/out/pricing_provider_keys-f1201d95bb4eeab5)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/process_kill_on_drop.rs (/opt/rustwide/target/debug/build/embacle/8bfbf2d5cacf8e90/out/process_kill_on_drop-8bfbf2d5cacf8e90)
[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 1 test
[INFO] [stdout] test dropping_the_call_kills_the_child ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scenario_tests.rs (/opt/rustwide/target/debug/build/embacle/a0ae1143c879e7b3/out/scenario_tests-a0ae1143c879e7b3)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test guardrail_blocks_before_fallback ... ok
[INFO] [stdout] test metrics_wrapping_quality_gate_refusal_then_success ... ok
[INFO] [stdout] test fallback_with_metrics_a_fails_b_succeeds ... ok
[INFO] [stdout] test all_providers_refuse_quality_gate_exhaustion ... ok
[INFO] [stdout] test health_check_composition ... ok
[INFO] [stdout] test fallback_with_mixed_capabilities ... ok
[INFO] [stdout] test fallback_retry_timeout_then_quality_gate_success ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/stateless_runners.rs (/opt/rustwide/target/debug/build/embacle/9e1348b848242160/out/stateless_runners-9e1348b848242160)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test cline_never_resumes_a_task ... ok
[INFO] [stdout] test continue_stream_never_resumes ... ok
[INFO] [stdout] test cursor_agent_never_resumes ... ok
[INFO] [stdout] test claude_code_stream_never_resumes_and_shares_no_cwd_state ... ok
[INFO] [stdout] test claude_code_complete_then_stream_never_resumes ... ok
[INFO] [stdout] test cline_stream_never_resumes_a_task ... ok
[INFO] [stdout] test continue_never_resumes ... ok
[INFO] [stdout] test claude_code_complete_never_resumes_and_shares_no_cwd_state ... ok
[INFO] [stdout] test cursor_agent_stream_never_resumes ... ok
[INFO] [stdout] test kilo_never_resumes ... ok
[INFO] [stdout] test gemini_stream_never_resumes ... ok
[INFO] [stdout] test goose_never_resumes_and_runs_without_a_session ... ok
[INFO] [stdout] test gemini_never_resumes ... ok
[INFO] [stdout] test kilo_stream_never_resumes ... ok
[INFO] [stdout] test kiro_never_resumes ... ok
[INFO] [stdout] test goose_stream_never_resumes ... ok
[INFO] [stdout] test warp_never_resumes_a_conversation ... ok
[INFO] [stdout] test kiro_stream_never_resumes ... ok
[INFO] [stderr]    Doc-tests embacle
[INFO] [stdout] test opencode_never_resumes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test src/quality_gate.rs - quality_gate::QualityGateProvider (line 124) - compile ... ok
[INFO] [stdout] test src/metrics.rs - metrics::MetricsProvider (line 131) - compile ... ok
[INFO] [stdout] test src/cache.rs - cache::CacheProvider (line 86) - compile ... ok
[INFO] [stdout] test src/lib.rs - tool_simulation (line 147) - compile ... ok
[INFO] [stdout] test src/agent.rs - agent::AgentExecutor (line 76) - compile ... ok
[INFO] [stdout] test src/tool_simulation.rs - tool_simulation::generate_tool_catalog (line 168) ... ok
[INFO] [stdout] test src/tool_simulation.rs - tool_simulation::format_tool_results_as_text (line 531) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e", kill_on_drop: false }`
[INFO] [stdout] b1a7d6de6fbc565136725262e2c6a51d40f3e302d8a5ceefc08ee0a76b4bc13e
