[INFO] cloning repository https://github.com/modelrelay/modelrelay-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/modelrelay/modelrelay-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmodelrelay%2Fmodelrelay-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmodelrelay%2Fmodelrelay-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6b42f43a18e90dd1d831f7519c3b059726efb796 [INFO] testing modelrelay/modelrelay-rs against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmodelrelay%2Fmodelrelay-rs" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/modelrelay/modelrelay-rs [INFO] finished tweaking git repo https://github.com/modelrelay/modelrelay-rs [INFO] tweaked toml for git repo https://github.com/modelrelay/modelrelay-rs written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/modelrelay/modelrelay-rs on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/modelrelay/modelrelay-rs 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7809609bc7bda6efd3b86192edf0bdfa2df6f39ef7d8845f43002ba8316a46a0 [INFO] running `Command { std: "docker" "start" "-a" "7809609bc7bda6efd3b86192edf0bdfa2df6f39ef7d8845f43002ba8316a46a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7809609bc7bda6efd3b86192edf0bdfa2df6f39ef7d8845f43002ba8316a46a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7809609bc7bda6efd3b86192edf0bdfa2df6f39ef7d8845f43002ba8316a46a0", kill_on_drop: false }` [INFO] [stdout] 7809609bc7bda6efd3b86192edf0bdfa2df6f39ef7d8845f43002ba8316a46a0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f72f9ae6b007e900ffe8be4692f05fb485e779aa92e03f1b51f2a272e8002861 [INFO] running `Command { std: "docker" "start" "-a" "f72f9ae6b007e900ffe8be4692f05fb485e779aa92e03f1b51f2a272e8002861", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling zmij v1.0.12 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling find-msvc-tools v0.1.7 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling cc v1.2.52 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling regress v0.10.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling webpki-roots v1.0.5 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling rustls-webpki v0.103.8 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_tokenstream v0.2.2 [INFO] [stderr] Compiling jsonptr v0.7.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling json-patch v4.1.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling typify-impl v0.5.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling typify-macro v0.5.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling typify v0.5.0 [INFO] [stderr] Compiling modelrelay v6.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 18s [INFO] running `Command { std: "docker" "inspect" "f72f9ae6b007e900ffe8be4692f05fb485e779aa92e03f1b51f2a272e8002861", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f72f9ae6b007e900ffe8be4692f05fb485e779aa92e03f1b51f2a272e8002861", kill_on_drop: false }` [INFO] [stdout] f72f9ae6b007e900ffe8be4692f05fb485e779aa92e03f1b51f2a272e8002861 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0534c26ce288dd833fb48373c26a43e9d08a83b667ef5e2ff8bac9f2b2b8cdf8 [INFO] running `Command { std: "docker" "start" "-a" "0534c26ce288dd833fb48373c26a43e9d08a83b667ef5e2ff8bac9f2b2b8cdf8", kill_on_drop: false }` [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling modelrelay v6.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `with_bash_env_source` is never used [INFO] [stdout] --> src/local_bash_tools.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn with_bash_env_source(source: F) -> LocalBashOption [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 25s [INFO] running `Command { std: "docker" "inspect" "0534c26ce288dd833fb48373c26a43e9d08a83b667ef5e2ff8bac9f2b2b8cdf8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0534c26ce288dd833fb48373c26a43e9d08a83b667ef5e2ff8bac9f2b2b8cdf8", kill_on_drop: false }` [INFO] [stdout] 0534c26ce288dd833fb48373c26a43e9d08a83b667ef5e2ff8bac9f2b2b8cdf8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ea2d53e89a20f956f9f13b65dec1d19a18a4d620ef00a92aaaaa4529b9251a24 [INFO] running `Command { std: "docker" "start" "-a" "ea2d53e89a20f956f9f13b65dec1d19a18a4d620ef00a92aaaaa4529b9251a24", kill_on_drop: false }` [INFO] [stderr] warning: function `with_bash_env_source` is never used [INFO] [stderr] --> src/local_bash_tools.rs:232:8 [INFO] [stderr] | [INFO] [stderr] 232 | pub fn with_bash_env_source(source: F) -> LocalBashOption [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `modelrelay` (lib test) generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/modelrelay-df81e2aba657ad24) [INFO] [stdout] [INFO] [stdout] running 151 tests [INFO] [stdout] test bash_policy::tests::policy_blocks_eval_by_default ... ok [INFO] [stdout] test bash_policy::tests::policy_allows_env_prefixed_command ... ok [INFO] [stdout] test bash_policy::tests::policy_blocks_subshell_by_default ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_detects_bash_dash_c_subshell ... ok [INFO] [stdout] test bash_policy::tests::policy_blocks_pipe_to_shell ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_detects_dangerous_redirect ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_detects_pipe_chain ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_detects_subshell_and_eval ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_detects_subshell_in_double_quotes ... ok [INFO] [stdout] test bash_policy::tests::policy_allows_explicit_opt_out ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_handles_quoted_command ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_normalizes_primary_command ... ok [INFO] [stdout] test client::tests::api_key_parse_rejects_invalid ... ok [INFO] [stdout] test bash_tokenizer::tests::tokenize_skips_leading_env_assignments ... ok [INFO] [stdout] test client::tests::client_from_api_key_creates_builder ... ok [INFO] [stdout] test convenience::tests::test_agent_options_builder ... ok [INFO] [stdout] test client::tests::client_for_customer_rejects_empty ... ok [INFO] [stdout] test client::tests::client_new_accepts_access_token ... ok [INFO] [stdout] test client::tests::client_new_requires_auth ... ok [INFO] [stdout] test client::tests::client_from_secret_key_creates_builder ... ok [INFO] [stdout] test client::tests::client_new_accepts_api_key ... ok [INFO] [stdout] test client::tests::client_with_key_creates_builder ... ok [INFO] [stdout] test client::tests::client_with_token_creates_builder ... ok [INFO] [stdout] test core::tests::consumes_ndjson_lines ... ok [INFO] [stdout] test convenience::tests::test_chat_options_builder ... ok [INFO] [stdout] test errors::tests::api_error_keeps_status_and_body ... ok [INFO] [stdout] test errors::tests::validation_error_formats_with_field ... ok [INFO] [stdout] test generated::extensions::tests::message_role_as_str ... ok [INFO] [stdout] test core::tests::parses_single_tool_call_field ... ok [INFO] [stdout] test core::tests::returns_error_on_invalid_json ... ok [INFO] [stdout] test core::tests::filters_keepalive_events ... ok [INFO] [stdout] test core::tests::returns_error_on_missing_type_field ... ok [INFO] [stdout] test core::tests::handles_incomplete_buffer ... ok [INFO] [stdout] test generated::extensions::tests::message_role_display ... ok [INFO] [stdout] test core::tests::parses_tool_use_events ... ok [INFO] [stdout] test generated::tests::validation::generated_account_balance_response_roundtrip ... ok [INFO] [stdout] test generated::tests::validation::generated_account_balance_response_deserializes ... ok [INFO] [stdout] test generated::tests::validation::generated_customer_deserializes ... ok [INFO] [stdout] test generated::tests::validation::generated_api_error_deserializes ... ok [INFO] [stdout] test generated::tests::validation::generated_tier_deserializes ... ok [INFO] [stdout] test generated::tests::validation::generated_types_roundtrip ... ok [INFO] [stdout] test generated::tests::validation::generated_project_deserializes ... ok [INFO] [stdout] test http::tests::backoff_respects_max_and_jitter ... ok [INFO] [stdout] test http::tests::response_options_disable_retry_sets_single_attempt ... ok [INFO] [stdout] test http::tests::retry_post_toggle_honored ... ok [INFO] [stdout] test identifiers::tests::provider_id_serializes_as_string ... ok [INFO] [stdout] test identifiers::tests::provider_id_from_string ... ok [INFO] [stdout] test identifiers::tests::tier_code_validates_pattern ... ok [INFO] [stdout] test identifiers::tests::tier_code_deserializes_from_string ... ok [INFO] [stdout] test http::tests::header_list_accepts_valid_entries ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_default_deny ... ok [INFO] [stdout] test convenience::tests::test_get_all_tool_calls_empty ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_empty_command_rejected ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_allow_all ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_policy_blocks_chains_by_default ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_policy_blocks_pipe_to_shell ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_allow_command ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_output_truncation ... ok [INFO] [stdout] test local_fs_tools::tests::test_fs_list_files_path_traversal ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_deny_command_precedence ... ok [INFO] [stdout] test local_fs_tools::tests::test_fs_read_file_hard_cap ... ok [INFO] [stdout] test local_fs_tools::tests::test_fs_list_files_max_entries ... ok [INFO] [stdout] test local_fs_tools::tests::test_fs_read_file_max_bytes ... ok [INFO] [stdout] test local_fs_tools::tests::test_fs_search_max_matches_and_ignores ... ok [INFO] [stdout] test local_tools_common::tests::test_error_display_root_not_directory ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_high_output_no_deadlock ... ok [INFO] [stdout] test local_tools_common::tests::test_error_display_root_not_found ... ok [INFO] [stdout] test local_tools_common::tests::test_error_display_root_required ... ok [INFO] [stdout] test local_tools_common::tests::test_filter_env_allowlist_preserves_values ... ok [INFO] [stdout] test local_tools_common::tests::test_filter_env_empty_mode ... ok [INFO] [stdout] test local_tools_common::tests::test_error_display_invalid_config ... ok [INFO] [stdout] test local_tools_common::tests::test_resolve_root_empty_path ... ok [INFO] [stdout] test local_tools_common::tests::test_filter_env_allowlist_filters_correctly ... ok [INFO] [stdout] test local_tools_common::tests::test_filter_env_inherit_all ... ok [INFO] [stdout] test local_tools_common::tests::test_filter_env_allowlist_empty_allowlist ... ok [INFO] [stdout] test local_tools_common::tests::test_resolve_root_file_not_directory ... ok [INFO] [stdout] test local_tools_common::tests::test_resolve_root_nonexistent_path ... ok [INFO] [stdout] test plugins::tests::parse_markdown_frontmatter_tools ... ok [INFO] [stdout] test plugins::tests::dynamic_workflow_tool_scoping ... ok [INFO] [stdout] test local_tools_common::tests::test_resolve_root_resolves_symlinks ... ok [INFO] [stdout] test plugins::tests::to_workflow_dynamic_requires_agent_descriptions ... ok [INFO] [stdout] test plugins::tests::to_workflow_dynamic_rejects_unknown_plan_agents ... ok [INFO] [stdout] test sql_tool_loop::tests::test_normalize_sql_tool_loop_config_disables_sample_rows_without_handler ... ok [INFO] [stdout] test local_tools_common::tests::test_resolve_root_valid_directory ... ok [INFO] [stdout] test sql_tool_loop::tests::test_sql_tool_loop_builder_sets_options ... ok [INFO] [stdout] test structured::tests::test_default_retry_handler ... ok [INFO] [stdout] test structured::tests::test_output_format_custom_name ... ok [INFO] [stdout] test structured::tests::test_output_format_from_type ... ok [INFO] [stdout] test structured::tests::test_structured_error_kind_display ... ok [INFO] [stdout] test telemetry::tests::first_token_error_only_fires_once ... ok [INFO] [stdout] test telemetry::tests::stream_metrics_capture_first_token_and_usage ... ok [INFO] [stdout] test token_providers::tests::token_cache_not_reusable_when_empty ... ok [INFO] [stdout] test token_providers::tests::token_cache_not_reusable_when_expired ... ok [INFO] [stdout] test token_providers::tests::token_cache_not_reusable_within_skew ... ok [INFO] [stdout] test token_providers::tests::token_cache_reusable_when_fresh ... ok [INFO] [stdout] test tools::tests::test_create_retry_messages ... ok [INFO] [stdout] test tools::tests::test_execute_not_retryable_for_other_errors ... ok [INFO] [stdout] test sql_tool_loop::tests::test_execute_sql_rejects_non_read_only_validation ... ok [INFO] [stdout] test tools::tests::test_execute_with_retry_no_errors ... ok [INFO] [stdout] test tools::tests::test_execute_sets_is_retryable_for_validation_error ... ok [INFO] [stdout] test tools::tests::test_execute_with_retry_preserves_successful_results ... ok [INFO] [stdout] test tools::tests::test_execute_with_retry_respects_max_retries ... ok [INFO] [stdout] test tools::tests::test_execute_sets_is_retryable_for_json_parse_error ... ok [INFO] [stdout] test tools::tests::test_format_tool_error_for_model_not_retryable ... ok [INFO] [stdout] test tools::tests::test_function_tool_creation ... ok [INFO] [stdout] test tools::tests::test_format_tool_error_for_model_retryable ... ok [INFO] [stdout] test plugins::tests::to_workflow_dynamic_builds_workflow_from_plan ... ok [INFO] [stdout] test tools::tests::test_parse_and_validate_tool_args_success ... ok [INFO] [stdout] test tools::tests::test_execute_with_retry_retries_on_parse_error ... ok [INFO] [stdout] test http::tests::header_list_panics_on_empty_value - should panic ... ok [INFO] [stdout] test http::tests::header_list_panics_on_whitespace_only - should panic ... ok [INFO] [stdout] test tools::tests::test_has_retryable_errors ... ok [INFO] [stdout] test tools::tests::test_parse_tool_args_invalid_json ... ok [INFO] [stdout] test http::tests::header_list_panics_on_empty_key - should panic ... ok [INFO] [stdout] test tools::tests::test_parse_tool_args_missing_required_field ... ok [INFO] [stdout] test tools::tests::test_parse_tool_args_empty_arguments ... ok [INFO] [stdout] test tools::tests::test_parse_tool_args_success ... ok [INFO] [stdout] test tools::tests::test_parse_tool_args_with_defaults ... ok [INFO] [stdout] test tools::tests::test_tool_args_error_display ... ok [INFO] [stdout] test tools::tests::test_serialize_user_ask_result ... ok [INFO] [stdout] test tools::tests::test_tool_call_accumulator ... ok [INFO] [stdout] test tools::tests::test_tool_registry_execute_all ... ok [INFO] [stdout] test tools::tests::test_tool_registry_execute_handler_error ... ok [INFO] [stdout] test tools::tests::test_tool_registry_execute_unknown_tool ... ok [INFO] [stdout] test tools::tests::test_tool_registry_has_and_registered_tools ... ok [INFO] [stdout] test tools::tests::test_parse_and_validate_tool_args_validation_failure ... ok [INFO] [stdout] test tools::tests::test_tool_registry_execute_malformed_json ... ok [INFO] [stdout] test tools::tests::test_tool_result_message ... ok [INFO] [stdout] test tools::tests::test_tool_registry_unregister ... ok [INFO] [stdout] test tools::tests::test_typed_tool_parse_call_missing_function ... ok [INFO] [stdout] test tools::tests::test_tool_registry_results_to_messages ... ok [INFO] [stdout] test tools::tests::test_unknown_tool_error_display ... ok [INFO] [stdout] test tools::tests::test_typed_tool_parse_call_success ... ok [INFO] [stdout] test tools::tests::test_typed_tool_parse_call_name_mismatch ... ok [INFO] [stdout] test types::tests::model_round_trip_and_trim ... ok [INFO] [stdout] test types::tests::response_text_empty_output ... ok [INFO] [stdout] test types::tests::response_decode_records_warning_for_missing_role ... ok [INFO] [stdout] test tools::tests::test_tool_registry_execute_success ... ok [INFO] [stdout] test types::tests::response_text_preserves_order_across_assistant_output_items ... ok [INFO] [stdout] test types::tests::response_text_preserves_order_across_multiple_text_parts ... ok [INFO] [stdout] test types::tests::response_text_ignores_non_assistant_messages ... ok [INFO] [stdout] test types::tests::response_text_tool_call_only_messages_yield_empty ... ok [INFO] [stdout] test types::tests::responses_request_validation_guards_required_fields ... ok [INFO] [stdout] test wrapper_v1::tests::validate_error_requires_fields ... ok [INFO] [stdout] test wrapper_v1::tests::validate_get_requires_id ... ok [INFO] [stdout] test wrapper_v1::tests::validate_search_requires_ids ... ok [INFO] [stdout] test tools::tests::test_parse_user_ask_args ... ok [INFO] [stdout] test types::tests::response_decode_allows_missing_content_without_warning ... ok [INFO] [stdout] test types::tests::stop_reason_round_trips_and_allows_other ... ok [INFO] [stdout] test tools::tests::test_get_retryable_errors ... ok [INFO] [stdout] test local_bash_tools::tests::test_bash_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 151 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s [INFO] [stdout] [INFO] [stderr] Running tests/http_client.rs (/opt/rustwide/target/debug/deps/http_client-d6395d7ee6a79f95) [INFO] [stdout] [INFO] [stdout] running 18 tests [INFO] [stdout] test responses_batch_posts_payload ... ok [INFO] [stdout] test responses_stream_rejects_non_ndjson_content_type ... ok [INFO] [stdout] test responses_retries_on_server_error ... ok [INFO] [stdout] test responses_handles_api_error_response ... ok [INFO] [stdout] test responses_includes_optional_parameters ... ok [INFO] [stdout] test responses_sends_correct_request_and_parses_response ... ok [INFO] [stdout] test responses_text_errors_on_empty_output ... ok [INFO] [stdout] test responses_text_happy_path ... ok [INFO] [stdout] test responses_text_requires_model_without_customer_id ... ok [INFO] [stdout] test responses_stream_deltas_emits_completion_only_content ... ok [INFO] [stdout] test responses_streams_ndjson_events ... ok [INFO] [stdout] test state_handles_create_rejects_large_ttl ... ok [INFO] [stdout] test responses_streams_structured_json ... ok [INFO] [stdout] test state_handles_list_and_delete ... ok [INFO] [stdout] test responses_text_allows_customer_id_without_model ... ok [INFO] [stdout] test runs_submit_tool_results_posts_payload ... ok [INFO] [stdout] test state_handles_create_posts_payload ... ok [INFO] [stdout] test responses_stream_ttft_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-4b5a419280bcfe9c) [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/stream_timeouts.rs (/opt/rustwide/target/debug/deps/stream_timeouts-f4da8cb5d32c0ed1) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test stream_ttft_timeout ... ok [INFO] [stdout] test stream_idle_timeout ... ok [INFO] [stdout] test stream_total_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/tools_conformance.rs (/opt/rustwide/target/debug/deps/tools_conformance-ed8c849990a47aa3) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tools_conformance_local_fs ... 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/workflow_constants.rs (/opt/rustwide/target/debug/deps/workflow_constants-89193d7f7e2b7d10) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test llm_text_output_valid_rfc6901_format ... ok [INFO] [stdout] test llm_text_output_starts_with_output ... ok [INFO] [stdout] test llm_user_message_text_starts_with_input ... ok [INFO] [stdout] test llm_text_output_matches_platform ... ok [INFO] [stdout] test llm_user_message_text_no_request_prefix ... ok [INFO] [stdout] test llm_user_message_text_valid_rfc6901_format ... ok [INFO] [stderr] Doc-tests modelrelay [INFO] [stdout] test llm_user_message_text_matches_platform ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 46 tests [INFO] [stdout] test src/client.rs - client::Client (line 68) ... ignored [INFO] [stdout] test src/client.rs - client::Client::account_balance (line 406) ... ignored [INFO] [stdout] test src/client.rs - client::Client::from_token_provider (line 249) ... ignored [INFO] [stdout] test src/client.rs - client::Client::tiers (line 340) ... ignored [INFO] [stdout] test src/convenience.rs - convenience::Client::agent (line 194) ... ignored [INFO] [stdout] test src/convenience.rs - convenience::Client::ask (line 159) ... ignored [INFO] [stdout] test src/convenience.rs - convenience::Client::chat (line 122) ... ignored [INFO] [stdout] test src/identifiers.rs - identifiers (line 8) ... ignored [INFO] [stdout] test src/images.rs - images::ImagesClient (line 19) ... ignored [INFO] [stdout] test src/images.rs - images::ImagesClient::get (line 82) ... ignored [INFO] [stdout] test src/images.rs - images::ImagesClient::pin (line 117) ... ignored [INFO] [stdout] test src/images.rs - images::ImagesClient::unpin (line 150) ... ignored [INFO] [stdout] test src/lib.rs - generated (line 15) ... ignored [INFO] [stdout] test src/local_bash_tools.rs - local_bash_tools::LocalBashToolPack (line 173) ... ignored [INFO] [stdout] test src/local_bash_tools.rs - local_bash_tools::LocalBashToolPack::tool_definitions (line 283) ... ignored [INFO] [stdout] test src/responses.rs - responses::ResponseBuilder::continue_from (line 370) ... ignored [INFO] [stdout] test src/responses.rs - responses::ResponseBuilder::tool_results (line 348) ... ignored [INFO] [stdout] test src/sessions.rs - sessions (line 9) ... ignored [INFO] [stdout] test src/sessions.rs - sessions::SessionsClient::add_message (line 231) ... ignored [INFO] [stdout] test src/sessions.rs - sessions::SessionsClient::create (line 75) ... ignored [INFO] [stdout] test src/sessions.rs - sessions::SessionsClient::delete (line 199) ... ignored [INFO] [stdout] test src/sessions.rs - sessions::SessionsClient::get (line 166) ... ignored [INFO] [stdout] test src/sessions.rs - sessions::SessionsClient::list (line 105) ... ignored [INFO] [stdout] test src/structured.rs - structured (line 9) ... ignored [INFO] [stdout] test src/structured.rs - structured::output_format_from_type (line 415) ... ignored [INFO] [stdout] test src/token_providers.rs - token_providers (line 10) ... ignored [INFO] [stdout] test src/tools.rs - tools::ToolBuilder (line 884) ... ignored [INFO] [stdout] test src/tools.rs - tools::ToolBuilder::add_async (line 990) ... ignored [INFO] [stdout] test src/tools.rs - tools::ToolBuilder::add_sync (line 938) ... ignored [INFO] [stdout] test src/tools.rs - tools::ToolRegistry (line 534) ... ignored [INFO] [stdout] test src/tools.rs - tools::ToolSchema (line 849) ... ignored [INFO] [stdout] test src/tools.rs - tools::ValidateArgs (line 380) ... ignored [INFO] [stdout] test src/tools.rs - tools::execute_with_retry (line 1165) ... ignored [INFO] [stdout] test src/tools.rs - tools::function_tool_from_type (line 745) ... ignored [INFO] [stdout] test src/tools.rs - tools::parse_and_validate_tool_args (line 433) ... ignored [INFO] [stdout] test src/tools.rs - tools::parse_tool_args (line 328) ... ignored [INFO] [stdout] test src/tools.rs - tools::tool_handler (line 703) ... ignored [INFO] [stdout] test src/workflow/events.rs - workflow::events::RunEventV0 (line 324) ... ignored [INFO] [stdout] test src/workflow/ids.rs - workflow::ids (line 16) ... ignored [INFO] [stdout] test src/workflow_intent_builder.rs - workflow_intent_builder::chain (line 274) ... ignored [INFO] [stdout] test src/workflow_intent_builder.rs - workflow_intent_builder::parallel (line 321) ... ignored [INFO] [stdout] test src/client.rs - client::Client::with_token (line 225) - compile ... ok [INFO] [stdout] test src/client.rs - client::ClientBuilder (line 1323) - compile ... ok [INFO] [stdout] test src/client.rs - client::Client::from_api_key (line 207) - compile ... ok [INFO] [stdout] test src/client.rs - client::Client::from_secret_key (line 190) - compile ... ok [INFO] [stdout] test src/client.rs - client::Client::with_key (line 174) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 41 ignored; 0 measured; 0 filtered out; finished in 0.46s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ea2d53e89a20f956f9f13b65dec1d19a18a4d620ef00a92aaaaa4529b9251a24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea2d53e89a20f956f9f13b65dec1d19a18a4d620ef00a92aaaaa4529b9251a24", kill_on_drop: false }` [INFO] [stdout] ea2d53e89a20f956f9f13b65dec1d19a18a4d620ef00a92aaaaa4529b9251a24