[INFO] cloning repository https://github.com/tlkahn/llm-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tlkahn/llm-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftlkahn%2Fllm-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftlkahn%2Fllm-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fd9049f86dfcc318d70cf9c615bf455d1da2782b
[INFO] testing tlkahn/llm-rs against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftlkahn%2Fllm-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/tlkahn/llm-rs
[INFO] finished tweaking git repo https://github.com/tlkahn/llm-rs
[INFO] tweaked toml for git repo https://github.com/tlkahn/llm-rs written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tlkahn/llm-rs on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tlkahn/llm-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 10365a643a806ec51339f152f65c1c378ef8e635202f6576c55adb77e30ccbcf
[INFO] running `Command { std: "docker" "start" "-a" "10365a643a806ec51339f152f65c1c378ef8e635202f6576c55adb77e30ccbcf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "10365a643a806ec51339f152f65c1c378ef8e635202f6576c55adb77e30ccbcf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "10365a643a806ec51339f152f65c1c378ef8e635202f6576c55adb77e30ccbcf", kill_on_drop: false }`
[INFO] [stdout] 10365a643a806ec51339f152f65c1c378ef8e635202f6576c55adb77e30ccbcf
[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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 986a6ddf44b2f7c60723d3a4669527402ee1a5f328b5be28b7302f3512219526
[INFO] running `Command { std: "docker" "start" "-a" "986a6ddf44b2f7c60723d3a4669527402ee1a5f328b5be28b7302f3512219526", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rtoolbox v0.0.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling rpassword v7.4.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling rustyline v15.0.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling llm-core v0.11.0 (/opt/rustwide/workdir/crates/llm-core)
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling llm-store v0.11.0 (/opt/rustwide/workdir/crates/llm-store)
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling llm-openai v0.11.0 (/opt/rustwide/workdir/crates/llm-openai)
[INFO] [stderr]    Compiling llm-anthropic v0.11.0 (/opt/rustwide/workdir/crates/llm-anthropic)
[INFO] [stderr]    Compiling llm-cli v0.11.0 (/opt/rustwide/workdir/crates/llm-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 04s
[INFO] running `Command { std: "docker" "inspect" "986a6ddf44b2f7c60723d3a4669527402ee1a5f328b5be28b7302f3512219526", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "986a6ddf44b2f7c60723d3a4669527402ee1a5f328b5be28b7302f3512219526", kill_on_drop: false }`
[INFO] [stdout] 986a6ddf44b2f7c60723d3a4669527402ee1a5f328b5be28b7302f3512219526
[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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9a33731bfdde406323221b3aabfb4fdf296a5167d7ebe396b207012b15d93613
[INFO] running `Command { std: "docker" "start" "-a" "9a33731bfdde406323221b3aabfb4fdf296a5167d7ebe396b207012b15d93613", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling temp-env v0.3.6
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling llm-core v0.11.0 (/opt/rustwide/workdir/crates/llm-core)
[INFO] [stderr]    Compiling llm-store v0.11.0 (/opt/rustwide/workdir/crates/llm-store)
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[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 llm-anthropic v0.11.0 (/opt/rustwide/workdir/crates/llm-anthropic)
[INFO] [stderr]    Compiling llm-openai v0.11.0 (/opt/rustwide/workdir/crates/llm-openai)
[INFO] [stderr]    Compiling llm-cli v0.11.0 (/opt/rustwide/workdir/crates/llm-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "9a33731bfdde406323221b3aabfb4fdf296a5167d7ebe396b207012b15d93613", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a33731bfdde406323221b3aabfb4fdf296a5167d7ebe396b207012b15d93613", kill_on_drop: false }`
[INFO] [stdout] 9a33731bfdde406323221b3aabfb4fdf296a5167d7ebe396b207012b15d93613
[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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5ca7e5d93ad10eee9909f8d14e0df5863904d86bcdb7c276be021090d2c052de
[INFO] running `Command { std: "docker" "start" "-a" "5ca7e5d93ad10eee9909f8d14e0df5863904d86bcdb7c276be021090d2c052de", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_anthropic-2d415dcf60d23b18)
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test messages::tests::build_messages_empty_system ... ok
[INFO] [stdout] test messages::tests::build_messages_multi_turn_conversation ... ok
[INFO] [stdout] test messages::tests::build_messages_multi_turn_with_tool_calls ... ok
[INFO] [stdout] test messages::tests::build_messages_user_only ... ok
[INFO] [stdout] test messages::tests::build_messages_with_system_does_not_add_system_message ... ok
[INFO] [stdout] test messages::tests::build_messages_without_tool_results_unchanged ... ok
[INFO] [stdout] test provider::tests::default_max_tokens_is_4096 ... ok
[INFO] [stdout] test provider::tests::missing_key_returns_error ... ok
[INFO] [stdout] test messages::tests::build_messages_with_tool_results ... ok
[INFO] [stdout] test provider::tests::provider_id_is_anthropic ... ok
[INFO] [stdout] test provider::tests::provider_needs_anthropic_key ... ok
[INFO] [stdout] test provider::tests::provider_lists_three_models ... ok
[INFO] [stdout] test provider::tests::api_error_response ... ok
[INFO] [stdout] test provider::tests::non_streaming_schema_response ... ok
[INFO] [stdout] test provider::tests::http_429_returns_http_error ... ok
[INFO] [stdout] test provider::tests::non_streaming_response ... ok
[INFO] [stdout] test sse::tests::event_lines_ignored_in_favor_of_json_type ... ok
[INFO] [stdout] test provider::tests::http_500_returns_http_error ... ok
[INFO] [stdout] test provider::tests::streaming_response ... ok
[INFO] [stdout] test provider::tests::request_includes_tools_when_prompt_has_tools ... ok
[INFO] [stdout] test provider::tests::non_streaming_tool_call ... ok
[INFO] [stdout] test sse::tests::incremental_parser_done_on_message_stop ... ok
[INFO] [stdout] test provider::tests::streaming_schema_response ... ok
[INFO] [stdout] test sse::tests::incremental_parser_multiple_events_in_one_feed ... ok
[INFO] [stdout] test sse::tests::message_delta_contains_output_usage ... ok
[INFO] [stdout] test sse::tests::message_stop_is_detected ... ok
[INFO] [stdout] test sse::tests::incremental_parser_handles_partial_data ... ok
[INFO] [stdout] test types::tests::content_block_tool_result_serializes ... ok
[INFO] [stdout] test types::tests::content_block_tool_use_deserializes ... ok
[INFO] [stdout] test provider::tests::system_prompt_is_top_level ... ok
[INFO] [stdout] test sse::tests::parse_single_content_block_delta ... ok
[INFO] [stdout] test sse::tests::parse_full_session ... ok
[INFO] [stdout] test types::tests::error_response_deserialize ... ok
[INFO] [stdout] test sse::tests::ping_events_handled ... ok
[INFO] [stdout] test provider::tests::streaming_tool_call ... ok
[INFO] [stdout] test types::tests::messages_request_with_system_and_stream ... ok
[INFO] [stdout] test types::tests::messages_response_deserialize ... ok
[INFO] [stdout] test types::tests::content_delta_input_json_delta_deserializes ... ok
[INFO] [stdout] test types::tests::stream_event_content_block_start ... ok
[INFO] [stdout] test types::tests::max_tokens_always_serialized ... ok
[INFO] [stdout] test types::tests::stream_event_content_block_delta ... ok
[INFO] [stdout] test types::tests::messages_request_minimal ... ok
[INFO] [stdout] test types::tests::messages_request_with_tools_serializes ... ok
[INFO] [stdout] test types::tests::stream_event_message_start ... ok
[INFO] [stdout] test types::tests::stream_event_message_stop ... ok
[INFO] [stdout] test types::tests::stream_event_content_block_start_tool_use ... ok
[INFO] [stdout] test sse::tests::message_start_contains_usage ... ok
[INFO] [stdout] test types::tests::stream_event_content_block_stop ... ok
[INFO] [stdout] test types::tests::stream_event_ping ... ok
[INFO] [stdout] test types::tests::stream_event_message_delta ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/llm-e115ff6d449e3563)
[INFO] [stdout] 
[INFO] [stdout] running 57 tests
[INFO] [stdout] test commands::dry_run::tests::json_render_includes_prompt_when_verbose ... ok
[INFO] [stdout] test commands::dry_run::tests::json_render_omits_none_fields ... ok
[INFO] [stdout] test commands::dry_run::tests::plain_render_includes_prompt_json_when_present ... ok
[INFO] [stdout] test commands::dry_run::tests::plain_render_includes_all_fields ... ok
[INFO] [stdout] test commands::dry_run::tests::json_render_round_trips ... ok
[INFO] [stdout] test commands::dry_run::tests::plain_render_omits_absent_optional_fields ... ok
[INFO] [stdout] test commands::dry_run::tests::plain_render_options_sorted ... ok
[INFO] [stdout] test commands::schemas::tests::make_schema_id_deterministic ... ok
[INFO] [stdout] test commands::schemas::tests::make_schema_id_differs_for_different_schemas ... ok
[INFO] [stdout] test commands::tests::build_options_cli_only ... ok
[INFO] [stdout] test commands::tests::build_options_cli_overrides_config ... ok
[INFO] [stdout] test commands::tests::build_options_empty ... ok
[INFO] [stdout] test commands::tests::build_options_config_only ... ok
[INFO] [stdout] test commands::tests::build_options_merge ... ok
[INFO] [stdout] test commands::schemas::tests::scan_schemas_nonexistent_dir ... ok
[INFO] [stdout] test commands::schemas::tests::scan_schemas_empty_dir ... ok
[INFO] [stdout] test retry::tests::delegates_on_success ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_handles_empty_path ... ok
[INFO] [stdout] test retry::tests::preserves_provider_metadata ... ok
[INFO] [stdout] test retry::tests::no_retry_on_permanent_error ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_providers_finds_matching_binaries ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_deduplicates_across_path_dirs ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_tools_skips_non_executable ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_tools_skips_directories ... ok
[INFO] [stdout] test retry::tests::gives_up_after_max_retries ... ok
[INFO] [stdout] test retry::tests::retries_on_retryable_error ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_provider_id_returns_trimmed_string ... ok
[INFO] [stdout] test subprocess::protocol::tests::chunk_to_protocol_chunk_conversion ... ok
[INFO] [stdout] test subprocess::protocol::tests::done_serializes_correctly ... ok
[INFO] [stdout] test subprocess::protocol::tests::protocol_chunk_to_chunk_conversion ... ok
[INFO] [stdout] test subprocess::protocol::tests::provider_request_serializes ... ok
[INFO] [stdout] test subprocess::protocol::tests::provider_response_deserializes ... ok
[INFO] [stdout] test subprocess::protocol::tests::roundtrip_all_variants ... ok
[INFO] [stdout] test subprocess::protocol::tests::text_serializes_correctly ... ok
[INFO] [stdout] test subprocess::protocol::tests::tool_call_delta_serializes ... ok
[INFO] [stdout] test subprocess::protocol::tests::tool_call_start_serializes_with_name_and_id ... ok
[INFO] [stdout] test subprocess::protocol::tests::usage_serializes_with_input_output ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_tool_schema_error_on_invalid_json ... ok
[INFO] [stdout] test subprocess::discovery::tests::discover_tools_finds_matching_binaries ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_provider_key_info_parses ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_tool_schema_parses_valid_output ... ok
[INFO] [stdout] test subprocess::provider::tests::provider_id_returns_id ... ok
[INFO] [stdout] test subprocess::provider::tests::non_streaming_with_tool_calls ... ok
[INFO] [stdout] test subprocess::provider::tests::provider_models_returns_list ... ok
[INFO] [stdout] test subprocess::provider::tests::non_streaming_error_on_nonzero_exit ... ok
[INFO] [stdout] test subprocess::provider::tests::streaming_malformed_jsonl ... ok
[INFO] [stdout] test subprocess::tool::tests::execute_tool_empty_stdout ... ok
[INFO] [stdout] test subprocess::provider::tests::provider_needs_key_reflects_requirement ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_tool_schema_error_on_nonzero_exit ... ok
[INFO] [stdout] test subprocess::tool::tests::execute_unknown_tool ... ok
[INFO] [stdout] test subprocess::tool::tests::execute_tool_nonzero_exit ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_provider_models_parses_json_array ... ok
[INFO] [stdout] test subprocess::discovery::tests::fetch_tool_schema_error_on_timeout ... ok
[INFO] [stdout] test subprocess::tool::tests::execute_tool_timeout ... ok
[INFO] [stdout] test subprocess::tool::tests::execute_tool_success ... ok
[INFO] [stdout] test subprocess::provider::tests::streaming_execution ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-ee24e55b5843db2c)
[INFO] [stdout] test subprocess::provider::tests::non_streaming_execution ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 127 tests
[INFO] [stdout] test agent_list_empty ... ok
[INFO] [stdout] test agent_path_shows_directories ... ok
[INFO] [stdout] test agent_init_global ... ok
[INFO] [stdout] test agent_init_already_exists ... ok
[INFO] [stdout] test agent_init_local ... ok
[INFO] [stdout] test agent_list_with_agents ... ok
[INFO] [stdout] test agent_run_dry_run_json_verbose_includes_prompt_field ... ok
[INFO] [stdout] test agent_run_dry_run_does_not_log ... ok
[INFO] [stdout] test agent_run_basic ... ok
[INFO] [stdout] test agent_run_dry_run_does_not_call_provider ... ok
[INFO] [stdout] test agent_run_dry_run_model_source_cli ... ok
[INFO] [stdout] test agent_run_dry_run_json_envelope ... ok
[INFO] [stdout] test agent_run_dry_run_prints_resolved_config ... ok
[INFO] [stdout] test agent_budget_exhausted_output ... ok
[INFO] [stdout] test agent_run_max_parallel_tools_cli_overrides_toml ... ok
[INFO] [stdout] test agent_run_dry_run_verbose_vv_also_dumps_prompt_json ... ok
[INFO] [stdout] test agent_run_json_output ... ok
[INFO] [stdout] test agent_run_dry_run_unknown_tool ... ok
[INFO] [stdout] test agent_run_dry_run_verbose_includes_prompt_json ... ok
[INFO] [stdout] test agent_run_dry_run_succeeds_without_api_key ... ok
[INFO] [stdout] test agent_run_parallel_tools_toml_disables ... ok
[INFO] [stdout] test agent_run_nonexistent ... ok
[INFO] [stdout] test agent_run_dry_run_unknown_model ... ok
[INFO] [stdout] test agent_run_model_override ... ok
[INFO] [stdout] test agent_run_parallel_tools_cli_overrides_toml ... ok
[INFO] [stdout] test agent_run_parallel_defaults_are_parallel ... ok
[INFO] [stdout] test agent_show_existing ... ok
[INFO] [stdout] test agent_run_unknown_tool ... ok
[INFO] [stdout] test agent_run_stdin ... ok
[INFO] [stdout] test aliases_list_empty ... ok
[INFO] [stdout] test agent_run_dry_run_unknown_agent ... ok
[INFO] [stdout] test agent_run_system_override ... ok
[INFO] [stdout] test agent_show_nonexistent ... ok
[INFO] [stdout] test aliases_path ... ok
[INFO] [stdout] test aliases_show_missing ... ok
[INFO] [stdout] test aliases_remove ... ok
[INFO] [stdout] test aliases_remove_missing ... ok
[INFO] [stdout] test chat_sequential_tools_flag_parses ... ok
[INFO] [stdout] test agent_run_plain_dry_run_shows_parallel_config ... ok
[INFO] [stdout] test aliases_show ... ok
[INFO] [stdout] test aliases_set_and_list ... ok
[INFO] [stdout] test exit_code_missing_key ... ok
[INFO] [stdout] test default_subcommand_stdin ... ok
[INFO] [stdout] test exit_code_api_error ... ok
[INFO] [stdout] test agent_run_tools_approve_forces_sequential_even_with_max_parallel ... ok
[INFO] [stdout] test help_flag ... ok
[INFO] [stdout] test cid_continues_specific_conversation ... ok
[INFO] [stdout] test help_shows_options_subcommand ... ok
[INFO] [stdout] test help_shows_plugins_subcommand ... ok
[INFO] [stdout] test help_shows_aliases_subcommand ... ok
[INFO] [stdout] test help_shows_agent_subcommand ... ok
[INFO] [stdout] test aliases_set_overwrites ... ok
[INFO] [stdout] test default_subcommand ... ok
[INFO] [stdout] test keys_get_missing ... ok
[INFO] [stdout] test keys_path ... ok
[INFO] [stdout] test exit_code_unknown_model ... ok
[INFO] [stdout] test logs_list_json ... ok
[INFO] [stdout] test continue_conversation_appends_to_same_file ... ok
[INFO] [stdout] test keys_list ... ok
[INFO] [stdout] test logs_path ... ok
[INFO] [stdout] test logs_status_default ... ok
[INFO] [stdout] test logs_list_populated ... ok
[INFO] [stdout] test logs_list_response ... ok
[INFO] [stdout] test keys_set_and_get ... ok
[INFO] [stdout] test models_default_set ... ok
[INFO] [stdout] test models_default_show ... ok
[INFO] [stdout] test logs_on_off_toggle ... ok
[INFO] [stdout] test logs_list_empty ... ok
[INFO] [stdout] test options_clear_all ... ok
[INFO] [stdout] test models_list ... ok
[INFO] [stdout] test no_retry_on_401 ... ok
[INFO] [stdout] test options_clear_key ... ok
[INFO] [stdout] test options_clear_missing ... ok
[INFO] [stdout] test options_get_missing ... ok
[INFO] [stdout] test options_list_empty ... ok
[INFO] [stdout] test models_list_includes_subprocess_provider_models ... ok
[INFO] [stdout] test models_list_includes_anthropic ... ok
[INFO] [stdout] test messages_stdin_with_json_output ... ok
[INFO] [stdout] test json_output_envelope ... ok
[INFO] [stdout] test messages_from_file ... ok
[INFO] [stdout] test options_list ... ok
[INFO] [stdout] test options_set_and_get ... ok
[INFO] [stdout] test options_set_overwrites ... ok
[INFO] [stdout] test options_get_all ... ok
[INFO] [stdout] test prompt_anthropic_streaming ... ok
[INFO] [stdout] test prompt_anthropic_non_streaming ... ok
[INFO] [stdout] test plugins_list_shows_external_tool ... ok
[INFO] [stdout] test prompt_chain_limit_respected ... ok
[INFO] [stdout] test prompt_config_options_applied ... ok
[INFO] [stdout] test plugins_list_shows_compiled_providers ... ok
[INFO] [stdout] test prompt_key_flag ... ok
[INFO] [stdout] test prompt_creates_log ... ok
[INFO] [stdout] test prompt_cli_overrides_config ... ok
[INFO] [stdout] test plugins_list_shows_external_provider ... ok
[INFO] [stdout] test prompt_logging_disabled_in_config ... ok
[INFO] [stdout] test prompt_sequential_tools_flag_parses ... ok
[INFO] [stdout] test prompt_no_log_flag ... ok
[INFO] [stdout] test prompt_non_streaming ... ok
[INFO] [stdout] test prompt_stdin_pipe ... ok
[INFO] [stdout] test prompt_model_flag ... ok
[INFO] [stdout] test prompt_usage_flag ... ok
[INFO] [stdout] test prompt_streaming ... ok
[INFO] [stdout] test prompt_with_schema_json_literal ... ok
[INFO] [stdout] test prompt_with_option_flag ... ok
[INFO] [stdout] test prompt_with_schema_dsl ... ok
[INFO] [stdout] test prompt_with_schema_multi ... ok
[INFO] [stdout] test prompt_with_unknown_tool_error ... ok
[INFO] [stdout] test prompt_stdin_with_arg ... ok
[INFO] [stdout] test prompt_with_tool_flag ... ok
[INFO] [stdout] test retries_flag_accepted ... ok
[INFO] [stdout] test schemas_list_empty ... ok
[INFO] [stdout] test prompt_with_external_tool_in_chain ... ok
[INFO] [stdout] test schemas_dsl_command ... ok
[INFO] [stdout] test tools_list_shows_builtin_and_external ... ok
[INFO] [stdout] test verbose_flag_parsing ... ok
[INFO] [stdout] test tools_list_shows_external_tool ... ok
[INFO] [stdout] test prompt_system_flag ... ok
[INFO] [stdout] test tools_list_shows_builtins ... ok
[INFO] [stdout] test verbose_shows_cumulative_usage ... ok
[INFO] [stdout] test version_flag ... ok
[INFO] [stdout] test prompt_with_subprocess_provider ... ok
[INFO] [stdout] test verbose_vv_shows_messages_json ... ok
[INFO] [stdout] test usage_flag_shows_total_across_chain ... ok
[INFO] [stdout] test retries_exhausted_returns_error ... ok
[INFO] [stdout] test verbose_implies_tools_debug ... ok
[INFO] [stdout] test verbose_shows_chain_iteration_summary ... ok
[INFO] [stdout] test retries_on_429 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 127 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.23s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_core-1947a2040d1e9a9b)
[INFO] [stdout] 
[INFO] [stdout] running 215 tests
[INFO] [stdout] test agent::tests::agent_config_default ... ok
[INFO] [stdout] test agent::tests::agent_config_load_missing_file ... ok
[INFO] [stdout] test agent::tests::agent_config_load_invalid_toml ... ok
[INFO] [stdout] test agent::tests::agent_config_parses_parallel_tools_fields ... ok
[INFO] [stdout] test agent::tests::agent_config_no_retry ... ok
[INFO] [stdout] test agent::tests::discover_agents_empty_dirs ... ok
[INFO] [stdout] test agent::tests::agent_config_load_with_options ... ok
[INFO] [stdout] test agent::tests::agent_config_load_full_toml ... ok
[INFO] [stdout] test agent::tests::discover_agents_global_only ... ok
[INFO] [stdout] test agent::tests::discover_agents_local_shadows_global ... ok
[INFO] [stdout] test agent::tests::discover_agents_non_toml_ignored ... ok
[INFO] [stdout] test agent::tests::discover_agents_nonexistent_dirs ... ok
[INFO] [stdout] test agent::tests::agent_config_chain_limit_default ... ok
[INFO] [stdout] test agent::tests::agent_config_parallel_tools_defaults ... ok
[INFO] [stdout] test agent::tests::agent_config_parses_retry ... ok
[INFO] [stdout] test agent::tests::agent_config_load_minimal_toml ... ok
[INFO] [stdout] test agent::tests::agent_config_retry_defaults ... ok
[INFO] [stdout] test agent::tests::resolve_agent_found ... ok
[INFO] [stdout] test agent::tests::resolve_agent_not_found ... ok
[INFO] [stdout] test agent::tests::discover_agents_local_only ... ok
[INFO] [stdout] test agent::tests::discover_agents_sorted ... ok
[INFO] [stdout] test agent::tests::resolve_agent_local_wins ... ok
[INFO] [stdout] test agent::tests::resolve_budget_extracts_max_tokens ... ok
[INFO] [stdout] test agent::tests::resolve_model_falls_back_to_client_default ... ok
[INFO] [stdout] test agent::tests::resolve_retry_agent_config_wins_over_default ... ok
[INFO] [stdout] test agent::tests::resolve_model_uses_config_when_set ... ok
[INFO] [stdout] test agent::tests::resolve_system_none_when_neither ... ok
[INFO] [stdout] test agent::tests::resolve_system_prefers_arg_over_config ... ok
[INFO] [stdout] test agent::tests::resolve_budget_none_when_unset ... ok
[INFO] [stdout] test agent::tests::resolve_retry_cli_arg_wins ... ok
[INFO] [stdout] test agent::tests::resolve_retry_falls_back_to_client ... ok
[INFO] [stdout] test agent::tests::resolve_system_uses_config_when_no_arg ... ok
[INFO] [stdout] test agent::tests::resolve_tools_empty_config_returns_empty ... ok
[INFO] [stdout] test agent::tests::resolve_tools_filters_to_agent_whitelist ... ok
[INFO] [stdout] test agent::tests::resolve_tools_errors_on_unknown_with_cli_format ... ok
[INFO] [stdout] test chain::tests::chain_budget_multi_iteration_accumulates ... ok
[INFO] [stdout] test chain::tests::chain_budget_allows_under ... ok
[INFO] [stdout] test chain::tests::chain_budget_emits_event ... ok
[INFO] [stdout] test chain::tests::chain_budget_none_no_enforcement ... ok
[INFO] [stdout] test chain::tests::chain_budget_multi_iteration_stops ... ok
[INFO] [stdout] test chain::tests::chain_accumulates_messages_across_turns ... ok
[INFO] [stdout] test chain::tests::chain_callback_receives_chunks ... ok
[INFO] [stdout] test chain::tests::chain_captures_assistant_text_in_history ... ok
[INFO] [stdout] test chain::tests::chain_budget_stops_when_exceeded ... ok
[INFO] [stdout] test chain::tests::chain_emits_iteration_start_event ... ok
[INFO] [stdout] test chain::tests::chain_events_correct_sequence ... ok
[INFO] [stdout] test chain::tests::chain_none_on_event_works ... ok
[INFO] [stdout] test chain::tests::chain_emits_per_iteration_usage ... ok
[INFO] [stdout] test chain::tests::chain_limit_stops_loop ... ok
[INFO] [stdout] test chain::tests::chain_event_cumulative_usage ... ok
[INFO] [stdout] test chain::tests::chain_multiple_tool_calls ... ok
[INFO] [stdout] test chain::tests::chain_no_tool_calls_single_iteration ... ok
[INFO] [stdout] test chain::tests::chain_result_total_usage_single_iteration ... ok
[INFO] [stdout] test chain::tests::chain_preserves_initial_messages ... ok
[INFO] [stdout] test chain::tests::chain_single_tool_call_two_iterations ... ok
[INFO] [stdout] test chain::tests::chain_result_total_usage_multi_iteration ... ok
[INFO] [stdout] test chain::tests::chain_tool_error_continues ... ok
[INFO] [stdout] test chain::tests::chain_result_total_usage_none ... ok
[INFO] [stdout] test config::tests::config_clear_model_options ... ok
[INFO] [stdout] test config::tests::config_clear_option_missing ... ok
[INFO] [stdout] test config::tests::config_clear_model_options_missing ... ok
[INFO] [stdout] test config::tests::config_clear_option_removes_empty_model ... ok
[INFO] [stdout] test config::tests::config_effective_default_model_env_override ... ok
[INFO] [stdout] test config::tests::config_clear_option_single ... ok
[INFO] [stdout] test config::tests::config_default ... ok
[INFO] [stdout] test config::tests::config_effective_default_model_fallback ... ok
[INFO] [stdout] test config::tests::config_load_missing_file ... ok
[INFO] [stdout] test config::tests::config_load_invalid_toml ... ok
[INFO] [stdout] test config::tests::config_alias_roundtrip ... ok
[INFO] [stdout] test config::tests::config_load_partial_toml ... ok
[INFO] [stdout] test config::tests::config_load_empty_file ... ok
[INFO] [stdout] test config::tests::config_model_options_empty ... ok
[INFO] [stdout] test config::tests::config_remove_alias ... ok
[INFO] [stdout] test config::tests::config_remove_alias_missing ... ok
[INFO] [stdout] test config::tests::config_resolve_model_alias ... ok
[INFO] [stdout] test config::tests::config_resolve_model_passthrough ... ok
[INFO] [stdout] test config::tests::config_set_alias ... ok
[INFO] [stdout] test config::tests::config_set_and_get_option ... ok
[INFO] [stdout] test config::tests::config_set_alias_overwrite ... ok
[INFO] [stdout] test config::tests::config_set_option_overwrite ... ok
[INFO] [stdout] test config::tests::config_options_save_and_load_roundtrip ... ok
[INFO] [stdout] test config::tests::keystore_get_existing ... ok
[INFO] [stdout] test config::tests::config_load_valid_toml ... ok
[INFO] [stdout] test config::tests::keystore_list ... ok
[INFO] [stdout] test config::tests::keystore_load_missing_file ... ok
[INFO] [stdout] test config::tests::keystore_load_invalid_toml ... ok
[INFO] [stdout] test config::tests::keystore_load_valid_toml ... ok
[INFO] [stdout] test config::tests::keystore_set_file_permissions ... ok
[INFO] [stdout] test config::tests::keystore_set_creates_parent_dirs ... ok
[INFO] [stdout] test config::tests::keystore_path ... ok
[INFO] [stdout] test config::tests::keystore_get_missing ... ok
[INFO] [stdout] test config::tests::parse_option_value_bool ... ok
[INFO] [stdout] test config::tests::parse_option_value_edge_cases ... ok
[INFO] [stdout] test config::tests::parse_option_value_float ... ok
[INFO] [stdout] test config::tests::parse_option_value_int ... ok
[INFO] [stdout] test config::tests::parse_option_value_null ... ok
[INFO] [stdout] test config::tests::parse_option_value_string_fallback ... ok
[INFO] [stdout] test config::tests::paths_agents_dir ... ok
[INFO] [stdout] test config::tests::paths_agents_dir_from_dir ... ok
[INFO] [stdout] test config::tests::paths_derived_methods ... ok
[INFO] [stdout] test config::tests::paths_from_dir ... ok
[INFO] [stdout] test config::tests::paths_resolve_llm_user_path ... ok
[INFO] [stdout] test config::tests::keystore_set_new_key ... ok
[INFO] [stdout] test config::tests::paths_resolve_xdg_custom ... ok
[INFO] [stdout] test config::tests::keystore_set_overwrite ... ok
[INFO] [stdout] test config::tests::paths_resolve_xdg_defaults ... ok
[INFO] [stdout] test config::tests::paths_separate_dirs ... ok
[INFO] [stdout] test config::tests::resolve_key_env_empty_string_skipped ... ok
[INFO] [stdout] test config::tests::resolve_key_from_env ... ok
[INFO] [stdout] test config::tests::resolve_key_error ... ok
[INFO] [stdout] test config::tests::resolve_key_explicit ... ok
[INFO] [stdout] test config::tests::resolve_key_no_env_var ... ok
[INFO] [stdout] test config::tests::resolve_key_from_store ... ok
[INFO] [stdout] test error::tests::error_display_config ... ok
[INFO] [stdout] test error::tests::error_display_http ... ok
[INFO] [stdout] test error::tests::error_display_model ... ok
[INFO] [stdout] test error::tests::error_display_provider ... ok
[INFO] [stdout] test error::tests::error_display_needs_key ... ok
[INFO] [stdout] test error::tests::error_display_store ... ok
[INFO] [stdout] test error::tests::error_is_send_sync ... ok
[INFO] [stdout] test error::tests::http_error_not_retryable_4xx ... ok
[INFO] [stdout] test error::tests::http_error_retryable_429 ... ok
[INFO] [stdout] test error::tests::error_display_io ... ok
[INFO] [stdout] test error::tests::error_io_from_conversion ... ok
[INFO] [stdout] test error::tests::non_http_errors_not_retryable ... ok
[INFO] [stdout] test error::tests::http_error_retryable_5xx ... ok
[INFO] [stdout] test error::tests::result_type_works ... ok
[INFO] [stdout] test provider::tests::provider_execute_returns_stream ... ok
[INFO] [stdout] test provider::tests::provider_id ... ok
[INFO] [stdout] test provider::tests::provider_lists_models ... ok
[INFO] [stdout] test provider::tests::provider_execute_without_key_errors ... ok
[INFO] [stdout] test provider::tests::provider_execute_with_key ... ok
[INFO] [stdout] test provider::tests::provider_needs_key_returns_alias ... ok
[INFO] [stdout] test provider::tests::provider_needs_key_defaults_to_none ... ok
[INFO] [stdout] test retry::tests::default_config ... ok
[INFO] [stdout] test retry::tests::delay_attempt_zero ... ok
[INFO] [stdout] test retry::tests::delay_capped_at_max ... ok
[INFO] [stdout] test retry::tests::serde_defaults_from_empty ... ok
[INFO] [stdout] test schema::tests::multi_schema_wraps_in_array ... ok
[INFO] [stdout] test retry::tests::serde_roundtrip ... ok
[INFO] [stdout] test retry::tests::delay_exponential_no_jitter ... ok
[INFO] [stdout] test chain::tests::chain_single_call_is_sequential ... ok
[INFO] [stdout] test retry::tests::delay_with_jitter_in_bounds ... ok
[INFO] [stdout] test schema::tests::parse_empty_string_error ... ok
[INFO] [stdout] test schema::tests::parse_default_type_is_string ... ok
[INFO] [stdout] test schema::tests::parse_invalid_type_error ... ok
[INFO] [stdout] test schema::tests::parse_each_type ... ok
[INFO] [stdout] test schema::tests::parse_mixed_descriptions ... ok
[INFO] [stdout] test schema::tests::parse_multiple_fields ... ok
[INFO] [stdout] test schema::tests::parse_single_string_field ... ok
[INFO] [stdout] test schema::tests::parse_newline_separated ... ok
[INFO] [stdout] test schema::tests::parse_whitespace_tolerance ... ok
[INFO] [stdout] test stream::tests::chunk_done ... ok
[INFO] [stdout] test stream::tests::chunk_text_carries_content ... ok
[INFO] [stdout] test stream::tests::chunk_tool_call_delta ... ok
[INFO] [stdout] test stream::tests::chunk_usage ... ok
[INFO] [stdout] test stream::tests::chunk_tool_call_start ... ok
[INFO] [stdout] test stream::tests::collect_text_from_chunks ... ok
[INFO] [stdout] test stream::tests::collect_tool_calls_from_chunks ... ok
[INFO] [stdout] test stream::tests::collect_usage_from_chunks ... ok
[INFO] [stdout] test stream::tests::collect_usage_returns_none_when_absent ... ok
[INFO] [stdout] test stream::tests::collect_tool_calls_multiple ... ok
[INFO] [stdout] test stream::tests::response_stream_collects_text ... ok
[INFO] [stdout] test stream::tests::response_stream_propagates_error ... ok
[INFO] [stdout] test tools::tests::registry_get_finds_tool ... ok
[INFO] [stdout] test tools::tests::llm_time_returns_time_info ... ok
[INFO] [stdout] test tools::tests::llm_version_returns_constructor_version ... ok
[INFO] [stdout] test tools::tests::registry_has_two_builtin_tools ... ok
[INFO] [stdout] test tools::tests::unknown_tool_returns_error_result ... ok
[INFO] [stdout] test schema::tests::parse_field_with_description ... ok
[INFO] [stdout] test types::tests::attachment_from_bytes ... ok
[INFO] [stdout] test types::tests::attachment_from_url ... ok
[INFO] [stdout] test types::tests::message_assistant_construction ... ok
[INFO] [stdout] test types::tests::attachment_from_path ... ok
[INFO] [stdout] test types::tests::message_serde_includes_nonempty_tool_calls ... ok
[INFO] [stdout] test types::tests::message_serde_roundtrip ... ok
[INFO] [stdout] test types::tests::message_serde_skips_empty_vecs ... ok
[INFO] [stdout] test types::tests::message_assistant_with_tool_calls_construction ... ok
[INFO] [stdout] test types::tests::model_info_defaults ... ok
[INFO] [stdout] test types::tests::message_tool_results_construction ... ok
[INFO] [stdout] test types::tests::model_info_serializes_roundtrip ... ok
[INFO] [stdout] test types::tests::model_info_with_capabilities ... ok
[INFO] [stdout] test types::tests::message_user_construction ... ok
[INFO] [stdout] test types::tests::prompt_minimal ... ok
[INFO] [stdout] test types::tests::prompt_with_attachments ... ok
[INFO] [stdout] test types::tests::prompt_with_messages ... ok
[INFO] [stdout] test types::tests::prompt_builder_chains ... ok
[INFO] [stdout] test types::tests::prompt_default_has_empty_messages ... ok
[INFO] [stdout] test types::tests::prompt_messages_serde_skips_when_empty ... ok
[INFO] [stdout] test types::tests::prompt_with_schema ... ok
[INFO] [stdout] test types::tests::prompt_with_options ... ok
[INFO] [stdout] test types::tests::prompt_with_system ... ok
[INFO] [stdout] test types::tests::prompt_with_tool_results ... ok
[INFO] [stdout] test types::tests::response_minimal ... ok
[INFO] [stdout] test types::tests::role_serde_roundtrip ... ok
[INFO] [stdout] test types::tests::response_serializes_roundtrip ... ok
[INFO] [stdout] test types::tests::tool_call_construction ... ok
[INFO] [stdout] test types::tests::tool_call_without_id ... ok
[INFO] [stdout] test types::tests::tool_construction ... ok
[INFO] [stdout] test types::tests::tool_result_success ... ok
[INFO] [stdout] test types::tests::tool_result_with_error ... ok
[INFO] [stdout] test types::tests::usage_add_both_none ... ok
[INFO] [stdout] test types::tests::prompt_with_tools ... ok
[INFO] [stdout] test types::tests::tool_serializes_roundtrip ... ok
[INFO] [stdout] test types::tests::response_with_all_fields ... ok
[INFO] [stdout] test types::tests::usage_add_both_some ... ok
[INFO] [stdout] test types::tests::usage_add_one_none ... ok
[INFO] [stdout] test types::tests::usage_serializes_to_json ... ok
[INFO] [stdout] test types::tests::usage_total ... ok
[INFO] [stdout] test types::tests::usage_with_tokens ... ok
[INFO] [stdout] test types::tests::usage_default_is_empty ... ok
[INFO] [stdout] test types::tests::usage_with_details ... ok
[INFO] [stdout] test chain::tests::chain_sequential_when_disabled ... ok
[INFO] [stdout] test chain::tests::chain_parallel_bounded_concurrency ... ok
[INFO] [stdout] test chain::tests::chain_parallel_preserves_tool_call_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 215 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_openai-973bfed65e4cacfd)
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test messages::tests::build_messages_multi_turn_conversation ... ok
[INFO] [stdout] test messages::tests::build_messages_with_system ... ok
[INFO] [stdout] test messages::tests::build_messages_empty_system_is_skipped ... ok
[INFO] [stdout] test messages::tests::build_messages_without_tool_results_unchanged ... ok
[INFO] [stdout] test messages::tests::build_messages_multi_turn_with_tool_calls ... ok
[INFO] [stdout] test messages::tests::build_messages_with_tool_results ... ok
[INFO] [stdout] test messages::tests::build_messages_user_only ... ok
[INFO] [stdout] test provider::tests::api_error_response ... ok
[INFO] [stdout] test provider::tests::http_429_returns_http_error ... ok
[INFO] [stdout] test provider::tests::http_500_returns_http_error ... ok
[INFO] [stdout] test provider::tests::missing_key_returns_error ... ok
[INFO] [stdout] test provider::tests::provider_needs_openai_key ... ok
[INFO] [stdout] test provider::tests::provider_lists_two_models ... ok
[INFO] [stdout] test provider::tests::request_includes_tools_when_prompt_has_tools ... ok
[INFO] [stdout] test provider::tests::non_streaming_response ... ok
[INFO] [stdout] test provider::tests::non_streaming_schema_response ... ok
[INFO] [stdout] test provider::tests::streaming_response ... ok
[INFO] [stdout] test provider::tests::provider_id_is_openai ... ok
[INFO] [stdout] test sse::tests::incremental_parser_done_returns_none ... ok
[INFO] [stdout] test sse::tests::incremental_parser_handles_partial_data ... ok
[INFO] [stdout] test sse::tests::incremental_parser_multiple_events_in_one_feed ... ok
[INFO] [stdout] test provider::tests::non_streaming_tool_call ... ok
[INFO] [stdout] test sse::tests::parse_done_signal ... ok
[INFO] [stdout] test sse::tests::parse_ignores_empty_lines ... ok
[INFO] [stdout] test provider::tests::streaming_single_tool_call ... ok
[INFO] [stdout] test sse::tests::parse_single_sse_event ... ok
[INFO] [stdout] test sse::tests::parse_multiple_sse_events ... ok
[INFO] [stdout] test sse::tests::parse_with_usage_event ... ok
[INFO] [stdout] test types::tests::chat_request_minimal ... ok
[INFO] [stdout] test types::tests::chat_request_with_stream_options ... ok
[INFO] [stdout] test types::tests::chat_request_with_tools_serializes ... ok
[INFO] [stdout] test types::tests::chat_response_deserialize ... ok
[INFO] [stdout] test types::tests::delta_tool_call_subsequent_has_only_arguments ... ok
[INFO] [stdout] test types::tests::delta_with_tool_calls_deserializes ... ok
[INFO] [stdout] test types::tests::message_system ... ok
[INFO] [stdout] test types::tests::error_response_deserialize ... ok
[INFO] [stdout] test types::tests::chat_request_with_options ... ok
[INFO] [stdout] test types::tests::delta_tool_call_first_chunk_has_name_and_id ... ok
[INFO] [stdout] test types::tests::message_tool_call_deserializes ... ok
[INFO] [stdout] test types::tests::stream_chunk_deserialize_finish ... ok
[INFO] [stdout] test types::tests::stream_chunk_with_usage ... ok
[INFO] [stdout] test types::tests::stream_chunk_deserialize_text_delta ... ok
[INFO] [stdout] test types::tests::usage_response_deserialize ... ok
[INFO] [stdout] test types::tests::stream_chunk_deserialize_role_only ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_store-f9a18d3a5d34c07a)
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test logs::tests::conversation_name_collapses_extra_whitespace ... ok
[INFO] [stdout] test logs::tests::conversation_name_collapses_newlines ... ok
[INFO] [stdout] test logs::tests::conversation_name_empty_returns_none ... ok
[INFO] [stdout] test logs::tests::conversation_name_short_text ... ok
[INFO] [stdout] test logs::tests::conversation_name_truncates_long_text ... ok
[INFO] [stdout] test logs::tests::conversation_name_unicode_truncation ... ok
[INFO] [stdout] test logs::tests::log_response_append_nonexistent_errors ... ok
[INFO] [stdout] test logs::tests::log_response_new_has_two_lines ... ok
[INFO] [stdout] test logs::tests::log_response_append_third_line_is_second_response ... ok
[INFO] [stdout] test logs::tests::log_response_creates_new_conversation_file ... ok
[INFO] [stdout] test logs::tests::log_response_appends_to_existing ... ok
[INFO] [stdout] test logs::tests::log_response_returns_valid_ulid ... ok
[INFO] [stdout] test logs::tests::log_response_new_second_line_is_response ... ok
[INFO] [stdout] test logs::tests::read_conversation_nonexistent_errors ... ok
[INFO] [stdout] test logs::tests::log_response_append_preserves_header ... ok
[INFO] [stdout] test logs::tests::log_store_creates_directory_if_missing ... ok
[INFO] [stdout] test logs::tests::reconstruct_empty_responses_gives_empty ... ok
[INFO] [stdout] test logs::tests::reconstruct_multi_response_gives_correct_sequence ... ok
[INFO] [stdout] test logs::tests::empty_response_text ... ok
[INFO] [stdout] test logs::tests::read_conversation_roundtrip_single_response ... ok
[INFO] [stdout] test logs::tests::newlines_in_response_text_dont_break_jsonl ... ok
[INFO] [stdout] test logs::tests::read_conversation_skips_malformed_lines ... ok
[INFO] [stdout] test logs::tests::reconstruct_response_with_tools_includes_tool_turn ... ok
[INFO] [stdout] test logs::tests::reconstruct_single_response_gives_two_messages ... ok
[INFO] [stdout] test logs::tests::unicode_in_prompt_and_response ... ok
[INFO] [stdout] test logs::tests::response_with_all_optionals_none ... ok
[INFO] [stdout] test query::tests::filter_by_model ... ok
[INFO] [stdout] test query::tests::filter_by_text_query ... ok
[INFO] [stdout] test query::tests::latest_conversation_empty_dir ... ok
[INFO] [stdout] test logs::tests::read_conversation_roundtrip_multiple_responses ... ok
[INFO] [stdout] test query::tests::list_conversations_empty_dir ... ok
[INFO] [stdout] test logs::tests::trait_log_and_read_roundtrip ... ok
[INFO] [stdout] test logs::tests::read_conversation_preserves_all_fields ... ok
[INFO] [stdout] test query::tests::filter_query_is_case_insensitive ... ok
[INFO] [stdout] test query::tests::list_conversations_includes_name ... ok
[INFO] [stdout] test query::tests::list_conversations_nonexistent_dir ... ok
[INFO] [stdout] test query::tests::list_conversations_skips_non_jsonl_files ... ok
[INFO] [stdout] test records::tests::conversation_record_roundtrip ... ok
[INFO] [stdout] test query::tests::list_conversations_respects_limit ... ok
[INFO] [stdout] test records::tests::conversation_record_serializes_with_correct_fields ... ok
[INFO] [stdout] test query::tests::list_conversations_skips_malformed_first_line ... ok
[INFO] [stdout] test records::tests::line_record_deserializes_response ... ok
[INFO] [stdout] test records::tests::line_record_deserializes_conversation ... ok
[INFO] [stdout] test records::tests::line_record_serializes_conversation_with_type_tag ... ok
[INFO] [stdout] test records::tests::line_record_serializes_response_with_type_tag ... ok
[INFO] [stdout] test records::tests::response_record_roundtrip ... ok
[INFO] [stdout] test store::tests::build_response_populates_id_and_datetime ... ok
[INFO] [stdout] test records::tests::response_record_serializes_with_flattened_fields ... ok
[INFO] [stdout] test store::tests::conversation_summary_from_record ... ok
[INFO] [stdout] test store::tests::build_response_preserves_all_fields ... ok
[INFO] [stdout] test logs::tests::log_response_new_first_line_is_conversation_header ... ok
[INFO] [stdout] test logs::tests::trait_list_conversations_orders_newest_first ... ok
[INFO] [stdout] test query::tests::latest_conversation_returns_most_recent ... ok
[INFO] [stdout] test logs::tests::trait_latest_conversation_id_returns_most_recent ... ok
[INFO] [stdout] test query::tests::list_conversations_returns_summaries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_anthropic
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_openai
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_store
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5ca7e5d93ad10eee9909f8d14e0df5863904d86bcdb7c276be021090d2c052de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ca7e5d93ad10eee9909f8d14e0df5863904d86bcdb7c276be021090d2c052de", kill_on_drop: false }`
[INFO] [stdout] 5ca7e5d93ad10eee9909f8d14e0df5863904d86bcdb7c276be021090d2c052de
