[INFO] fetching crate cognis-core 0.1.0... [INFO] testing cognis-core-0.1.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] extracting crate cognis-core 0.1.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate cognis-core 0.1.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate cognis-core 0.1.0 [INFO] tweaked toml for crates.io crate cognis-core 0.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cognis-core 0.1.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate cognis-core 0.1.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded futures-core v0.3.32 [INFO] [stderr] Downloaded futures-task v0.3.32 [INFO] [stderr] Downloaded wasm-streams v0.4.2 [INFO] [stderr] Downloaded tokio-stream v0.1.18 [INFO] [stderr] Downloaded hyper-tls v0.6.0 [INFO] [stderr] Downloaded try-lock v0.2.5 [INFO] [stderr] Downloaded slab v0.4.12 [INFO] [stderr] Downloaded ipnet v2.12.0 [INFO] [stderr] Downloaded tower-layer v0.3.3 [INFO] [stderr] Downloaded serde_urlencoded v0.7.1 [INFO] [stderr] Downloaded openssl-probe v0.2.1 [INFO] [stderr] Downloaded tower-service v0.3.3 [INFO] [stderr] Downloaded futures-executor v0.3.32 [INFO] [stderr] Downloaded async-trait v0.1.89 [INFO] [stderr] Downloaded tokio-rustls v0.26.4 [INFO] [stderr] Downloaded zeroize v1.8.2 [INFO] [stderr] Downloaded futures v0.3.32 [INFO] [stderr] Downloaded rustls-webpki v0.103.9 [INFO] [stderr] Downloaded security-framework v3.7.0 [INFO] [stderr] Downloaded hyper-util v0.1.20 [INFO] [stderr] Downloaded h2 v0.4.13 [INFO] [stderr] Downloaded iri-string v0.7.10 [INFO] [stderr] Downloaded hyper v1.8.1 [INFO] [stderr] Downloaded tower-http v0.6.8 [INFO] [stderr] Downloaded openssl v0.10.75 [INFO] [stderr] Downloaded http v1.4.0 [INFO] [stderr] Downloaded reqwest v0.12.28 [INFO] [stderr] Downloaded rustls v0.23.37 [INFO] [stderr] Downloaded tower v0.5.3 [INFO] [stderr] Downloaded futures-util v0.3.32 [INFO] [stderr] Downloaded rustls-pki-types v1.14.0 [INFO] [stderr] Downloaded foreign-types v0.3.2 [INFO] [stderr] Downloaded openssl-macros v0.1.1 [INFO] [stderr] Downloaded futures-channel v0.3.32 [INFO] [stderr] Downloaded hyper-rustls v0.27.7 [INFO] [stderr] Downloaded core-foundation v0.9.4 [INFO] [stderr] Downloaded ryu v1.0.23 [INFO] [stderr] Downloaded schannel v0.1.28 [INFO] [stderr] Downloaded tokio-util v0.7.18 [INFO] [stderr] Downloaded subtle v2.6.1 [INFO] [stderr] Downloaded httparse v1.10.1 [INFO] [stderr] Downloaded system-configuration v0.7.0 [INFO] [stderr] Downloaded web-sys v0.3.91 [INFO] [stderr] Downloaded untrusted v0.9.0 [INFO] [stderr] Downloaded http-body-util v0.1.3 [INFO] [stderr] Downloaded atomic-waker v1.1.2 [INFO] [stderr] Downloaded windows-registry v0.6.1 [INFO] [stderr] Downloaded mime v0.3.17 [INFO] [stderr] Downloaded tokio-native-tls v0.3.1 [INFO] [stderr] Downloaded futures-sink v0.3.32 [INFO] [stderr] Downloaded security-framework-sys v2.17.0 [INFO] [stderr] Downloaded futures-io v0.3.32 [INFO] [stderr] Downloaded foreign-types-shared v0.1.1 [INFO] [stderr] Downloaded core-foundation v0.10.1 [INFO] [stderr] Downloaded native-tls v0.2.18 [INFO] [stderr] Downloaded sync_wrapper v1.0.2 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.64 [INFO] [stderr] Downloaded system-configuration-sys v0.6.0 [INFO] [stderr] Downloaded http-body v1.0.1 [INFO] [stderr] Downloaded futures-macro v0.3.32 [INFO] [stderr] Downloaded want v0.3.1 [INFO] [stderr] Downloaded encoding_rs v0.8.35 [INFO] [stderr] Downloaded ring v0.17.14 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c0799c54f74425bbb7443c171ae67357e115e96f1be0cb5bdabe662d485e6fc5 [INFO] running `Command { std: "docker" "start" "-a" "c0799c54f74425bbb7443c171ae67357e115e96f1be0cb5bdabe662d485e6fc5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c0799c54f74425bbb7443c171ae67357e115e96f1be0cb5bdabe662d485e6fc5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c0799c54f74425bbb7443c171ae67357e115e96f1be0cb5bdabe662d485e6fc5", kill_on_drop: false }` [INFO] [stdout] c0799c54f74425bbb7443c171ae67357e115e96f1be0cb5bdabe662d485e6fc5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 64aa92d170f417318ecef31504976e8181ba0c239272ea1e051b42b40b4a4c20 [INFO] running `Command { std: "docker" "start" "-a" "64aa92d170f417318ecef31504976e8181ba0c239272ea1e051b42b40b4a4c20", kill_on_drop: false }` [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling cognis-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.43s [INFO] running `Command { std: "docker" "inspect" "64aa92d170f417318ecef31504976e8181ba0c239272ea1e051b42b40b4a4c20", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64aa92d170f417318ecef31504976e8181ba0c239272ea1e051b42b40b4a4c20", kill_on_drop: false }` [INFO] [stdout] 64aa92d170f417318ecef31504976e8181ba0c239272ea1e051b42b40b4a4c20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bfc8c9ed0e5a5dbc1f63b55b20052fdfe5b9c85585418b71fead1faca0944b62 [INFO] running `Command { std: "docker" "start" "-a" "bfc8c9ed0e5a5dbc1f63b55b20052fdfe5b9c85585418b71fead1faca0944b62", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling cognis-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `slow_doubler` is never used [INFO] [stdout] --> src/runnables/batch_processor.rs:560:8 [INFO] [stdout] | [INFO] [stdout] 560 | fn slow_doubler(delay_ms: u64) -> RunnableLambda { [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 41s [INFO] running `Command { std: "docker" "inspect" "bfc8c9ed0e5a5dbc1f63b55b20052fdfe5b9c85585418b71fead1faca0944b62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bfc8c9ed0e5a5dbc1f63b55b20052fdfe5b9c85585418b71fead1faca0944b62", kill_on_drop: false }` [INFO] [stdout] bfc8c9ed0e5a5dbc1f63b55b20052fdfe5b9c85585418b71fead1faca0944b62 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 76e291bc30f0703317de097cd6cd7c212aa0fc43893eb2034b4c5c1c81422da4 [INFO] running `Command { std: "docker" "start" "-a" "76e291bc30f0703317de097cd6cd7c212aa0fc43893eb2034b4c5c1c81422da4", kill_on_drop: false }` [INFO] [stderr] warning: function `slow_doubler` is never used [INFO] [stderr] --> src/runnables/batch_processor.rs:560:8 [INFO] [stderr] | [INFO] [stderr] 560 | fn slow_doubler(delay_ms: u64) -> RunnableLambda { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `cognis-core` (lib test) generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cognis_core-17fc561430728934) [INFO] [stdout] [INFO] [stdout] running 1952 tests [INFO] [stdout] test callbacks::manager::tests::test_add_and_remove_handlers ... ok [INFO] [stdout] test callbacks::manager::tests::test_all_event_types_dispatched ... ok [INFO] [stdout] test callbacks::manager::tests::test_metrics_handler_tracks_counts ... ok [INFO] [stdout] test callbacks::manager::tests::test_child_manager_inherits_handlers ... ok [INFO] [stdout] test callbacks::manager::tests::test_dispatch_to_multiple_handlers ... ok [INFO] [stdout] test callbacks::manager::tests::test_logging_handler_captures_events ... ok [INFO] [stdout] test callbacks::manager::tests::test_empty_manager_is_noop ... ok [INFO] [stdout] test callbacks::manager::tests::test_metrics_reset ... ok [INFO] [stdout] test callbacks::manager::tests::test_configure_from_runnable_config ... ok [INFO] [stdout] test callbacks::manager::tests::test_metrics_token_estimation ... ok [INFO] [stdout] test callbacks::manager::tests::test_remove_nonexistent_handler ... ok [INFO] [stdout] test config::tests::builder_chain_all ... ok [INFO] [stdout] test callbacks::manager::tests::test_tags_and_metadata_propagation ... ok [INFO] [stdout] test config::tests::builder_default_impl ... ok [INFO] [stdout] test config::tests::builder_from_env ... ok [INFO] [stdout] test config::tests::builder_from_env_ignores_other_prefixes ... ok [INFO] [stdout] test config::tests::builder_from_json_null_value ... ok [INFO] [stdout] test config::tests::builder_set_default_no_overwrite ... ok [INFO] [stdout] test config::tests::builder_set_overwrites ... ok [INFO] [stdout] test config::tests::config_error_display_custom ... ok [INFO] [stdout] test config::tests::config_error_display_missing ... ok [INFO] [stdout] test config::tests::builder_set ... ok [INFO] [stdout] test config::tests::builder_set_default_when_absent ... ok [INFO] [stdout] test config::tests::config_error_display_wrong_type ... ok [INFO] [stdout] test config::tests::builder_from_json_non_object_ignored ... ok [INFO] [stdout] test config::tests::config_type_bool ... ok [INFO] [stdout] test config::tests::config_type_display ... ok [INFO] [stdout] test config::tests::config_type_float ... ok [INFO] [stdout] test config::tests::config_type_list ... ok [INFO] [stdout] test config::tests::builder_from_json ... ok [INFO] [stdout] test config::tests::config_type_map ... ok [INFO] [stdout] test config::tests::config_type_integer ... ok [INFO] [stdout] test config::tests::config_type_string ... ok [INFO] [stdout] test config::tests::config_value_as_bool ... ok [INFO] [stdout] test config::tests::config_value_as_f64 ... ok [INFO] [stdout] test config::tests::config_value_as_str ... ok [INFO] [stdout] test config::tests::config_value_clone ... ok [INFO] [stdout] test config::tests::config_value_as_i64 ... ok [INFO] [stdout] test config::tests::config_value_equality ... ok [INFO] [stdout] test config::tests::config_value_is_null ... ok [INFO] [stdout] test config::tests::config_value_to_json_bool ... ok [INFO] [stdout] test config::tests::config_value_to_json_integer ... ok [INFO] [stdout] test config::tests::config_value_to_json_list ... ok [INFO] [stdout] test config::tests::config_value_to_json_float ... ok [INFO] [stdout] test config::tests::config_value_to_json_null ... ok [INFO] [stdout] test config::tests::config_value_to_json_string ... ok [INFO] [stdout] test config::tests::from_bool ... ok [INFO] [stdout] test config::tests::from_i64 ... ok [INFO] [stdout] test config::tests::from_f64 ... ok [INFO] [stdout] test config::tests::config_value_to_json_map ... ok [INFO] [stdout] test config::tests::from_str_ref ... ok [INFO] [stdout] test config::tests::from_string ... ok [INFO] [stdout] test config::tests::nested_json_to_config_value ... ok [INFO] [stdout] test config::tests::snapshot_added ... ok [INFO] [stdout] test config::tests::snapshot_modified ... ok [INFO] [stdout] test config::tests::snapshot_mixed_changes ... ok [INFO] [stdout] test config::tests::snapshot_no_changes ... ok [INFO] [stdout] test config::tests::snapshot_removed ... ok [INFO] [stdout] test config::tests::store_default_impl ... ok [INFO] [stdout] test config::tests::store_merge_empty ... ok [INFO] [stdout] test config::tests::store_merge_overrides ... ok [INFO] [stdout] test config::tests::store_get_missing ... ok [INFO] [stdout] test config::tests::store_get_or_missing ... ok [INFO] [stdout] test config::tests::store_keys_len ... ok [INFO] [stdout] test config::tests::store_keys_len_empty ... ok [INFO] [stdout] test config::tests::store_overwrite_different_type ... ok [INFO] [stdout] test config::tests::store_get_or_present ... ok [INFO] [stdout] test config::tests::store_remove ... ok [INFO] [stdout] test config::tests::store_typed_getters ... ok [INFO] [stdout] test config::tests::store_typed_getters_wrong_type ... ok [INFO] [stdout] test config::tests::validator_combined_rules ... ok [INFO] [stdout] test config::tests::validator_optional_missing_is_ok ... ok [INFO] [stdout] test config::tests::validator_optional_present_is_ok ... ok [INFO] [stdout] test config::tests::validator_required_missing ... ok [INFO] [stdout] test config::tests::validator_typed_absent_is_ok ... ok [INFO] [stdout] test config::tests::validator_required_present ... ok [INFO] [stdout] test config::tests::validator_typed_null_is_ok ... ok [INFO] [stdout] test config::tests::validator_typed_correct ... ok [INFO] [stdout] test config::tests::validator_default_impl ... ok [INFO] [stdout] test config::tests::validator_multiple_required_missing ... ok [INFO] [stdout] test config::tests::store_remove_missing ... ok [INFO] [stdout] test config::tests::store_set_and_get ... ok [INFO] [stdout] test config::tests::validator_typed_wrong ... ok [INFO] [stdout] test config::tests::view_empty_prefix ... ok [INFO] [stdout] test config::tests::view_get ... ok [INFO] [stdout] test config::tests::view_to_store ... ok [INFO] [stdout] test config::tests::view_get_int ... ok [INFO] [stdout] test events::tests::event_bus_default ... ok [INFO] [stdout] test events::tests::bus_and_log_integration ... ok [INFO] [stdout] test events::tests::event_bus_custom_event_type ... ok [INFO] [stdout] test events::tests::event_bus_multiple_subscribers_same_event ... ok [INFO] [stdout] test config::tests::view_get_str ... ok [INFO] [stdout] test config::tests::view_keys ... ok [INFO] [stdout] test events::tests::event_bus_clear ... ok [INFO] [stdout] test events::tests::event_bus_new_is_empty ... ok [INFO] [stdout] test events::tests::event_bus_publish_delivers_to_matching ... ok [INFO] [stdout] test events::tests::event_bus_subscribe_and_count ... ok [INFO] [stdout] test events::tests::event_bus_unsubscribe ... ok [INFO] [stdout] test events::tests::event_handler_trait ... ok [INFO] [stdout] test events::tests::event_clone ... ok [INFO] [stdout] test events::tests::event_bus_publish_multiple_types ... ok [INFO] [stdout] test events::tests::event_log_events_by_type ... ok [INFO] [stdout] test events::tests::event_log_clear ... ok [INFO] [stdout] test events::tests::event_log_events_slice ... ok [INFO] [stdout] test events::tests::event_log_events_by_type_empty ... ok [INFO] [stdout] test events::tests::event_log_filter ... ok [INFO] [stdout] test events::tests::event_log_new_is_empty ... ok [INFO] [stdout] test events::tests::event_bus_unsubscribe_nonexistent ... ok [INFO] [stdout] test events::tests::event_log_to_json ... ok [INFO] [stdout] test events::tests::event_type_clone ... ok [INFO] [stdout] test events::tests::event_type_display ... ok [INFO] [stdout] test events::tests::event_new_has_id_and_timestamp ... ok [INFO] [stdout] test events::tests::event_type_name_builtin ... ok [INFO] [stdout] test events::tests::event_type_equality ... ok [INFO] [stdout] test events::tests::event_type_name_custom ... ok [INFO] [stdout] test events::tests::event_type_hash ... ok [INFO] [stdout] test events::tests::event_log_record_and_len ... ok [INFO] [stdout] test events::tests::event_serialization_roundtrip ... ok [INFO] [stdout] test events::tests::event_to_json_contains_fields ... ok [INFO] [stdout] test events::tests::event_unique_ids ... ok [INFO] [stdout] test events::tests::event_type_to_json ... ok [INFO] [stdout] test events::tests::filter_by_source ... ok [INFO] [stdout] test events::tests::event_with_metadata ... ok [INFO] [stdout] test events::tests::event_with_source ... ok [INFO] [stdout] test events::tests::filter_by_metadata ... ok [INFO] [stdout] test events::tests::filter_by_type_matches ... ok [INFO] [stdout] test events::tests::filter_by_type_multiple ... ok [INFO] [stdout] test events::tests::filter_and_log_integration ... ok [INFO] [stdout] test events::tests::filter_empty_matches_everything ... ok [INFO] [stdout] test events::tests::filter_by_multiple_sources ... ok [INFO] [stdout] test events::tests::filter_metadata_missing_key ... ok [INFO] [stdout] test events::tests::filter_multiple_metadata ... ok [INFO] [stdout] test events::tests::filter_combined ... ok [INFO] [stdout] test events::tests::hook_after_callback ... ok [INFO] [stdout] test events::tests::filter_since ... ok [INFO] [stdout] test events::tests::hook_before_callback ... ok [INFO] [stdout] test events::tests::hook_both_callbacks ... ok [INFO] [stdout] test events::tests::hook_registry_chaining ... ok [INFO] [stdout] test events::tests::hook_run_before_no_callback ... ok [INFO] [stdout] test events::tests::metrics_custom_event_type ... ok [INFO] [stdout] test events::tests::hook_run_after_no_callback ... ok [INFO] [stdout] test events::tests::metrics_events_per_type_empty ... ok [INFO] [stdout] test events::tests::hook_to_json ... ok [INFO] [stdout] test events::tests::metrics_multiple_types_processing_time ... ok [INFO] [stdout] test events::tests::metrics_new_is_empty ... ok [INFO] [stdout] test events::tests::metrics_to_json ... ok [INFO] [stdout] test events::tests::registry_default ... ok [INFO] [stdout] test events::tests::registry_new_is_empty ... ok [INFO] [stdout] test events::tests::registry_remove ... ok [INFO] [stdout] test events::tests::registry_remove_nonexistent ... ok [INFO] [stdout] test events::tests::metrics_processing_time ... ok [INFO] [stdout] test events::tests::registry_run_all_after ... ok [INFO] [stdout] test events::tests::metrics_record_event ... ok [INFO] [stdout] test events::tests::registry_run_all_before ... ok [INFO] [stdout] test globals::tests::test_debug_set_and_reset ... ok [INFO] [stdout] test globals::tests::test_verbose_default ... ok [INFO] [stdout] test globals::tests::test_set_verbose ... ok [INFO] [stdout] test events::tests::registry_register_and_get ... ok [INFO] [stdout] test indexing::api::tests::test_get_doc_key_falls_back_to_hash ... ok [INFO] [stdout] test events::tests::registry_register_replaces_same_name ... ok [INFO] [stdout] test indexing::api::tests::test_index_skips_existing_documents ... ok [INFO] [stdout] test indexing::api::tests::test_index_with_batching ... ok [INFO] [stdout] test events::tests::hook_new ... ok [INFO] [stdout] test events::tests::metrics_average_no_samples ... ok [INFO] [stdout] test indexing::api::tests::test_get_doc_key_uses_id ... ok [INFO] [stdout] test indexing::api::tests::test_get_doc_key_uses_source_id ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_chat_model_always_returns_fake_response ... ok [INFO] [stdout] test indexing::api::tests::test_hash_document_deterministic ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_chat_model_default ... ok [INFO] [stdout] test indexing::api::tests::test_index_new_documents ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_chat_model_llm_type ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_list_chat_model_cycles ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_list_chat_model_llm_type ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_list_chat_model_stream ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_list_llm_cycles ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_messages_list_converts_non_ai ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_messages_list_cycles ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_streaming_llm_error_on_chunk ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_streaming_llm_generate ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_exhausted_iterator_errors ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_generate ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_from_strings ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_llm_type ... ok [INFO] [stdout] test language_models::fake::tests::test_fake_streaming_llm_stream ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_stream_empty_content ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_stream_splits_on_whitespace ... ok [INFO] [stdout] test language_models::fake::tests::test_parrot_default ... ok [INFO] [stdout] test language_models::fake::tests::test_generic_fake_stream_single_word ... ok [INFO] [stdout] test language_models::fake::tests::test_parrot_echoes_last ... ok [INFO] [stdout] test language_models::fake::tests::test_parrot_empty_messages_error ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_basic ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_leading_trailing ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_multiple_spaces ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_only_spaces ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_tabs_and_newlines ... ok [INFO] [stdout] test language_models::utils::tests::test_build_data_uri ... ok [INFO] [stdout] test language_models::utils::tests::test_estimate_token_count ... ok [INFO] [stdout] test language_models::utils::tests::test_extract_text_from_array_content ... ok [INFO] [stdout] test language_models::utils::tests::test_extract_text_from_empty_array ... ok [INFO] [stdout] test language_models::utils::tests::test_extract_text_from_non_text_content ... ok [INFO] [stdout] test language_models::utils::tests::test_extract_text_from_string_content ... ok [INFO] [stdout] test language_models::utils::tests::test_is_openai_data_block_missing_type ... ok [INFO] [stdout] test language_models::utils::tests::test_is_openai_data_block_not_object ... ok [INFO] [stdout] test language_models::utils::tests::test_is_openai_data_block_type_not_string ... ok [INFO] [stdout] test language_models::utils::tests::test_parse_data_uri_base64 ... ok [INFO] [stdout] test language_models::utils::tests::test_parse_data_uri_invalid ... ok [INFO] [stdout] test language_models::utils::tests::test_is_openai_data_block_valid ... ok [INFO] [stdout] test language_models::utils::tests::test_parse_data_uri_no_base64 ... ok [INFO] [stdout] test load::load::tests::test_loads_invalid_json ... ok [INFO] [stdout] test load::load::tests::test_loads_plain_json ... ok [INFO] [stdout] test load::load::tests::test_revive_constructor_invalid_namespace ... ok [INFO] [stdout] test load::load::tests::test_revive_constructor_valid_namespace ... ok [INFO] [stdout] test load::load::tests::test_revive_nested_secret_in_constructor ... ok [INFO] [stdout] test load::load::tests::test_revive_not_implemented ... ok [INFO] [stdout] test load::load::tests::test_revive_secret_resolved ... ok [INFO] [stdout] test load::load::tests::test_revive_secret_missing ... ok [INFO] [stdout] test load::load::tests::test_revive_unknown_type_passthrough ... ok [INFO] [stdout] test load::load::tests::test_reviver_with_custom_namespace ... ok [INFO] [stdout] test load::validation::tests::test_escape_and_check ... ok [INFO] [stdout] test load::validation::tests::test_escape_key_with_extra_keys_does_not_need_escaping ... ok [INFO] [stdout] test load::validation::tests::test_is_escaped_dict_false_for_regular ... ok [INFO] [stdout] test load::validation::tests::test_is_lc_secret_missing_id ... ok [INFO] [stdout] test load::validation::tests::test_is_lc_secret_extra_keys ... ok [INFO] [stdout] test load::validation::tests::test_is_lc_secret_valid ... ok [INFO] [stdout] test language_models::fake::tests::test_split_preserving_whitespace_empty ... ok [INFO] [stdout] test load::validation::tests::test_is_lc_secret_non_object ... ok [INFO] [stdout] test load::load::tests::test_load_array_with_markers ... ok [INFO] [stdout] test load::validation::tests::test_needs_escaping_with_escape_key_only ... ok [INFO] [stdout] test load::validation::tests::test_needs_escaping_with_lc_key ... ok [INFO] [stdout] test load::validation::tests::test_no_escaping_for_empty_dict ... ok [INFO] [stdout] test load::validation::tests::test_is_lc_secret_wrong_type ... ok [INFO] [stdout] test load::validation::tests::test_no_escaping_needed_for_plain_dict ... ok [INFO] [stdout] test load::validation::tests::test_serialize_dict_that_looks_escaped ... ok [INFO] [stdout] test load::validation::tests::test_serialize_deeply_nested ... ok [INFO] [stdout] test load::validation::tests::test_serialize_dict_with_lc_key_is_escaped ... ok [INFO] [stdout] test load::validation::tests::test_roundtrip_nested ... ok [INFO] [stdout] test load::validation::tests::test_serialize_array_with_lc_dicts ... ok [INFO] [stdout] test load::validation::tests::test_roundtrip_safe_dict_unchanged ... ok [INFO] [stdout] test load::validation::tests::test_serialize_safe_dict ... ok [INFO] [stdout] test load::validation::tests::test_serialize_nested_dict_with_lc_key ... ok [INFO] [stdout] test load::validation::tests::test_serialize_then_unescape_roundtrip ... ok [INFO] [stdout] test load::validation::tests::test_unescape_no_further_processing_of_contents ... ok [INFO] [stdout] test load::validation::tests::test_serialize_primitives ... ok [INFO] [stdout] test load::validation::tests::test_unescape_escaped_dict ... ok [INFO] [stdout] test load::validation::tests::test_unescape_regular_dict_recurses ... ok [INFO] [stdout] test messages::base::tests::test_merge_blocks_blocks_adjacent_text ... ok [INFO] [stdout] test messages::base::tests::test_merge_blocks_text ... ok [INFO] [stdout] test messages::base::tests::test_merge_content_multiple ... ok [INFO] [stdout] test load::validation::tests::test_unescape_nested_escaped ... ok [INFO] [stdout] test load::validation::tests::test_unescape_primitives ... ok [INFO] [stdout] test messages::base::tests::test_merge_text_blocks ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_from_provider_assistant_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_from_provider_content_block_url_image ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_from_provider_content_block_base64_image ... ok [INFO] [stdout] test messages::base::tests::test_merge_text_text ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_provider_name ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_from_provider_with_tool_use_blocks ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_ai_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_content_block_image_url ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_content_block_image_data_uri ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_from_provider_user_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_content_block_tool_result ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_content_block_text ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_content_block_tool_use ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_human_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_anthropic_to_provider_unsupported_role ... ok [INFO] [stdout] test messages::block_translators::tests::test_get_translator_anthropic ... ok [INFO] [stdout] test messages::block_translators::tests::test_get_translator_google_alias ... ok [INFO] [stdout] test messages::block_translators::tests::test_get_translator_google_genai ... ok [INFO] [stdout] test messages::block_translators::tests::test_get_translator_openai ... ok [INFO] [stdout] test messages::block_translators::tests::test_get_translator_unknown ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_from_provider_function_call ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_provider_name ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_from_provider_inline_data ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_from_provider_model_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_from_provider_multiple_parts ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_to_provider_content_blocks ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_to_provider_system_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_to_provider_text_block ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_to_provider_ai_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_to_provider_human_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_content_block_image_url_string ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_content_block_text ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_from_provider_assistant_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_google_from_provider_user_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_from_content_block_image_url ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_from_provider_tool_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_from_provider_user_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_provider_name ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_system_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_ai_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_content_blocks ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_human_message ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_with_name ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_tool_message ... ok [INFO] [stdout] test messages::history::tests::test_by_role_empty_result ... ok [INFO] [stdout] test messages::history::tests::test_conversation_turn_accessors ... ok [INFO] [stdout] test messages::history::tests::test_conversation_turn_total_tokens ... ok [INFO] [stdout] test messages::block_translators::tests::test_openai_to_provider_with_tool_calls ... ok [INFO] [stdout] test messages::history::tests::test_estimate_tokens_empty ... ok [INFO] [stdout] test messages::history::tests::test_history_message_is_human ... ok [INFO] [stdout] test messages::history::tests::test_history_message_is_ai ... ok [INFO] [stdout] test messages::history::tests::test_conversation_turn_to_json ... ok [INFO] [stdout] test messages::history::tests::test_history_message_is_system ... ok [INFO] [stdout] test messages::history::tests::test_estimate_tokens_nonempty ... ok [INFO] [stdout] test messages::history::tests::test_history_message_word_count_empty ... ok [INFO] [stdout] test load::validation::tests::test_unescape_array ... ok [INFO] [stdout] test messages::history::tests::test_history_message_word_count ... ok [INFO] [stdout] test messages::history::tests::test_message_history_add_with_metadata ... ok [INFO] [stdout] test messages::history::tests::test_history_message_to_json ... ok [INFO] [stdout] test messages::history::tests::test_history_message_with_metadata ... ok [INFO] [stdout] test messages::history::tests::test_message_history_by_role ... ok [INFO] [stdout] test messages::history::tests::test_message_history_clear ... ok [INFO] [stdout] test messages::history::tests::test_message_history_index_tracking ... ok [INFO] [stdout] test messages::history::tests::test_message_history_add_and_len ... ok [INFO] [stdout] test messages::history::tests::test_message_history_last ... ok [INFO] [stdout] test messages::history::tests::test_message_history_messages_order ... ok [INFO] [stdout] test messages::history::tests::test_message_history_new_is_empty ... ok [INFO] [stdout] test messages::history::tests::test_serializer_from_json_error_missing_role ... ok [INFO] [stdout] test messages::history::tests::test_message_history_to_json ... ok [INFO] [stdout] test messages::history::tests::test_serializer_from_json_error_not_array ... ok [INFO] [stdout] test messages::history::tests::test_serializer_roundtrip_with_metadata ... ok [INFO] [stdout] test messages::history::tests::test_serializer_from_json_error_missing_content ... ok [INFO] [stdout] test messages::history::tests::test_serializer_to_json ... ok [INFO] [stdout] test messages::history::tests::test_serializer_roundtrip ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_basic ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_eviction ... ok [INFO] [stdout] test messages::history::tests::test_serializer_to_chat_format_empty ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_clear ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_eviction_multiple ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_last ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_size ... ok [INFO] [stdout] test messages::history::tests::test_serializer_to_chat_format ... ok [INFO] [stdout] test messages::history::tests::test_sliding_window_to_json ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_clear ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_eviction ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_basic ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_len_and_empty ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_preserves_system ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_utilization ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_add_turn ... ok [INFO] [stdout] test messages::history::tests::test_token_budget_utilization_zero_budget ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_index_tracking ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_last_turn ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_new_is_empty ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_to_json ... ok [INFO] [stdout] test messages::history::tests::test_turn_history_turns_content ... ok [INFO] [stdout] test messages::multimodal::tests::test_backwards_compatibility_human_message_new ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_as_text_multipart ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_as_text_text_only ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_part_image_base64 ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_part_image_base64_with_detail ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_part_image_url_serialization_format ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_part_text_serialization_format ... ok [INFO] [stdout] test messages::multimodal::tests::test_from_parts_conversion ... ok [INFO] [stdout] test messages::multimodal::tests::test_content_part_serialization_roundtrip ... ok [INFO] [stdout] test messages::multimodal::tests::test_human_message_with_multimodal_content ... ok [INFO] [stdout] test messages::multimodal::tests::test_image_detail_serialization ... ok [INFO] [stdout] test messages::multimodal::tests::test_is_multimodal_blocks_text_only ... ok [INFO] [stdout] test messages::multimodal::tests::test_is_multimodal_text_only ... ok [INFO] [stdout] test messages::multimodal::tests::test_is_multimodal_with_image ... ok [INFO] [stdout] test messages::multimodal::tests::test_multipart_text_and_base64_image ... ok [INFO] [stdout] test messages::multimodal::tests::test_multipart_text_and_image_url ... ok [INFO] [stdout] test messages::multimodal::tests::test_multiple_images_in_one_message ... ok [INFO] [stdout] test messages::multimodal::tests::test_text_only_message_content ... ok [INFO] [stdout] test messages::tests::test_get_msg_title_repr_length ... ok [INFO] [stdout] test messages::tests::test_pretty_repr_ai ... ok [INFO] [stdout] test messages::tests::test_pretty_repr_with_name ... ok [INFO] [stdout] test messages::tests::test_pretty_repr_human ... ok [INFO] [stdout] test messages::utils::tests::test_empty_input_filter_messages ... ok [INFO] [stdout] test messages::utils::tests::test_empty_input_merge_message_runs ... ok [INFO] [stdout] test messages::utils::tests::test_empty_input_messages_to_dict ... ok [INFO] [stdout] test messages::utils::tests::test_empty_input_trim_messages ... ok [INFO] [stdout] test messages::utils::tests::test_filter_messages_exclude_types ... ok [INFO] [stdout] test messages::utils::tests::test_filter_messages_include_types ... ok [INFO] [stdout] test messages::utils::tests::test_merge_message_runs_consecutive_same_types ... ok [INFO] [stdout] test messages::utils::tests::test_merge_message_runs_no_merging_needed ... ok [INFO] [stdout] test messages::utils::tests::test_messages_from_dict_various_types ... ok [INFO] [stdout] test messages::utils::tests::test_trim_messages_exact_token_boundary ... ok [INFO] [stdout] test messages::utils::tests::test_trim_messages_first_strategy ... ok [INFO] [stdout] test messages::utils::tests::test_messages_to_dict_round_trip ... ok [INFO] [stdout] test messages::tests::test_get_msg_title_repr_various ... ok [INFO] [stdout] test messages::utils::tests::test_trim_messages_all_exceeding_budget ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_empty ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_basic ... ok [INFO] [stdout] test messages::utils::tests::test_trim_messages_last_strategy ... ok [INFO] [stdout] test messages::utils::tests::test_trim_messages_preserving_system ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_trailing_comma ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_single_item ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_with_whitespace ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_format_instructions ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_parser_type ... ok [INFO] [stdout] test output_parsers::format::tests::test_comma_parser_type ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_empty_text ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_array ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_embedded_in_text ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_format_instructions ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_no_json_found ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_parser_type ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_simple_object ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_with_escaped_quotes ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_delegates_format_instructions ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_missing_closing_brace ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_missing_closing_bracket ... ok [INFO] [stdout] test output_parsers::format::tests::test_extracting_json_nested ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_custom_format_invalid ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_custom_format ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_strips_markdown_fences ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_trailing_comma ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_single_quotes ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_type ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_valid_json_passthrough ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_default_format_valid ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_bulleted ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_custom_separator ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_empty_text ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_format_instructions_custom ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_unfixable ... ok [INFO] [stdout] test output_parsers::format::tests::test_fixing_parser_trailing_comma_in_array ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_trims_whitespace ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_mixed_format ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_numbered ... ok [INFO] [stdout] test output_parsers::format::tests::test_parse_error_display ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_star_bullets ... ok [INFO] [stdout] test output_parsers::format::tests::test_list_parser_format_instructions_default ... ok [INFO] [stdout] test output_parsers::format::tests::test_parse_error_implements_std_error ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_format_instructions ... ok [INFO] [stdout] test output_parsers::format::tests::test_parse_error_into_cognis_error ... ok [INFO] [stdout] test output_parsers::format::tests::test_parse_error_new ... ok [INFO] [stdout] test output_parsers::format::tests::test_parse_error_to_json ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_missing_required_field ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_extracts_from_text ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_valid_object ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_non_object ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_with_required_fields_override ... ok [INFO] [stdout] test output_parsers::format::tests::test_retry_parser_fails_after_max_retries ... ok [INFO] [stdout] test output_parsers::format::tests::test_retry_parser_get_retry_instructions ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_extract_function_call_bare_object_in_text ... ok [INFO] [stdout] test output_parsers::format::tests::test_pydantic_wrong_type ... ok [INFO] [stdout] test output_parsers::format::tests::test_value_type_name ... ok [INFO] [stdout] test output_parsers::format::tests::test_retry_parser_succeeds_first_try ... ok [INFO] [stdout] test output_parsers::format::tests::test_retry_parser_delegates_format_instructions ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_default_impls ... ok [INFO] [stdout] test output_parsers::format::tests::test_retry_parser_type ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_format_instructions_are_none ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_extract_function_call_from_text ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser_missing_key ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser_parse ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser_partial_null ... ok [INFO] [stdout] test output_parsers::format::tests::test_datetime_default_format_invalid ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser_runnable ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_key_output_functions_parser_partial_missing_key ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_args_only ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_full_call ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_invalid_json ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_multiple_results_error ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_partial_bad_json ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_partial_good_json ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_partial_no_function_call ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_runnable_object ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_runnable ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_additional_kwargs ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_json_output_functions_parser_type ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_args_only ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_empty_result ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_full_call ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_no_function_call ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_parse_text ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_parse_text_full ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_runnable ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_output_functions_parser_runnable_object_with_function_call ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_parser_names ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_attr_output_functions_parser_missing_attr ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_attr_output_functions_parser ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_attr_output_functions_parser_runnable ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_missing_required ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_named_schemas ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_named_schemas_validation_fail ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_partial_skips_validation ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_runnable ... ok [INFO] [stdout] test output_parsers::openai_functions::tests::test_schema_output_functions_parser_single ... ok [INFO] [stdout] test prompts::chat::tests::test_append ... ok [INFO] [stdout] test prompts::chat::tests::test_extend ... ok [INFO] [stdout] test prompts::chat::tests::test_format_messages ... ok [INFO] [stdout] test prompts::chat::tests::test_from_messages_basic ... ok [INFO] [stdout] test prompts::chat::tests::test_from_template ... ok [INFO] [stdout] test prompts::chat::tests::test_partial ... ok [INFO] [stdout] test prompts::chat::tests::test_placeholder ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_custom_separator ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_format_no_examples_or_selector_errors ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_format_with_prefix_and_suffix_templates ... ok [INFO] [stdout] test prompts::chat::tests::test_runnable_invoke ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_format_without_prefix ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_input_variables_include_prefix_vars ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_invoke ... ok [INFO] [stdout] test prompts::loading::tests::test_load_chat_from_config ... ok [INFO] [stdout] test prompts::few_shot_with_templates::tests::test_invoke_rejects_non_object ... ok [INFO] [stdout] test prompts::loading::tests::test_load_few_shot_from_config ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_auto_extract_variables ... ok [INFO] [stdout] test prompts::loading::tests::test_load_examples_inline ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_basic ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_default_type ... ok [INFO] [stdout] test prompts::loading::tests::test_load_template_conflict_error ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_jinja2_rejected ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_not_object ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_unsupported_extension ... ok [INFO] [stdout] test prompts::loading::tests::test_load_examples_from_file ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_config_unsupported_type ... ok [INFO] [stdout] test prompts::loading::tests::test_load_prompt_from_json_file ... ok [INFO] [stdout] test prompts::loading::tests::test_prompt_type_parse ... ok [INFO] [stdout] test prompts::loading::tests::test_load_template_from_file ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_extract_escaped_braces ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_extract_no_duplicates ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_extract_variables ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_format_basic ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_format_missing_variable ... ok [INFO] [stdout] test prompts::string_formatter::tests::test_format_escaped_braces ... ok [INFO] [stdout] test prompts::structured::tests::test_format_messages ... ok [INFO] [stdout] test prompts::structured::tests::test_format_missing_variable ... ok [INFO] [stdout] test prompts::structured::tests::test_get_schema ... ok [INFO] [stdout] test prompts::structured::tests::test_new_deduplicates_variables ... ok [INFO] [stdout] test prompts::template::tests::test_composer_compose_with_separator ... ok [INFO] [stdout] test prompts::structured::tests::test_invoke_rejects_non_object ... ok [INFO] [stdout] test prompts::structured::tests::test_with_kwargs ... ok [INFO] [stdout] test prompts::structured::tests::test_new_extracts_variables ... ok [INFO] [stdout] test prompts::template::tests::test_bool_variable_substitution ... ok [INFO] [stdout] test prompts::template::tests::test_composer_compose ... ok [INFO] [stdout] test prompts::template::tests::test_composer_compose_missing_template ... ok [INFO] [stdout] test prompts::template::tests::test_composer_default ... ok [INFO] [stdout] test prompts::template::tests::test_composer_register_and_get ... ok [INFO] [stdout] test prompts::template::tests::test_composer_template_count ... ok [INFO] [stdout] test prompts::template::tests::test_conditional_false ... ok [INFO] [stdout] test prompts::template::tests::test_composer_to_json ... ok [INFO] [stdout] test prompts::template::tests::test_conditional_no_else ... ok [INFO] [stdout] test prompts::template::tests::test_each_block_in_template ... ok [INFO] [stdout] test prompts::template::tests::test_error_display_invalid_syntax ... ok [INFO] [stdout] test prompts::template::tests::test_conditional_missing_var ... ok [INFO] [stdout] test prompts::template::tests::test_conditional_true ... ok [INFO] [stdout] test prompts::template::tests::test_if_and_each_combined ... ok [INFO] [stdout] test prompts::template::tests::test_float_variable_substitution ... ok [INFO] [stdout] test prompts::template::tests::test_each_empty_list ... ok [INFO] [stdout] test prompts::structured::tests::test_invoke_returns_messages_and_schema ... ok [INFO] [stdout] test prompts::template::tests::test_error_is_std_error ... ok [INFO] [stdout] test prompts::template::tests::test_empty_template ... ok [INFO] [stdout] test prompts::template::tests::test_if_block_in_template ... ok [INFO] [stdout] test prompts::template::tests::test_if_else_block_in_template ... ok [INFO] [stdout] test prompts::template::tests::test_error_display_missing_variable ... ok [INFO] [stdout] test prompts::template::tests::test_loop_block_basic ... ok [INFO] [stdout] test prompts::template::tests::test_error_display_render_error ... ok [INFO] [stdout] test prompts::template::tests::test_if_false_hides_each ... ok [INFO] [stdout] test prompts::template::tests::test_if_with_substitution ... ok [INFO] [stdout] test prompts::template::tests::test_integer_variable ... ok [INFO] [stdout] test prompts::template::tests::test_loop_block_missing_var ... ok [INFO] [stdout] test prompts::template::tests::test_loop_block_with_index ... ok [INFO] [stdout] test prompts::template::tests::test_loop_block_not_a_list ... ok [INFO] [stdout] test prompts::template::tests::test_loop_integer_items ... ok [INFO] [stdout] test prompts::template::tests::test_missing_variables_detection ... ok [INFO] [stdout] test prompts::template::tests::test_missing_variable_error ... ok [INFO] [stdout] test prompts::template::tests::test_none_variable_substitution ... ok [INFO] [stdout] test prompts::template::tests::test_partial_template_render ... ok [INFO] [stdout] test prompts::template::tests::test_partial_template_name ... ok [INFO] [stdout] test prompts::template::tests::test_multiline_template ... ok [INFO] [stdout] test prompts::template::tests::test_repeated_variable ... ok [INFO] [stdout] test prompts::template::tests::test_template_str ... ok [INFO] [stdout] test prompts::template::tests::test_template_to_json ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_as_str ... ok [INFO] [stdout] test prompts::template::tests::test_partial_template_missing_var ... ok [INFO] [stdout] test prompts::template::tests::test_no_variables_plain_text ... ok [INFO] [stdout] test prompts::template::tests::test_multiple_variables ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_as_string_lossy ... ok [INFO] [stdout] test prompts::template::tests::test_simple_substitution ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_bool ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_owned_string ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_f64 ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_list_as_string_lossy ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_to_json ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_is_none ... ok [INFO] [stdout] test prompts::template::tests::test_template_variable_new ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_vec_string ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_i64 ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_truthy ... ok [INFO] [stdout] test prompts::template::tests::test_template_value_from_string ... ok [INFO] [stdout] test prompts::template::tests::test_template_variable_optional ... ok [INFO] [stdout] test prompts::template::tests::test_template_variable_required ... ok [INFO] [stdout] test prompts::template::tests::test_template_variable_to_json ... ok [INFO] [stdout] test prompts::template::tests::test_validator_default ... ok [INFO] [stdout] test prompts::template::tests::test_template_with_no_tags ... ok [INFO] [stdout] test prompts::template::tests::test_validator_empty_tag ... ok [INFO] [stdout] test prompts::template::tests::test_validator_extract_variables ... ok [INFO] [stdout] test prompts::template::tests::test_validator_mismatched_if ... ok [INFO] [stdout] test prompts::template::tests::test_validator_unclosed_tag ... ok [INFO] [stdout] test prompts::template::tests::test_validator_valid_template ... ok [INFO] [stdout] test prompts::template::tests::test_variable_with_spaces_in_tag ... ok [INFO] [stdout] test prompts::template::tests::test_with_variables_hashmap ... ok [INFO] [stdout] test prompts::template::tests::test_variables_extraction ... ok [INFO] [stdout] test prompts::template::tests::test_variables_deduplication ... ok [INFO] [stdout] test retry::tests::test_never_retry_classifier ... ok [INFO] [stdout] test retrievers::tests::test_retriever_get_documents ... ok [INFO] [stdout] test prompts::template::tests::test_validator_balanced_blocks ... ok [INFO] [stdout] test retry::tests::test_retry_classifier_client_errors_not_retryable ... ok [INFO] [stdout] test prompts::template::tests::test_validator_mismatched_each ... ok [INFO] [stdout] test retrievers::tests::test_retriever_runnable ... ok [INFO] [stdout] test retry::tests::test_always_retry_classifier ... ok [INFO] [stdout] test retrievers::tests::test_retriever_runnable_type_error ... ok [INFO] [stdout] test retry::tests::test_retry_classifier_rate_limit ... ok [INFO] [stdout] test retry::tests::test_retry_classifier_server_errors ... ok [INFO] [stdout] test retry::tests::test_retry_classifier_other_with_keywords ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_adds_new_field ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_non_object_input_errors ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_fn_computed ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_preserves_original_fields ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_multiple_assignments_parallel ... ok [INFO] [stdout] test retry::tests::test_retry_classifier_non_retryable_errors ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_nested ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_overwrites_existing_field ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_config_passed_through ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_value_static ... ok [INFO] [stdout] test runnables::assign::tests::test_assign_then_pick_pipeline ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_empty_inputs ... ok [INFO] [stdout] test runnables::assign::tests::test_pick_non_object_errors ... ok [INFO] [stdout] test runnables::assign::tests::test_pick_nonexistent_fields_returns_empty ... ok [INFO] [stdout] test runnables::assign::tests::test_pick_keeps_specified_fields ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_basic ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_empty_inputs ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_error_handling ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_single_input ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_preserves_input_order ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_with_config ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_basic ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_empty_array ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_invalid_input_type ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_name ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_propagate_errors ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_return_exceptions ... ok [INFO] [stdout] test runnables::base::tests::test_with_concurrency_extension ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_config_builder ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_config_builder_chaining ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_config_defaults ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_config_new_equals_default ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_concurrency_limit_2_on_4_inputs ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_item_result_failure ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_item_result_into_value_failure ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_item_result_into_value_success ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_item_result_success ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_chunk_size_1 ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_chunk_size_larger_than_total ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_all_success ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_empty_input ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_fail_fast ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_fail_fast_all_succeed ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_mixed_results ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_preserves_order ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_retry_failed ... ok [INFO] [stdout] test runnables::batch::tests::test_runnable_batch_with_max_concurrency ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_preserves_order ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_complete ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_max_concurrency_1_sequential ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_initial ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_mixed ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_record_failure ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_record_success ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_to_json ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_progress_zero_total ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_failures_filter ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_success_rate_all_failure ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_success_rate_all_success ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_success_rate_empty ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_success_rate_mixed ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_successes_filter ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_result_to_json ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_chunk_size_1 ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_chunk_size_larger_than_items ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_chunk_size_zero_clamped ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_empty ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_basic ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_exact_division ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_chunk_iterator_single_item ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_runnable_batch_processor_invoke_array ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_runnable_batch_processor_invoke_batch_method ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_runnable_batch_processor_invoke_non_array ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_runnable_batch_processor_name ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_runnable_batch_processor_with_failures ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_config_builder ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_config_debug ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_config_defaults ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_entry_creation ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_entry_no_ttl_never_expires ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_entry_touch ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_entry_with_ttl_not_expired ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_invalidator_default ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_invalidator_invalidate_matching ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_invalidator_matching_pattern ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_invalidator_no_patterns ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_invalidator_non_matching_pattern ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_as_str ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_entry_with_zero_ttl_expired ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_different_values_differ ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_from_complex_value ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_from_null ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_from_value_deterministic ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_key_hash_impl ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_stats_hit_rate ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_stats_hit_rate_no_lookups ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_stats_hits_and_misses ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_stats_initial ... ok [INFO] [stdout] test runnables::cache::tests::test_cache_stats_to_json ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_cache_hit ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_cache_miss ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_does_not_cache_errors ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_name_delegates ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_stats ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_stream_not_cached ... ok [INFO] [stdout] test runnables::cache::tests::test_cached_runnable_with_eviction ... ok [INFO] [stdout] test runnables::cache::tests::test_eviction_policy_equality ... ok [INFO] [stdout] test runnables::cache::tests::test_fifo_eviction_evicts_oldest ... ok [INFO] [stdout] test runnables::cache::tests::test_fifo_order_preserved_on_access ... ok [INFO] [stdout] test runnables::batch::tests::test_batch_invoke_concurrency_limiting ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_concurrency_limit_1_is_sequential ... ok [INFO] [stdout] test runnables::cache::tests::test_lfu_eviction_evicts_least_frequently_accessed ... ok [INFO] [stdout] test runnables::cache::tests::test_immediate_ttl_expiry ... ok [INFO] [stdout] test runnables::cache::tests::test_eviction_policy_name ... ok [INFO] [stdout] test runnables::cache::tests::test_lru_eviction_evicts_least_recently_accessed ... ok [INFO] [stdout] test runnables::cache::tests::test_lru_eviction_multiple ... ok [INFO] [stdout] test runnables::cache::tests::test_max_entries_one ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_clear ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_get_missing ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_hit_rate ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_invalidate ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_invalidate_nonexistent ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_len_is_empty ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_put_get ... ok [INFO] [stdout] test runnables::cache::tests::test_runnable_cache_update_existing_key ... ok [INFO] [stdout] test runnables::cache::tests::test_ttl_not_expired_returns_value ... ok [INFO] [stdout] test runnables::cache::tests::test_zero_max_entries ... ok [INFO] [stdout] test runnables::config::tests::test_default_config ... ok [INFO] [stdout] test runnables::config::tests::test_ensure_config_none ... ok [INFO] [stdout] test runnables::config::tests::test_ensure_config_some ... ok [INFO] [stdout] test runnables::config::tests::test_get_config_list ... ok [INFO] [stdout] test runnables::config::tests::test_merge_configs_metadata_overlaid ... ok [INFO] [stdout] test runnables::cache::tests::test_ttl_expiration_on_get ... ok [INFO] [stdout] test runnables::config::tests::test_merge_configs_run_name_overlay_wins ... ok [INFO] [stdout] test runnables::config::tests::test_merge_configs_tags_appended ... ok [INFO] [stdout] test runnables::config::tests::test_patch_config_selective ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_default_key ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_add_and_select ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_keys ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_len ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_new ... ok [INFO] [stdout] test runnables::configurable::tests::test_alternatives_no_duplicate ... ok [INFO] [stdout] test runnables::configurable::tests::test_configurable_field_builder ... ok [INFO] [stdout] test runnables::configurable::tests::test_configurable_field_new ... ok [INFO] [stdout] test runnables::configurable::tests::test_configurable_field_validate_value_err ... ok [INFO] [stdout] test runnables::configurable::tests::test_configurable_field_validate_value_ok ... ok [INFO] [stdout] test runnables::configurable::tests::test_enum_validation_empty_variants ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_boolean_rejects_int ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_boolean_validates_bool ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_default_values ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_enum_default_empty ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_enum_default_first_variant ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_enum_rejects_disallowed ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_enum_rejects_non_string ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_enum_validates_allowed ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_float_rejects_string ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_float_validates_float ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_float_validates_int_as_float ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_integer_rejects_float ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_integer_rejects_string ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_integer_validates_int ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_json_accepts_anything ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_string_validates_string ... ok [INFO] [stdout] test runnables::configurable::tests::test_field_type_string_rejects_number ... ok [INFO] [stdout] test runnables::configurable::tests::test_rcf_configure_validates_and_applies_defaults ... ok [INFO] [stdout] test runnables::configurable::tests::test_rcf_no_spec_returns_none ... ok [INFO] [stdout] test runnables::configurable::tests::test_rcf_configure_rejects_missing_required ... ok [INFO] [stdout] test runnables::configurable::tests::test_rcf_get_spec ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_all_defaults_applied ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_apply_defaults ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_apply_defaults_does_not_overwrite ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_apply_defaults_no_default_leaves_absent ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_empty ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_no_config_object ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_validate_missing_required ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_required_fields ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_validate_non_object ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_validate_required_present_optional_absent ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_validate_success ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_validate_wrong_type ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_allow_request_closed ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_allow_request_open ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_opens_after_threshold ... ok [INFO] [stdout] test runnables::configurable::tests::test_spec_add_and_get_field ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_starts_closed ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_state_display ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_success_resets_failures ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_zero_threshold ... ok [INFO] [stdout] test runnables::error_handling::tests::test_classified_error_json_without_source ... ok [INFO] [stdout] test runnables::error_handling::tests::test_classified_error_new ... ok [INFO] [stdout] test runnables::error_handling::tests::test_classified_error_to_json ... ok [INFO] [stdout] test runnables::error_handling::tests::test_classified_error_with_source ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_action_circuit_break ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_action_propagate ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_action_recover ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_action_retry ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_add_and_len ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_default ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_errors_slice ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_has_permanent ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_latest ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_new_is_empty ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_retry_count ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_chain_to_json ... ok [INFO] [stdout] test runnables::error_handling::tests::test_error_kind_display ... ok [INFO] [stdout] test runnables::error_handling::tests::test_map_error_handler_handle_returns_fallback ... ok [INFO] [stdout] test runnables::error_handling::tests::test_map_error_handler_transforms_message ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_case_insensitive ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_custom_pattern ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_no_patterns_match ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_permanent ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_rate_limit ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_rate_limit_429 ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_timeout ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_transient ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_unknown ... ok [INFO] [stdout] test runnables::error_handling::tests::test_pattern_classifier_validation ... ok [INFO] [stdout] test runnables::error_handling::tests::test_permanent_is_not_retryable ... ok [INFO] [stdout] test runnables::error_handling::tests::test_rate_limit_is_retryable ... ok [INFO] [stdout] test runnables::error_handling::tests::test_recovery_handler_returns_default ... ok [INFO] [stdout] test runnables::error_handling::tests::test_timeout_is_retryable ... ok [INFO] [stdout] test runnables::error_handling::tests::test_transient_is_retryable ... ok [INFO] [stdout] test runnables::error_handling::tests::test_unknown_is_not_retryable ... ok [INFO] [stdout] test runnables::error_handling::tests::test_validation_is_not_retryable ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_clear ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_default_trait ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_emit_and_events ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_events_by_name ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_events_by_type ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_new_is_empty ... ok [INFO] [stdout] test runnables::events::tests::test_filter_by_names ... ok [INFO] [stdout] test runnables::events::tests::test_filter_by_types ... ok [INFO] [stdout] test runnables::events::tests::test_filter_combined_criteria ... ok [INFO] [stdout] test runnables::events::tests::test_emitter_thread_safety ... ok [INFO] [stdout] test runnables::events::tests::test_filter_empty_events ... ok [INFO] [stdout] test runnables::events::tests::test_filter_default_matches_all ... ok [INFO] [stdout] test runnables::events::tests::test_filter_vec ... ok [INFO] [stdout] test runnables::events::tests::test_filter_with_predicate ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_elapsed_since_same_event_is_zero_or_small ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_new_has_generated_run_id ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_to_json_serialization ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_type_all_variants ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_type_custom_equality ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_with_metadata ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_with_parent ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_carries_input_in_start ... ok [INFO] [stdout] test runnables::events::tests::test_run_event_elapsed_since ... ok [INFO] [stdout] test runnables::base::tests::test_abatch_concurrent_faster_than_sequential ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_correct_event_types ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_error_produces_chain_error ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_produces_chain_start_and_end ... ok [INFO] [stdout] test runnables::events::tests::test_trace_children_of ... ok [INFO] [stdout] test runnables::events::tests::test_trace_depth_of ... ok [INFO] [stdout] test runnables::events::tests::test_trace_depth_of_unknown_id ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_with_sequence ... ok [INFO] [stdout] test runnables::events::tests::test_trace_empty ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_concurrency_control ... ok [INFO] [stdout] test runnables::events::tests::test_trace_roots ... ok [INFO] [stdout] test runnables::events::tests::test_trace_to_json_nested ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_all_fail_returns_last_error ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_batch_invoke_with_fallbacks ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_config_passing_through_fallbacks ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_builder_pattern_chaining ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_display_name_formatting ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_exception_filter_matching_error_triggers_fallback ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_exception_filter_non_matching_error_propagates_immediately ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_empty_fallbacks_returns_primary_error ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_exception_filter_with_http_error ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_primary_and_first_fallback_fail_second_succeeds ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_primary_succeeds_fallbacks_not_called ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_primary_fails_first_fallback_succeeds ... ok [INFO] [stdout] test runnables::graph::tests::test_ascii_export_empty_graph ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_with_fallbacks_helper_function ... ok [INFO] [stdout] test runnables::graph::tests::test_ascii_export_linear ... ok [INFO] [stdout] test runnables::batch_processor::tests::test_batch_process_with_timeout ... ok [INFO] [stdout] test runnables::graph::tests::test_ascii_export_single_node ... ok [INFO] [stdout] test runnables::fallbacks::tests::test_fallback_with_different_output_value ... ok [INFO] [stdout] test runnables::graph::tests::test_conditional_edge_mermaid ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_export_custom_options ... ok [INFO] [stdout] test runnables::graph::tests::test_complex_branch_graph ... ok [INFO] [stdout] test runnables::graph::tests::test_complex_parallel_graph ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_export_default ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_export_node_shapes ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_export_with_condition ... ok [INFO] [stdout] test runnables::graph::tests::test_draw_ascii ... ok [INFO] [stdout] test runnables::graph::tests::test_draw_mermaid ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_export_with_label ... ok [INFO] [stdout] test runnables::graph::tests::test_dot_options_default ... ok [INFO] [stdout] test runnables::graph::tests::test_empty_graph ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_edge_creation ... ok [INFO] [stdout] test runnables::graph::tests::test_first_and_last_node ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_edge_with_condition ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_edge_label_and_condition ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_edge_to_json ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_edge_with_label ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_node_creation ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_node_to_json ... ok [INFO] [stdout] test runnables::graph::tests::test_graph_node_with_metadata ... ok [INFO] [stdout] test runnables::graph::tests::test_mermaid_export_default_direction ... ok [INFO] [stdout] test runnables::graph::tests::test_mermaid_export_input_output_shapes ... ok [INFO] [stdout] test runnables::graph::tests::test_mermaid_export_lr_direction ... ok [INFO] [stdout] test runnables::graph::tests::test_mermaid_export_with_condition ... ok [INFO] [stdout] test runnables::graph::tests::test_mermaid_export_with_label ... ok [INFO] [stdout] test runnables::graph::tests::test_multiple_roots_and_leaves ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_branch ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_custom ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_input ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_lambda ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_output ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_parallel ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_display_runnable ... ok [INFO] [stdout] test runnables::graph::tests::test_node_type_equality ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_add_and_count ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_empty ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_get_edges_from ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_leaves ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_nodes_and_edges ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_single_node ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_roots ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_topological_sort_branching ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_to_json ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_topological_sort_cycle_detection ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_topological_sort_linear ... ok [INFO] [stdout] test runnables::graph::tests::test_topological_sort_linear ... ok [INFO] [stdout] test runnables::graph::tests::test_topological_sort_diamond ... ok [INFO] [stdout] test runnables::history::tests::test_session_id_required ... ok [INFO] [stdout] test runnables::history::tests::test_invoke_with_session ... ok [INFO] [stdout] test runnables::graph::tests::test_runnable_graph_get_node ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_after_error ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_after_short_circuit ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_empty_passthrough_after ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_empty_passthrough_before ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_len_and_is_empty ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_error_stops_processing ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_multiple_middleware_before_and_after ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_short_circuit_stops_processing ... ok [INFO] [stdout] test runnables::middleware::tests::test_chain_ordering_before ... ok [INFO] [stdout] test runnables::middleware::tests::test_continue_into_value ... ok [INFO] [stdout] test runnables::middleware::tests::test_continue_is_continue ... ok [INFO] [stdout] test runnables::middleware::tests::test_error_into_value_is_err ... ok [INFO] [stdout] test runnables::middleware::tests::test_default_trait_impls_pass_through ... ok [INFO] [stdout] test runnables::middleware::tests::test_logging_middleware_before ... ok [INFO] [stdout] test runnables::middleware::tests::test_error_is_neither ... ok [INFO] [stdout] test runnables::middleware::tests::test_logging_middleware_after ... ok [INFO] [stdout] test runnables::middleware::tests::test_logging_middleware_multiple_calls ... ok [INFO] [stdout] test runnables::middleware::tests::test_retry_exceeds_limit ... ok [INFO] [stdout] test runnables::middleware::tests::test_logging_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_retry_allows_within_limit ... ok [INFO] [stdout] test runnables::middleware::tests::test_retry_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_multiple_middleware_composition ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_error_in_before ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_short_circuit_in_before ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_middleware_passthrough ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_retry_within_limit ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_logging ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_transform ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_validation_pass ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_validation_fail ... ok [INFO] [stdout] test runnables::middleware::tests::test_short_circuit_into_value ... ok [INFO] [stdout] test runnables::middleware::tests::test_timing_average_none_when_empty ... ok [INFO] [stdout] test runnables::middleware::tests::test_timing_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_runnable_with_timing ... ok [INFO] [stdout] test runnables::middleware::tests::test_timing_multiple_invocations ... ok [INFO] [stdout] test runnables::middleware::tests::test_transform_middleware_adds_field ... ok [INFO] [stdout] test runnables::middleware::tests::test_transform_middleware_after_passes_through ... ok [INFO] [stdout] test runnables::middleware::tests::test_transform_middleware_modifies_input ... ok [INFO] [stdout] test runnables::middleware::tests::test_short_circuit_is_short_circuit ... ok [INFO] [stdout] test runnables::middleware::tests::test_transform_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_validation_empty_required_fields ... ok [INFO] [stdout] test runnables::middleware::tests::test_validation_fails_missing_field ... ok [INFO] [stdout] test runnables::middleware::tests::test_validation_middleware_name ... ok [INFO] [stdout] test runnables::middleware::tests::test_validation_passes_with_all_fields ... ok [INFO] [stdout] test runnables::middleware::tests::test_validation_fails_non_object ... ok [INFO] [stdout] test runnables::passthrough::tests::test_passthrough_with_side_effect ... ok [INFO] [stdout] test runnables::passthrough::tests::test_passthrough_returns_input ... ok [INFO] [stdout] test runnables::passthrough::tests::test_pick_multiple_keys ... ok [INFO] [stdout] test runnables::passthrough::tests::test_pick_multiple_keys_partial ... ok [INFO] [stdout] test runnables::passthrough::tests::test_pick_non_object_errors ... ok [INFO] [stdout] test runnables::middleware::tests::test_timing_average_some_when_recorded ... ok [INFO] [stdout] test runnables::passthrough::tests::test_pick_single_key ... ok [INFO] [stdout] test runnables::pipe::tests::test_parallel_multiple_branches ... ok [INFO] [stdout] test runnables::passthrough::tests::test_pick_single_key_missing ... ok [INFO] [stdout] test runnables::middleware::tests::test_timing_records_duration ... ok [INFO] [stdout] test runnables::pipe::tests::test_parallel_single_branch ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_basic_two_lambdas ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_closed_to_open_to_half_open_to_closed ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_half_open_after_timeout ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_batch ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_builder_multi_step ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_builder_name ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_builder_single_step ... ok [INFO] [stdout] test runnables::error_handling::tests::test_circuit_breaker_allow_request_half_open ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_error_propagation ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_config_passing ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_error_in_second_step ... ok [INFO] [stdout] test runnables::events::tests::test_stream_events_completes_after_invoke ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_name_formatting ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_type_transformation ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_triple_chain ... ok [INFO] [stdout] test runnables::pipe::tests::test_pipe_with_parallel ... ok [INFO] [stdout] test runnables::pipeline::tests::test_all_stages_fail_with_handlers ... ok [INFO] [stdout] test runnables::pipeline::tests::test_builder_empty ... ok [INFO] [stdout] test runnables::pipeline::tests::test_builder_fluent_api ... ok [INFO] [stdout] test runnables::pipeline::tests::test_builder_on_error ... ok [INFO] [stdout] test runnables::pipeline::tests::test_builder_then_if ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_new ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_default ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_average_duration ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_record_failure ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_record_success ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_stage_execution_counts ... ok [INFO] [stdout] test runnables::pipeline::tests::test_parallel_pipeline_branch_count ... ok [INFO] [stdout] test runnables::pipeline::tests::test_metrics_to_json ... ok [INFO] [stdout] test runnables::pipeline::tests::test_parallel_pipeline_branch_names ... ok [INFO] [stdout] test runnables::pipeline::tests::test_parallel_pipeline_default ... ok [INFO] [stdout] test runnables::pipeline::tests::test_parallel_pipeline_empty ... ok [INFO] [stdout] test runnables::pipeline::tests::test_parallel_pipeline_execution ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_conditional_stage_runs ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_conditional_stage_skips ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_dry_run ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_dry_run_empty ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_empty ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_error_handler_fallback ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_all_stages_skipped ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_error_stops_execution ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_result_is_success_with_errors ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_name ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_result_to_json ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_sequential_execution ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_stage_count ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_error_handler_not_called_on_success ... ok [INFO] [stdout] test runnables::pipeline::tests::test_pipeline_stage_names ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_creation ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_execute_failure_no_handler ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_execute_failure_with_handler ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_execute_success ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_should_run_condition_false ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_should_run_condition_true ... ok [INFO] [stdout] test runnables::pipeline::tests::test_stage_should_run_no_condition ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_burst_limit_capacity ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_guard_multiple_drop ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_guard_raii ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_limiter_basic ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_limiter_clone ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_limiter_large_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_limiter_release_on_drop ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_config_builder_chain ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_concurrency_limiter_zero ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_config_clone ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_config_with_burst_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_acquire_exhaustion ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_acquire_within_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_config_debug ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_available_tokens ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_burst_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_config_new ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_config_accessor ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_immediate_reset_and_reuse ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_reset ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_zero_max_requests ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_zero_window ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_limiter_accessor ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_name ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_rejects_over_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_allows_within_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_batch_respects_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_single_request ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_runnable_rate_limit_stream_rejects ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_exceeds_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_very_large_window ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_reset ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_within_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_zero_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_first_call_immediate ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_zero_interval ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_name ... ok [INFO] [stdout] test runnables::retry::tests::test_retry_exhausts_attempts ... ok [INFO] [stdout] test runnables::retry::tests::test_retry_succeeds_after_failures ... ok [INFO] [stdout] test runnables::retry::tests::test_retry_succeeds_first_try ... ok [INFO] [stdout] test runnables::retry::tests::test_retry_with_filter ... ok [INFO] [stdout] test runnables::router::tests::test_fn_branch_falls_through_to_default ... ok [INFO] [stdout] test runnables::router::tests::test_fn_branch_first_match_wins ... ok [INFO] [stdout] test runnables::router::tests::test_fn_branch_name ... ok [INFO] [stdout] test runnables::router::tests::test_fn_branch_single_condition ... ok [INFO] [stdout] test runnables::router::tests::test_router_basic_routing_to_correct_branch ... ok [INFO] [stdout] test runnables::router::tests::test_router_complex_routing_logic_nested_fields ... ok [INFO] [stdout] test runnables::router::tests::test_router_config_passing_through ... ok [INFO] [stdout] test runnables::router::tests::test_router_default_fallback_when_no_route_matches ... ok [INFO] [stdout] test runnables::router::tests::test_router_error_when_no_route_and_no_default ... ok [INFO] [stdout] test runnables::router::tests::test_router_multiple_routes ... ok [INFO] [stdout] test runnables::router::tests::test_router_name_formatting ... ok [INFO] [stdout] test runnables::router::tests::test_router_routing_based_on_json_field_value ... ok [INFO] [stdout] test runnables::router::tests::test_router_routing_fn_receives_full_input ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_empty_branches_with_otherwise ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_first_match_wins ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_first_when_matches ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_name ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_no_match_no_otherwise ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_otherwise ... ok [INFO] [stdout] test runnables::router_ext::tests::test_conditional_branch_second_when_matches ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_complex_predicate ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_empty_no_routes ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_first_predicate_match ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_name ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_no_match_error ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_ordering_matters ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_route_method ... ok [INFO] [stdout] test runnables::router_ext::tests::test_content_router_second_predicate_match ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_all_fail ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_empty ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_first_fails_second_succeeds ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_first_succeeds ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_name ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_single_runnable_fails ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_single_runnable_succeeds ... ok [INFO] [stdout] test runnables::router_ext::tests::test_fallback_router_third_succeeds ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_basic_routing ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_missing_key_error ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_name ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_no_match_no_default_error ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_non_string_key_value_error ... ok [INFO] [stdout] test runnables::router_ext::tests::test_key_router_with_default ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_basic_match ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_batch ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_empty_no_patterns ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_name ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_no_match ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_non_string_input ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_complex_pattern ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_add_and_get ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_empty_to_json ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_get_returns_usable_runnable ... ok [INFO] [stdout] test runnables::router_ext::tests::test_regex_router_second_pattern_match ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_len_and_is_empty ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_names ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_replace_existing ... ok [INFO] [stdout] test runnables::router_ext::tests::test_routing_table_to_json ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_with_duration ... ok [INFO] [stdout] test runnables::schema::tests::test_apply_defaults_does_not_overwrite_existing ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_no_delay_after_interval ... ok [INFO] [stdout] test runnables::schema::tests::test_apply_defaults_fills_missing ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_from_empty_samples ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_from_samples_type_merging ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_from_multiple_samples_required_vs_optional ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_from_single_sample ... ok [INFO] [stdout] test runnables::schema::tests::test_apply_defaults_on_non_object_is_noop ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_non_object_value ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_type_detection ... ok [INFO] [stdout] test runnables::schema::tests::test_infer_from_single_value ... ok [INFO] [stdout] test runnables::schema::tests::test_runnable_schema_len_and_is_empty ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_all_optional_fields ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_contract_accessors ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_contract_to_json ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_contract_validate_input ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_contract_validate_output ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_empty_validates_anything ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_error_to_json ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_extra_fields_are_allowed ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_field_builder_chain ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_field_new_defaults ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_field_required_toggle ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_missing_required_field ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_multiple_errors ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_non_object_value_with_fields ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_optional_field_missing_is_ok ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_required_with_default_allows_missing ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_any ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_array ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_boolean ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_empty_array ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_integer ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_nested_array ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_nullable ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_nullable_nested ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_number ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_object ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_names ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_type_matches_string ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_valid_object ... ok [INFO] [stdout] test runnables::schema::tests::test_schema_wrong_type ... ok [INFO] [stdout] test runnables::schema::tests::test_to_json_schema_basic ... ok [INFO] [stdout] test runnables::schema::tests::test_to_json_schema_no_required ... ok [INFO] [stdout] test runnables::schema::tests::test_to_json_schema_nullable ... ok [INFO] [stdout] test runnables::schema::tests::test_to_json_schema_with_default ... ok [INFO] [stdout] test runnables::schema::tests::test_validation_result_error_messages ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_debug ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_default_is_empty ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_handlers_accessor ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_new_is_empty ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_with_handler_chained ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_config_with_handler_single ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_add_handler ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_debug ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_default_empty ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_dispatch_all_event_variants ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_dispatch_calls_all_handlers ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_dispatch_receives_correct_event ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_dispatch_receives_correct_scope ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_from_config ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_new_empty ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_dispatcher_no_handlers_dispatch_does_nothing ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_clone ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_custom_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_custom_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_debug ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_end_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_end_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_error_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_error_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_retry_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_retry_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_start_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_start_to_json_null_input ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_start_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_text_to_json ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_event_on_text_type ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_merge_configs_combines_handlers ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_merge_configs_does_not_affect_originals ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_merge_configs_preserves_order ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_merge_empty_configs ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_merge_one_empty_one_populated ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_runnable_with_callbacks_debug ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_runnable_with_callbacks_dispatches_events ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_child_has_parent ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_child_chain ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_clone ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_debug ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_dispatches_on_start_and_on_end ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_dispatches_on_start_and_on_error ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_dropped_without_result_emits_error ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_sliding_window_expiry ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_dropped_without_result_error_message ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_runnable_with_callbacks_on_error ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_end_event_carries_output ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_error_event_carries_message ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_scope_accessor ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_guard_start_event_carries_input ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_new_has_generated_run_id ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_scope_new_run_ids_are_unique ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_with_callbacks_empty ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_with_callbacks_handlers_are_called ... ok [INFO] [stdout] test runnables::scoped_callbacks::tests::test_with_callbacks_multiple ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_builder_basic ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_builder_with_maps ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_from_json_missing_name ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_from_json_missing_optional_maps ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_from_json_missing_version ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_from_json_missing_type_name ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_builder_empty ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_json_round_trip ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_to_json ... ok [INFO] [stdout] test runnables::serialization::tests::test_config_to_compact_json ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_added ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_changed ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_mixed ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_no_changes_empty ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_to_json ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_combined ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_unchanged ... ok [INFO] [stdout] test runnables::serialization::tests::test_diff_removed ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_add_default ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_default_does_not_overwrite ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_rename ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_wrong_version ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_empty_config ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_spec_builder ... ok [INFO] [stdout] test runnables::serialization::tests::test_migration_removal ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_spec_defaults ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_array ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_boolean ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_type_name ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_integer ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_any ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_float ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_object ... ok [INFO] [stdout] test runnables::serialization::tests::test_param_type_validate_string ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_len_and_empty ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_names ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_register_and_get ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_throttle_enforces_min_interval ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_validate_failure ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_validate_unknown_schema ... ok [INFO] [stdout] test runnables::serialization::tests::test_registry_validate_success ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_validate_optional_missing_ok ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_validate_success ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_empty_validates_any_config ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_validate_missing_required ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_to_json ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_validate_wrong_type_optional ... ok [INFO] [stdout] test runnables::serialization::tests::test_schema_validate_wrong_type_required ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_stream_past_deadline_errors ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_name_delegates ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_fast_operation_succeeds ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_stream_succeeds ... ok [INFO] [stdout] test runnables::timeout::tests::test_ext_with_timeout ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_completes_quickly_when_fast ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_config_defaults_to_error_behavior ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_config_with_default_value ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_config_with_fallback ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_fast_operation_succeeds ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_inner_error_propagated ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_name_delegates ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_already_past ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_just_within_limit ... ok [INFO] [stdout] test runnables::rate_limit::tests::test_limiter_refill_over_time ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_stream_fast_succeeds ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_slow_operation_errors ... ok [INFO] [stdout] test runnables::timeout::tests::test_ext_with_timeout_config ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_default ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_entries_by_level ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_entries_by_level_no_matches ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_slow_operation_errors ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_entries_for_span ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_slow_operation_returns_default ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_clear ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_min_level_filtering ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_new_is_empty ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_start_and_finish_span ... ok [INFO] [stdout] test runnables::tracing::tests::test_compact_formatter_empty ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_log_and_entries ... ok [INFO] [stdout] test runnables::tracing::tests::test_compact_formatter_output ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_thread_safety ... ok [INFO] [stdout] test runnables::tracing::tests::test_exporter_empty_collector ... ok [INFO] [stdout] test runnables::tracing::tests::test_exporter_export_spans ... ok [INFO] [stdout] test runnables::tracing::tests::test_exporter_with_json_formatter ... ok [INFO] [stdout] test runnables::tracing::tests::test_exporter_export_entries ... ok [INFO] [stdout] test runnables::tracing::tests::test_json_formatter_empty ... ok [INFO] [stdout] test runnables::tracing::tests::test_json_formatter_output ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_child ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_finish ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_finish_preserves_error_status ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_new ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_result_display ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_result_equality ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_set_attribute ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_set_status_explicitly ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_to_json ... ok [INFO] [stdout] test runnables::tracing::tests::test_collector_entries_for_nonexistent_span ... ok [INFO] [stdout] test runnables::tracing::tests::test_multiple_child_spans ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_to_json_unfinished ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_to_json_with_parent ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_chained_builders ... ok [INFO] [stdout] test runnables::tracing::tests::test_text_formatter_empty ... ok [INFO] [stdout] test runnables::tracing::tests::test_text_formatter_output ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_new ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_to_json_minimal ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_to_json ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_with_span ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_level_as_str ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_entry_with_data ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_level_display ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_level_ordering ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_level_sort ... ok [INFO] [stdout] test runnables::tracing::tests::test_span_duration ... ok [INFO] [stdout] test runnables::tracing::tests::test_unfinished_span_has_no_duration ... ok [INFO] [stdout] test runnables::retry::tests::test_retry_backoff_delay ... ok [INFO] [stdout] test tools::convert::tests::test_convert_runnable_to_simple_tool ... ok [INFO] [stdout] test tools::convert::tests::test_convert_to_openai_tool_format ... ok [INFO] [stdout] test tools::convert::tests::test_convert_runnable_defaults_name_and_description ... ok [INFO] [stdout] test tools::convert::tests::test_convert_to_openai_tools_multiple ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_builder_methods ... ok [INFO] [stdout] test tools::convert::tests::test_convert_runnable_to_structured_tool ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_name_and_description ... ok [INFO] [stdout] test runnables::tracing::tests::test_trace_level_equality ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_with_metadata ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_text_input ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_with_extras ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_error_handling ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_run_str ... ok [INFO] [stdout] test tools::retriever::tests::test_name_description_schema ... ok [INFO] [stdout] test tools::function::tests::test_function_tool_with_schema ... ok [INFO] [stdout] test tools::retriever::tests::test_retriever_tool_text_input ... ok [INFO] [stdout] test tools::schema::tests::test_generator_all_param_types ... ok [INFO] [stdout] test tools::schema::tests::test_generator_build_simple ... ok [INFO] [stdout] test tools::schema::tests::test_generator_builds_valid_anthropic_json ... ok [INFO] [stdout] test tools::schema::tests::test_generator_builds_valid_openai_json ... ok [INFO] [stdout] test tools::schema::tests::test_multiple_validation_errors ... ok [INFO] [stdout] test tools::schema::tests::test_nested_array_of_arrays ... ok [INFO] [stdout] test tools::schema::tests::test_nested_array_of_arrays_invalid ... ok [INFO] [stdout] test tools::retriever::tests::test_retriever_tool_structured_input ... ok [INFO] [stdout] test tools::schema::tests::test_property_array ... ok [INFO] [stdout] test tools::schema::tests::test_property_boolean ... ok [INFO] [stdout] test tools::schema::tests::test_property_enum_type ... ok [INFO] [stdout] test tools::schema::tests::test_property_number ... ok [INFO] [stdout] test tools::schema::tests::test_property_number_constraints ... ok [INFO] [stdout] test tools::schema::tests::test_property_object ... ok [INFO] [stdout] test tools::schema::tests::test_property_string ... ok [INFO] [stdout] test tools::schema::tests::test_property_to_json ... ok [INFO] [stdout] test tools::schema::tests::test_property_to_json_array_items ... ok [INFO] [stdout] test tools::schema::tests::test_property_to_json_enum ... ok [INFO] [stdout] test tools::schema::tests::test_property_builder_chain ... ok [INFO] [stdout] test tools::schema::tests::test_property_integer ... ok [INFO] [stdout] test tools::schema::tests::test_registry_all_schemas ... ok [INFO] [stdout] test tools::retriever::tests::test_custom_separator ... ok [INFO] [stdout] test tools::schema::tests::test_registry_register_and_get ... ok [INFO] [stdout] test tools::schema::tests::test_registry_to_json ... ok [INFO] [stdout] test tools::schema::tests::test_registry_validate_call_missing_field ... ok [INFO] [stdout] test tools::schema::tests::test_registry_validate_call_ok ... ok [INFO] [stdout] test tools::schema::tests::test_registry_validate_call_unknown_tool ... ok [INFO] [stdout] test tools::schema::tests::test_schema_object_no_required ... ok [INFO] [stdout] test tools::schema::tests::test_tool_schema_strict_mode ... ok [INFO] [stdout] test tools::schema::tests::test_schema_object_to_json ... ok [INFO] [stdout] test tools::schema::tests::test_tool_schema_to_anthropic_json ... ok [INFO] [stdout] test tools::schema::tests::test_tool_schema_validate_input_err ... ok [INFO] [stdout] test tools::schema::tests::test_tool_schema_to_openai_json ... ok [INFO] [stdout] test tools::schema::tests::test_validate_all_optional_empty_input ... ok [INFO] [stdout] test tools::schema::tests::test_tool_schema_validate_input_ok ... ok [INFO] [stdout] test tools::schema::tests::test_validate_correct_types ... ok [INFO] [stdout] test tools::schema::tests::test_validate_empty_schema_empty_input ... ok [INFO] [stdout] test tools::schema::tests::test_schema_object_builder ... ok [INFO] [stdout] test tools::schema::tests::test_schema_object_default ... ok [INFO] [stdout] test tools::schema::tests::test_validate_enum_invalid ... ok [INFO] [stdout] test tools::schema::tests::test_validate_enum_valid ... ok [INFO] [stdout] test tools::schema::tests::test_validate_max_length ... ok [INFO] [stdout] test tools::schema::tests::test_validate_maximum ... ok [INFO] [stdout] test tools::schema::tests::test_validate_min_length ... ok [INFO] [stdout] test tools::schema::tests::test_validate_minimum ... ok [INFO] [stdout] test tools::schema::tests::test_validate_missing_required_field ... ok [INFO] [stdout] test tools::schema::tests::test_validate_non_object_input ... ok [INFO] [stdout] test tools::schema::tests::test_validate_empty_schema_rejects_extra_fields ... ok [INFO] [stdout] test tools::schema::tests::test_validate_pattern_match ... ok [INFO] [stdout] test tools::schema::tests::test_validate_array_items ... ok [INFO] [stdout] test tools::schema::tests::test_validate_array_items_wrong_type ... ok [INFO] [stdout] test tools::schema::tests::test_validate_type_mismatch ... ok [INFO] [stdout] test tools::schema::tests::test_validate_range_ok ... ok [INFO] [stdout] test tools::schema::tests::test_validate_unknown_field_allowed ... ok [INFO] [stdout] test tools::schema::tests::test_validation_error_display ... ok [INFO] [stdout] test tools::schema::tests::test_validation_error_to_json ... ok [INFO] [stdout] test tools::schema_gen::tests::test_array_property_with_items ... ok [INFO] [stdout] test tools::schema::tests::test_validate_pattern_no_match ... ok [INFO] [stdout] test tools::schema_gen::tests::test_build_generates_valid_json_schema_structure ... ok [INFO] [stdout] test tools::schema_gen::tests::test_enum_property ... ok [INFO] [stdout] test tools::schema_gen::tests::test_build_schema_with_string_property ... ok [INFO] [stdout] test tools::schema_gen::tests::test_property_with_default_value ... ok [INFO] [stdout] test tools::schema_gen::tests::test_no_required_array_when_all_optional ... ok [INFO] [stdout] test tools::schema_gen::tests::test_build_schema_with_multiple_property_types ... ok [INFO] [stdout] test tools::schema_gen::tests::test_quick_tool_schema ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_args_schema ... ok [INFO] [stdout] test tools::schema_gen::tests::test_required_vs_optional_properties ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_async ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_from_function ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_no_func_errors ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_rejects_multiple_args ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_with_structured_single_arg ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_with_text_input ... ok [INFO] [stdout] test tools::schema::tests::test_validate_unknown_field_rejected ... ok [INFO] [stdout] test tools::schema_gen::tests::test_generated_schema_has_object_type_wrapper ... ok [INFO] [stdout] test tools::structured::tests::test_name_and_description ... ok [INFO] [stdout] test tools::structured::tests::test_return_direct ... ok [INFO] [stdout] test tools::structured::tests::test_missing_required_field ... ok [INFO] [stdout] test tools::simple::tests::test_simple_tool_builder_methods ... ok [INFO] [stdout] test tools::structured::tests::test_structured_tool_run ... ok [INFO] [stdout] test tools::structured::tests::test_text_json_input ... ok [INFO] [stdout] test tracers::event_stream::tests::test_assign_name_from_serialized ... ok [INFO] [stdout] test tracers::event_stream::tests::test_chat_model_stream_event ... ok [INFO] [stdout] test tracers::event_stream::tests::test_custom_event ... ok [INFO] [stdout] test tracers::event_stream::tests::test_chain_start_end_events ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_slow_operation_uses_fallback ... ok [INFO] [stdout] test runnables::timeout::tests::test_deadline_shared_across_operations ... ok [INFO] [stdout] test tracers::event_stream::tests::test_event_type_serialization ... ok [INFO] [stdout] test tracers::event_stream::tests::test_llm_new_token_stream_event ... ok [INFO] [stdout] test tracers::event_stream::tests::test_llm_start_end_events ... ok [INFO] [stdout] test runnables::timeout::tests::test_timeout_stream_slow_errors ... ok [INFO] [stdout] test tracers::event_stream::tests::test_root_event_filter_include_tags ... ok [INFO] [stdout] test tracers::event_stream::tests::test_root_event_filter_no_filters ... ok [INFO] [stdout] test tracers::event_stream::tests::test_parent_ids_chain ... ok [INFO] [stdout] test tracers::event_stream::tests::test_take_receiver_only_once ... ok [INFO] [stdout] test tracers::event_stream::tests::test_retriever_start_end_events ... ok [INFO] [stdout] test tracers::event_stream::tests::test_root_event_filter_exclude_names ... ok [INFO] [stdout] test tracers::event_stream::tests::test_root_event_filter_include_types ... ok [INFO] [stdout] test tracers::event_stream::tests::test_stream_event_serialization_roundtrip ... ok [INFO] [stdout] test tracers::event_stream::tests::test_tool_start_end_events ... ok [INFO] [stdout] test tracers::langsmith::tests::test_clear ... ok [INFO] [stdout] test tracers::langsmith::tests::test_batch_export ... ok [INFO] [stdout] test tracers::langsmith::tests::test_config_builder ... ok [INFO] [stdout] test tracers::langsmith::tests::test_config_defaults ... ok [INFO] [stdout] test tracers::langsmith::tests::test_default_tags_applied ... ok [INFO] [stdout] test tracers::langsmith::tests::test_chain_run_capture ... ok [INFO] [stdout] test tracers::langsmith::tests::test_exporter_single_run ... ok [INFO] [stdout] test tracers::langsmith::tests::test_exporter_batch ... ok [INFO] [stdout] test tracers::langsmith::tests::test_llm_run_end ... ok [INFO] [stdout] test tracers::langsmith::tests::test_json_export_format ... ok [INFO] [stdout] test tracers::langsmith::tests::test_llm_run_capture ... ok [INFO] [stdout] test tracers::langsmith::tests::test_run_filtering_by_type ... ok [INFO] [stdout] test tracers::langsmith::tests::test_parent_child_relationship ... ok [INFO] [stdout] test tracers::langsmith::tests::test_tool_run_capture ... ok [INFO] [stdout] test tracers::langsmith::tests::test_timing_capture ... ok [INFO] [stdout] test tracers::langsmith::tests::test_error_run_tracking ... ok [INFO] [stdout] test tracers::otel::tests::test_llm_start_end_creates_complete_span ... ok [INFO] [stdout] test tracers::otel::tests::test_clear_removes_completed_spans ... ok [INFO] [stdout] test tracers::otel::tests::test_llm_error_creates_error_span ... ok [INFO] [stdout] test tracing::tests::test_collector_all_traces ... ok [INFO] [stdout] test tracers::otel::tests::test_multiple_operations_create_multiple_spans ... ok [INFO] [stdout] test tracers::otel::tests::test_chain_start_end_creates_span ... ok [INFO] [stdout] test tracers::otel::tests::test_span_has_valid_trace_id_and_span_id ... ok [INFO] [stdout] test tracers::otel::tests::test_tool_start_end_creates_span_with_attributes ... ok [INFO] [stdout] test tracing::tests::test_collector_finish_span ... ok [INFO] [stdout] test tracing::tests::test_collector_default ... ok [INFO] [stdout] test tracing::tests::test_collector_new ... ok [INFO] [stdout] test tracing::tests::test_collector_clear ... ok [INFO] [stdout] test tracing::tests::test_collector_get_trace_missing ... ok [INFO] [stdout] test tracing::tests::test_collector_start_span ... ok [INFO] [stdout] test tracing::tests::test_collector_set_span_attribute ... ok [INFO] [stdout] test tracing::tests::test_collector_start_span_missing_trace ... ok [INFO] [stdout] test tracing::tests::test_collector_set_span_status ... ok [INFO] [stdout] test tracing::tests::test_collector_start_child_span_missing_trace ... ok [INFO] [stdout] test tracers::otel::tests::test_to_json_produces_valid_json ... ok [INFO] [stdout] test tracing::tests::test_deeply_nested_spans ... ok [INFO] [stdout] test tracing::tests::test_exporter_flamegraph_unfinished_span ... ok [INFO] [stdout] test tracing::tests::test_epoch_secs_to_utc_epoch ... ok [INFO] [stdout] test tracing::tests::test_collector_start_trace ... ok [INFO] [stdout] test tracing::tests::test_exporter_to_flamegraph_data ... ok [INFO] [stdout] test tracing::tests::test_epoch_secs_to_utc_known_date ... ok [INFO] [stdout] test tracing::tests::test_flame_entry_clone ... ok [INFO] [stdout] test tracing::tests::test_exporter_to_summary_nested ... ok [INFO] [stdout] test tracing::tests::test_multiple_traces ... ok [INFO] [stdout] test tracing::tests::test_exporter_to_json ... ok [INFO] [stdout] test tracing::tests::test_exporter_to_summary_basic ... ok [INFO] [stdout] test tracing::tests::test_parse_timestamp_invalid ... ok [INFO] [stdout] test tracing::tests::test_parse_timestamp_roundtrip ... ok [INFO] [stdout] test tracing::tests::test_parse_timestamp_with_millis ... ok [INFO] [stdout] test tracing::tests::test_span_add_event ... ok [INFO] [stdout] test tracing::tests::test_span_duration_ms_same_time ... ok [INFO] [stdout] test tracing::tests::test_span_duration_ms_unfinished ... ok [INFO] [stdout] test tracing::tests::test_span_duration_ms_with_known_timestamps ... ok [INFO] [stdout] test tracing::tests::test_span_event_new ... ok [INFO] [stdout] test tracing::tests::test_span_event_to_json ... ok [INFO] [stdout] test tracing::tests::test_span_event_with_attribute ... ok [INFO] [stdout] test tracing::tests::test_span_finish ... ok [INFO] [stdout] test tracing::tests::test_span_finish_preserves_error_status ... ok [INFO] [stdout] test tracing::tests::test_span_id_clone_eq ... ok [INFO] [stdout] test tracing::tests::test_span_id_default ... ok [INFO] [stdout] test tracing::tests::test_flame_entry_serialize ... ok [INFO] [stdout] test tracing::tests::test_collector_start_child_span ... ok [INFO] [stdout] test tracing::tests::test_span_id_display ... ok [INFO] [stdout] test tracing::tests::test_span_id_from_string ... ok [INFO] [stdout] test tracing::tests::test_span_id_hash ... ok [INFO] [stdout] test tracing::tests::test_full_workflow ... ok [INFO] [stdout] test tracing::tests::test_span_id_new_is_unique ... ok [INFO] [stdout] test tracers::event_stream::tests::test_error_events ... ok [INFO] [stdout] test tracing::tests::test_parse_known_timestamp ... ok [INFO] [stdout] test tracing::tests::test_span_new ... ok [INFO] [stdout] test tracing::tests::test_span_set_attribute ... ok [INFO] [stdout] test tracing::tests::test_span_status_display_unset ... ok [INFO] [stdout] test tracing::tests::test_span_status_display_error ... ok [INFO] [stdout] test tracing::tests::test_span_to_json_parent ... ok [INFO] [stdout] test tracing::tests::test_span_to_json_no_parent ... ok [INFO] [stdout] test tracing::tests::test_span_with_parent ... ok [INFO] [stdout] test tracing::tests::test_span_status_eq ... ok [INFO] [stdout] test tracing::tests::test_trace_add_span ... ok [INFO] [stdout] test tracing::tests::test_span_to_json ... ok [INFO] [stdout] test tracing::tests::test_span_status_display_ok ... ok [INFO] [stdout] test tracing::tests::test_trace_get_span ... ok [INFO] [stdout] test tracing::tests::test_trace_get_span_not_found ... ok [INFO] [stdout] test tracing::tests::test_trace_id_default ... ok [INFO] [stdout] test tracing::tests::test_trace_id_display ... ok [INFO] [stdout] test tracing::tests::test_trace_id_from_string ... ok [INFO] [stdout] test tracing::tests::test_trace_id_new_is_unique ... ok [INFO] [stdout] test tracing::tests::test_trace_children_of_empty ... ok [INFO] [stdout] test tracing::tests::test_trace_id_clone_eq ... ok [INFO] [stdout] test tracing::tests::test_trace_id_hash ... ok [INFO] [stdout] test tracing::tests::test_trace_default ... ok [INFO] [stdout] test tracing::tests::test_trace_id_serialize ... ok [INFO] [stdout] test tracing::tests::test_trace_new ... ok [INFO] [stdout] test tracing::tests::test_trace_total_duration_ms ... ok [INFO] [stdout] test tracing::tests::test_trace_total_duration_no_finished ... ok [INFO] [stdout] test types::coercion::tests::test_as_bool ... ok [INFO] [stdout] test types::coercion::tests::test_as_f64 ... ok [INFO] [stdout] test types::coercion::tests::test_as_list ... ok [INFO] [stdout] test types::coercion::tests::test_as_map ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_method_any ... ok [INFO] [stdout] test types::coercion::tests::test_as_str ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_method_to_string ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_bool_from_string ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_bool_from_null ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_float_from_int ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_bool_parse_error ... ok [INFO] [stdout] test types::coercion::tests::test_as_i64 ... ok [INFO] [stdout] test tracing::tests::test_trace_root_span ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_float_incompatible ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_float_from_string ... ok [INFO] [stdout] test tracing::tests::test_trace_to_json ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_integer_from_bool ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_integer_from_float ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_list_incompatible ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_map_ok ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_string_from_bool ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_string_from_int ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_string_from_list_strict ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_string_from_null ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_integer_from_bad_string ... ok [INFO] [stdout] test types::coercion::tests::test_coercer_default ... ok [INFO] [stdout] test types::coercion::tests::test_coercion_error_display ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_integer_from_float_strict ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_integer_from_string ... ok [INFO] [stdout] test types::coercion::tests::test_coerce_to_string_from_list_lenient ... ok [INFO] [stdout] test types::coercion::tests::test_coercion_error_is_std_error ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_max_value ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_min_value ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_one_of ... ok [INFO] [stdout] test types::coercion::tests::test_from_bool ... ok [INFO] [stdout] test types::coercion::tests::test_from_f64 ... ok [INFO] [stdout] test types::coercion::tests::test_from_i64 ... ok [INFO] [stdout] test types::coercion::tests::test_from_json ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_display ... ok [INFO] [stdout] test types::coercion::tests::test_from_json_object ... ok [INFO] [stdout] test types::coercion::tests::test_from_json_array ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_min_length ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_max_length ... ok [INFO] [stdout] test types::coercion::tests::test_from_string ... ok [INFO] [stdout] test types::coercion::tests::test_from_value ... ok [INFO] [stdout] test types::coercion::tests::test_is_null ... ok [INFO] [stdout] test types::coercion::tests::test_from_vec ... ok [INFO] [stdout] test types::coercion::tests::test_path_display ... ok [INFO] [stdout] test types::coercion::tests::test_path_get_missing ... ok [INFO] [stdout] test types::coercion::tests::test_path_get_simple ... ok [INFO] [stdout] test types::coercion::tests::test_path_get_list_index ... ok [INFO] [stdout] test types::coercion::tests::test_from_str_ref ... ok [INFO] [stdout] test types::coercion::tests::test_path_segments ... ok [INFO] [stdout] test types::coercion::tests::test_is_truthy ... ok [INFO] [stdout] test types::coercion::tests::test_path_set_simple ... ok [INFO] [stdout] test types::coercion::tests::test_path_get_nested ... ok [INFO] [stdout] test types::coercion::tests::test_path_set_list_index ... ok [INFO] [stdout] test types::coercion::tests::test_path_set_returns_false_on_missing_parent ... ok [INFO] [stdout] test types::coercion::tests::test_registry_new ... ok [INFO] [stdout] test types::coercion::tests::test_registry_register_and_len ... ok [INFO] [stdout] test types::coercion::tests::test_registry_validate_all_ok ... ok [INFO] [stdout] test types::coercion::tests::test_schema_validate_ok ... ok [INFO] [stdout] test types::coercion::tests::test_registry_registered_fields ... ok [INFO] [stdout] test types::coercion::tests::test_registry_validate_all_errors ... ok [INFO] [stdout] test types::coercion::tests::test_schema_validate_optional_null ... ok [INFO] [stdout] test types::coercion::tests::test_schema_validate_wrong_type ... ok [INFO] [stdout] test types::coercion::tests::test_schema_validate_required_null ... ok [INFO] [stdout] test types::coercion::tests::test_schema_with_constraint ... ok [INFO] [stdout] test types::coercion::tests::test_to_json_bytes ... ok [INFO] [stdout] test types::coercion::tests::test_to_json_list ... ok [INFO] [stdout] test types::coercion::tests::test_to_json_map ... ok [INFO] [stdout] test types::coercion::tests::test_to_json_primitives ... ok [INFO] [stdout] test types::coercion::tests::test_type_name ... ok [INFO] [stdout] test types::coercion::tests::test_value_type_display ... ok [INFO] [stdout] test types::coercion::tests::test_value_type_matches ... ok [INFO] [stdout] test utils::env::tests::test_env_var_is_set ... ok [INFO] [stdout] test utils::env::tests::test_get_runtime_environment ... ok [INFO] [stdout] test utils::function_calling::tests::test_build_parameters_schema ... ok [INFO] [stdout] test types::coercion::tests::test_constraint_pattern ... ok [INFO] [stdout] test utils::function_calling::tests::test_convert_json_schema_to_openai_function ... ok [INFO] [stdout] test utils::function_calling::tests::test_convert_to_json_schema ... ok [INFO] [stdout] test utils::function_calling::tests::test_convert_to_openai_tool ... ok [INFO] [stdout] test utils::function_calling::tests::test_set_additional_properties_false ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_all_algorithms ... ok [INFO] [stdout] test utils::function_calling::tests::test_tool_example_to_messages ... ok [INFO] [stdout] test utils::function_calling::tests::test_tool_example_to_messages_no_output_no_response ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_hash_bytes ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_default ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_combined_normalization ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_hash_bytes_invalid_utf8 ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_single_algorithm ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_ngram_size ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_to_lowercase ... ok [INFO] [stdout] test utils::hashing::tests::test_builder_normalize_whitespace ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_deduplicate_list ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_default ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_empty ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_clear ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_insert_new ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_exact_only ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_is_duplicate ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_insert_duplicate ... ok [INFO] [stdout] test utils::hashing::tests::test_dedup_insert_if_unique_exact_dup ... ok [INFO] [stdout] test utils::hashing::tests::test_djb2_empty ... ok [INFO] [stdout] test utils::hashing::tests::test_djb2_different_inputs ... ok [INFO] [stdout] test utils::hashing::tests::test_djb2_deterministic ... ok [INFO] [stdout] test utils::hashing::tests::test_djb2_str ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_display ... ok [INFO] [stdout] test utils::hashing::tests::test_djb2_vs_fnv1a ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_combined_hash ... ok [INFO] [stdout] test types::coercion::tests::test_registry_validate_optional_field_missing ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_exact_match ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_from_invalid_utf8 ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_no_exact_match ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_from_bytes ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_near_duplicate ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_serde_roundtrip ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_new ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_simhash_distance ... ok [INFO] [stdout] test utils::hashing::tests::test_fingerprint_with_ngram_size ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_32_different_from_64 ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_32_deterministic ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_deterministic ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_empty ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_known_value ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_32_empty ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_different_inputs ... ok [INFO] [stdout] test utils::hashing::tests::test_fnv1a_str ... ok [INFO] [stdout] test utils::hashing::tests::test_hamming_distance_all_different ... ok [INFO] [stdout] test utils::hashing::tests::test_hamming_distance_one_bit ... ok [INFO] [stdout] test utils::hashing::tests::test_hamming_distance_same ... ok [INFO] [stdout] test utils::hashing::tests::test_hamming_distance_symmetric ... ok [INFO] [stdout] test utils::hashing::tests::test_hash_result_primary_hash_fallback ... ok [INFO] [stdout] test utils::hashing::tests::test_hash_result_primary_hash_fnv1a ... ok [INFO] [stdout] test utils::hashing::tests::test_hash_result_serde ... ok [INFO] [stdout] test utils::hashing::tests::test_is_near_duplicate_false ... ok [INFO] [stdout] test utils::hashing::tests::test_is_near_duplicate_true ... ok [INFO] [stdout] test utils::hashing::tests::test_hash_result_primary_hash_none ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_default ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_deterministic ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_different_texts ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_ngram_size_variation ... ok [INFO] [stdout] test types::coercion::tests::test_roundtrip_json ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_similar_texts ... ok [INFO] [stdout] test utils::image::tests::test_data_uri_from_base64_custom_mime ... ok [INFO] [stdout] test utils::image::tests::test_data_uri_jpeg ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_single_word ... ok [INFO] [stdout] test utils::hashing::tests::test_simhash_empty ... ok [INFO] [stdout] test utils::image::tests::test_data_uri_png ... ok [INFO] [stdout] test utils::image::tests::test_detect_bmp ... ok [INFO] [stdout] test utils::image::tests::test_data_uri_unknown_format ... ok [INFO] [stdout] test utils::image::tests::test_detect_gif87a ... ok [INFO] [stdout] test utils::image::tests::test_detect_gif89a ... ok [INFO] [stdout] test utils::image::tests::test_detect_jpeg ... ok [INFO] [stdout] test utils::image::tests::test_detect_png ... ok [INFO] [stdout] test utils::image::tests::test_detect_svg_direct ... ok [INFO] [stdout] test utils::image::tests::test_detect_svg_with_leading_whitespace ... ok [INFO] [stdout] test utils::image::tests::test_detect_tiff_big_endian ... ok [INFO] [stdout] test utils::image::tests::test_detect_ico ... ok [INFO] [stdout] test utils::image::tests::test_detect_tiff_little_endian ... ok [INFO] [stdout] test utils::image::tests::test_detect_svg_xml_header ... ok [INFO] [stdout] test utils::image::tests::test_detect_too_short ... ok [INFO] [stdout] test utils::image::tests::test_detect_webp ... ok [INFO] [stdout] test utils::image::tests::test_encode_image_binary ... ok [INFO] [stdout] test utils::image::tests::test_encode_image_hello ... ok [INFO] [stdout] test utils::image::tests::test_encode_image_empty ... ok [INFO] [stdout] test utils::image::tests::test_detect_unknown ... ok [INFO] [stdout] test utils::image::tests::test_mime_type_as_str ... ok [INFO] [stdout] test utils::input::tests::test_get_color_mapping ... ok [INFO] [stdout] test utils::image::tests::test_mime_type_display ... ok [INFO] [stdout] test utils::input::tests::test_get_color_mapping_cycles ... ok [INFO] [stdout] test utils::input::tests::test_get_color_mapping_all_excluded ... ok [INFO] [stdout] test utils::input::tests::test_get_color_mapping_with_exclusions ... ok [INFO] [stdout] test utils::input::tests::test_get_bolded_text ... ok [INFO] [stdout] test utils::input::tests::test_print_text_no_color ... ok [INFO] [stdout] test utils::input::tests::test_get_colored_text ... ok [INFO] [stdout] test utils::input::tests::test_print_text_with_end ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_created_last_wins ... ok [INFO] [stdout] test utils::input::tests::test_print_text_with_color ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_basic ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_empty_left ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_id_identity ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_empty_right ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_index_last_wins ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_integer_sum ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_list_merge ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_multiple_others ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_nested_objects ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_equal_scalars_no_change ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_new_key ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_null_left_value ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_str_index_lc_prefix_skipped ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_string_concatenation ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_null_nested_overwritten ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_null_right_value_skipped ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_timestamp_last_wins ... ok [INFO] [stdout] test utils::merge::tests::test_merge_dicts_type_mismatch_error ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_basic_append ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_both_none ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_with_empty_id ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_with_matching_ids ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_dedup ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_with_null_id ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_different_appended ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_index_with_conflicting_ids ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_lc_index ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_multiple_others ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_none_left ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_non_standard_type_handling ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_none_right ... ok [INFO] [stdout] test utils::merge::tests::test_merge_lists_without_index_appended ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_lists ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_equal_values ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_dicts ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_null_left ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_null_right ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_strings ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_unequal_scalars ... ok [INFO] [stdout] test utils::merge::tests::test_merge_obj_type_mismatch ... ok [INFO] [stdout] test utils::retry_policy::tests::test_always_retry ... ok [INFO] [stdout] test utils::retry_policy::tests::test_budget_acquire ... ok [INFO] [stdout] test utils::retry_policy::tests::test_backoff_strategy_serialize_deserialize ... ok [INFO] [stdout] test utils::retry_policy::tests::test_backoff_strategy_default_is_exponential ... ok [INFO] [stdout] test utils::retry_policy::tests::test_budget_basic ... ok [INFO] [stdout] test utils::retry_policy::tests::test_budget_reset ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_backoff_multiplier ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_custom_delays ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_chaining ... ok [INFO] [stdout] test utils::retry_policy::tests::test_budget_zero ... ok [INFO] [stdout] test utils::retry_policy::tests::test_budget_shared ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_default_trait ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_defaults ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_fixed_backoff ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_initial_delay ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_initial_delay_ms ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_exponential_with_jitter ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_exponential_backoff ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_max_delay ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_linear_backoff ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_max_retries ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_with_budget ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_consecutive_failures ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_half_open_after_cooldown ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_manual_reset ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_resets_on_success ... ok [INFO] [stdout] test utils::retry_policy::tests::test_builder_max_delay_secs ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_trips_after_threshold ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_breaker_starts_closed ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_state_display ... ok [INFO] [stdout] test utils::retry_policy::tests::test_contains_retry_case_insensitive ... ok [INFO] [stdout] test utils::retry_policy::tests::test_contains_retry_matching ... ok [INFO] [stdout] test utils::retry_policy::tests::test_contains_retry_empty_patterns ... ok [INFO] [stdout] test utils::retry_policy::tests::test_custom_delays ... ok [INFO] [stdout] test utils::retry_policy::tests::test_custom_delays_empty_falls_back ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_circuit_open ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_circuit_trips_during_retries ... ok [INFO] [stdout] test utils::retry_policy::tests::test_circuit_state_serialize ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_exhausted ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_condition_stops_retry ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_budget_exhausted ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_success_after_retries ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_success_first_try ... ok [INFO] [stdout] test utils::retry_policy::tests::test_exponential_delay ... ok [INFO] [stdout] test utils::retry_policy::tests::test_exponential_delay_respects_max ... ok [INFO] [stdout] test utils::retry_policy::tests::test_exponential_with_jitter_is_bounded ... ok [INFO] [stdout] test utils::retry_policy::tests::test_fixed_delay ... ok [INFO] [stdout] test utils::retry_policy::tests::test_linear_delay ... ok [INFO] [stdout] test utils::retry_policy::tests::test_linear_delay_respects_max ... ok [INFO] [stdout] test utils::retry_policy::tests::test_outcome_eq ... ok [INFO] [stdout] test utils::retry_policy::tests::test_never_retry ... ok [INFO] [stdout] test utils::retry_policy::tests::test_outcome_is_success ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_clone ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_debug ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_default ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_delay_for_attempt ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_should_retry ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_should_retry_respects_condition ... ok [INFO] [stdout] test utils::retry_policy::tests::test_policy_should_retry_with_budget ... ok [INFO] [stdout] test utils::retry_policy::tests::test_pseudo_random_fraction_bounded ... ok [INFO] [stdout] test utils::retry_policy::tests::test_retry_context_elapsed ... ok [INFO] [stdout] test utils::retry_policy::tests::test_retry_context_default ... ok [INFO] [stdout] test utils::retry_policy::tests::test_retry_context_new ... ok [INFO] [stdout] test utils::retry_policy::tests::test_retry_context_record_success ... ok [INFO] [stdout] test utils::retry_policy::tests::test_retry_context_record_error ... ok [INFO] [stdout] test utils::token_counter::tests::budget_allocate_and_remaining ... ok [INFO] [stdout] test utils::token_counter::tests::budget_cumulative_allocation ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_with_contains_condition ... ok [INFO] [stdout] test utils::token_counter::tests::budget_sections ... ok [INFO] [stdout] test utils::token_counter::tests::budget_unknown_section ... ok [INFO] [stdout] test utils::token_counter::tests::budget_to_json ... ok [INFO] [stdout] test utils::token_counter::tests::budget_total_remaining ... ok [INFO] [stdout] test utils::token_counter::tests::char_counter_default_ratio ... ok [INFO] [stdout] test utils::token_counter::tests::budget_use_tokens ... ok [INFO] [stdout] test utils::token_counter::tests::char_counter_custom_ratio ... ok [INFO] [stdout] test utils::token_counter::tests::char_counter_empty ... ok [INFO] [stdout] test utils::token_counter::tests::char_counter_long_text ... ok [INFO] [stdout] test utils::token_counter::tests::context_item_to_json ... ok [INFO] [stdout] test utils::token_counter::tests::char_counter_name ... ok [INFO] [stdout] test utils::token_counter::tests::context_item_to_json_no_label ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_add_exceeds_budget ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_add_and_counts ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_clear ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_add_labeled ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_trim_preserves_critical ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_trim_removes_lowest_priority ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_content_returns_items ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_utilization_empty_budget ... ok [INFO] [stdout] test utils::token_counter::tests::count_messages_empty_content ... ok [INFO] [stdout] test utils::token_counter::tests::context_window_utilization ... ok [INFO] [stdout] test utils::token_counter::tests::count_messages_empty_slice ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_empty ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_claude ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_gpt4 ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_gemini ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_unknown_default ... ok [INFO] [stdout] test utils::token_counter::tests::priority_weights ... ok [INFO] [stdout] test utils::token_counter::tests::simple_counter_empty ... ok [INFO] [stdout] test utils::token_counter::tests::model_counter_name ... ok [INFO] [stdout] test utils::token_counter::tests::simple_counter_multiple_words ... ok [INFO] [stdout] test utils::token_counter::tests::priority_ordering ... ok [INFO] [stdout] test utils::token_counter::tests::simple_counter_name ... ok [INFO] [stdout] test utils::token_counter::tests::simple_counter_single_word ... ok [INFO] [stdout] test utils::token_counter::tests::simple_counter_messages ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_default ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_avg_per_request ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_by_model ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_empty ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_record_and_total ... ok [INFO] [stdout] test utils::token_counter::tests::tracker_to_json ... ok [INFO] [stdout] test utils::tokens::tests::test_count_message_tokens_with_tool_calls ... ok [INFO] [stdout] test utils::tokens::tests::test_count_message_tokens_basic ... ok [INFO] [stdout] test utils::tokens::tests::test_estimate_token_count_known_text ... ok [INFO] [stdout] test utils::tokens::tests::test_get_model_context_window_unknown ... ok [INFO] [stdout] test utils::tokens::tests::test_estimate_token_count_empty ... ok [INFO] [stdout] test utils::tokens::tests::test_get_model_context_window_known ... ok [INFO] [stdout] test utils::tokens::tests::test_trim_messages_all_fit ... ok [INFO] [stdout] test utils::tokens::tests::test_trim_messages_keeps_system ... ok [INFO] [stdout] test utils::tokens::tests::test_trim_messages_removes_oldest_first ... ok [INFO] [stdout] test utils::uuid::tests::test_uuid7_from_nanos ... ok [INFO] [stdout] test utils::uuid::tests::test_uuid7_is_v7 ... ok [INFO] [stdout] test utils::uuid::tests::test_uuid4_is_v4 ... ok [INFO] [stdout] test utils::uuid::tests::test_uuid4_uniqueness ... ok [INFO] [stdout] test utils::uuid::tests::test_uuid7_monotonic ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_cosine_similarity ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_cosine_similarity_orthogonal ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_cosine_similarity_identical ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_add_documents ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_delete_documents ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_from_texts ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_similarity_search ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_similarity_search_top_k ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_similarity_search_by_text ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_vector_store_retriever ... ok [INFO] [stdout] test vectorstores::in_memory::tests::test_similarity_search_with_score_values ... ok [INFO] [stdout] test vectorstores::utils::tests::test_cosine_similarity_identical_vectors ... ok [INFO] [stdout] test vectorstores::utils::tests::test_cosine_similarity_opposite_vectors ... ok [INFO] [stdout] test vectorstores::utils::tests::test_cosine_similarity_zero_vector ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_dimension_mismatch ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_empty_y ... ok [INFO] [stdout] test vectorstores::utils::tests::test_cosine_similarity_orthogonal_vectors ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_identity ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_single_row ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_diversity ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_empty_x ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_k_greater_than_embeddings ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_k_zero ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_empty_embeddings ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_returns_unique_indices ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_selects_most_similar_first ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_pure_relevance ... ok [INFO] [stdout] test vectorstores::utils::tests::test_mmr_single_embedding ... ok [INFO] [stdout] test tracing::tests::test_trace_children_of ... ok [INFO] [stdout] test types::coercion::tests::test_path_set_nested ... ok [INFO] [stdout] test utils::image::tests::test_data_uri_from_base64 ... ok [INFO] [stdout] test utils::retry_policy::tests::test_execute_zero_retries ... ok [INFO] [stdout] test vectorstores::utils::tests::test_matrix_non_square ... ok [INFO] [stdout] [INFO] [stderr] Running tests/callbacks_expanded_tests.rs (/opt/rustwide/target/debug/deps/callbacks_expanded_tests-9506372815b323a4) [INFO] [stdout] test result: ok. 1952 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test test_callback_handler_default_filters ... ok [INFO] [stdout] test test_callback_manager_remove_handler ... ok [INFO] [stdout] test test_callback_manager_new ... ok [INFO] [stdout] test test_callback_manager_add_handler_inheritable ... ok [INFO] [stdout] test test_callback_manager_default ... ok [INFO] [stdout] test test_callback_manager_with_initial_handlers ... ok [INFO] [stdout] test test_callback_manager_with_parent_run_id ... ok [INFO] [stdout] test test_callback_manager_tags ... ok [INFO] [stdout] test test_custom_ignore_flags ... ok [INFO] [stdout] test test_callback_manager_dispatch_respects_filters ... ok [INFO] [stdout] test test_run_manager_for_chain ... ok [INFO] [stdout] test test_callback_manager_get_child ... ok [INFO] [stdout] test test_callback_manager_metadata ... ok [INFO] [stdout] test test_run_manager_for_chain_dispatches ... ok [INFO] [stdout] test test_run_manager_for_llm ... ok [INFO] [stdout] test test_run_manager_for_retriever ... ok [INFO] [stdout] test test_callback_manager_add_handler_not_inheritable ... ok [INFO] [stdout] test test_streaming_handler_create ... ok [INFO] [stdout] test test_usage_handler_default ... ok [INFO] [stdout] test test_run_manager_for_tool ... ok [INFO] [stdout] test test_stdout_handler_create ... ok [INFO] [stdout] test test_usage_handler_get_summary ... ok [INFO] [stdout] test test_usage_handler_reset ... ok [INFO] [stdout] test test_usage_handler_legacy_token_usage ... ok [INFO] [stdout] test test_usage_handler_new ... ok [INFO] [stdout] test test_usage_handler_unknown_model_when_name_missing ... ok [INFO] [stdout] test test_usage_handler_structured_usage_metadata ... ok [INFO] [stdout] test test_usage_handler_no_llm_output ... ok [INFO] [stdout] test test_usage_handler_via_callback_manager ... ok [INFO] [stdout] test test_usage_handler_multiple_calls_accumulate ... ok [INFO] [stdout] test test_usage_handler_multiple_models ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stderr] Running tests/callbacks_tests.rs (/opt/rustwide/target/debug/deps/callbacks_tests-06cc6634411d8a8b) [INFO] [stderr] Running tests/chunks_tests.rs (/opt/rustwide/target/debug/deps/chunks_tests-a84d8cce49d35f50) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test callback_manager_dispatches_llm_events ... ok [INFO] [stdout] test callback_manager_dispatches_to_multiple_handlers ... ok [INFO] [stdout] test callback_manager_remove_handler ... ok [INFO] [stdout] test callback_manager_custom_event ... ok [INFO] [stdout] test callback_manager_agent_events ... ok [INFO] [stdout] test callback_manager_retry_event ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test ai_message_chunk_add_content ... ok [INFO] [stdout] test function_message_chunk_add_same_name ... ok [INFO] [stdout] test ai_message_chunk_add_with_usage_metadata ... ok [INFO] [stdout] test ai_message_chunk_add_with_tool_call_chunks ... ok [INFO] [stdout] test human_message_chunk_add ... ok [INFO] [stdout] test remove_message_creation ... ok [INFO] [stdout] test system_message_chunk_add ... ok [INFO] [stdout] test tool_message_chunk_add_same_id ... ok [INFO] [stdout] test remove_message_serde ... ok [INFO] [stdout] test chat_message_chunk_add_same_role ... ok [INFO] [stdout] test ai_message_chunk_add_one_usage_none ... ok [INFO] [stderr] Running tests/documents_tests.rs (/opt/rustwide/target/debug/deps/documents_tests-0edcb26e8aac57d0) [INFO] [stdout] test chat_message_chunk_add_different_roles - should panic ... ok [INFO] [stdout] test function_message_chunk_add_different_names - should panic ... ok [INFO] [stdout] test tool_message_chunk_add_different_ids - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 24 tests [INFO] [stdout] test blob_from_bytes ... ok [INFO] [stdout] test blob_from_path ... ok [INFO] [stdout] test blob_from_string ... ok [INFO] [stdout] test blob_data_enum ... ok [INFO] [stdout] test blob_with_mimetype ... ok [INFO] [stdout] test blob_no_data_no_path_errors ... ok [INFO] [stdout] test document_compressor_empty_input ... ok [INFO] [stdout] test document_display_with_metadata ... ok [INFO] [stdout] test document_compressor_no_match ... ok [INFO] [stdout] test document_doc_type_default_is_none ... ok [INFO] [stdout] test document_has_doc_type_field ... ok [INFO] [stdout] test document_new ... ok [INFO] [stdout] test document_doc_type_serde_roundtrip ... ok [INFO] [stdout] test document_display_no_metadata ... ok [INFO] [stdout] test document_doc_type_skipped_when_none ... ok [INFO] [stdout] test document_transformer_empty_input ... ok [INFO] [stdout] test document_transformer_preserves_metadata ... ok [INFO] [stdout] test document_serde_roundtrip ... ok [INFO] [stdout] test document_with_id_and_metadata ... ok [INFO] [stdout] test document_transformer_uppercases ... ok [INFO] [stdout] test scoring_compressor_with_threshold ... ok [INFO] [stdout] test filter_empty_transformer ... ok [INFO] [stdout] test blob_source_from_metadata ... ok [INFO] [stdout] test document_compressor_filters_by_query ... ok [INFO] [stderr] Running tests/error_tests.rs (/opt/rustwide/target/debug/deps/error_tests-c57724c6086db031) [INFO] [stdout] [INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/indexing_tests.rs (/opt/rustwide/target/debug/deps/indexing_tests-9d0bfff6d6ed65ce) [INFO] [stdout] running 9 tests [INFO] [stdout] test error_code_as_str ... ok [INFO] [stdout] test other_error_display ... ok [INFO] [stdout] test context_overflow_display ... ok [INFO] [stdout] test error_code_equality ... ok [INFO] [stdout] test result_type_alias_works ... ok [INFO] [stdout] test output_parser_error_display ... ok [INFO] [stdout] test tool_exception_display ... ok [INFO] [stdout] test tool_exception_matches ... ok [INFO] [stdout] test serde_json_error_converts ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test in_memory_doc_index_default ... ok [INFO] [stdout] test in_memory_doc_index_get_missing_key ... ok [INFO] [stdout] test in_memory_doc_index_is_empty ... ok [INFO] [stdout] test in_memory_doc_index_search ... ok [INFO] [stdout] test in_memory_doc_index_delete ... ok [INFO] [stdout] test in_memory_doc_index_get ... ok [INFO] [stdout] test in_memory_doc_index_upsert_overwrites ... ok [INFO] [stdout] test in_memory_doc_index_search_no_match ... ok [INFO] [stdout] test in_memory_doc_index_upsert_with_id ... ok [INFO] [stdout] test record_manager_list_keys_no_group_id_excluded ... ok [INFO] [stdout] test record_manager_list_keys_sorted ... ok [INFO] [stdout] test record_manager_delete_nonexistent_key ... ok [INFO] [stdout] test in_memory_doc_index_upsert_without_id ... ok [INFO] [stdout] test record_manager_update_and_list_with_time_filters ... ok [INFO] [stdout] test record_manager_update_overwrites ... ok [INFO] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-58f14318f58573e4) [INFO] [stdout] test in_memory_doc_index_delete_missing_key ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test chat_generation_result ... ok [INFO] [stdout] test agent_workflow ... ok [INFO] [stdout] test callback_manager_llm_simulation ... ok [INFO] [stdout] test document_compressor_rag_workflow ... ok [INFO] [stdout] test conversation_management_workflow ... ok [INFO] [stdout] test end_to_end_llm_with_tools ... ok [INFO] [stdout] test error_types_comprehensive ... ok [INFO] [stdout] test merge_response_metadata ... ok [INFO] [stdout] test streaming_chat_generation_workflow ... ok [INFO] [stdout] test streaming_chunk_concatenation_workflow ... ok [INFO] [stdout] test document_store_workflow ... ok [INFO] [stdout] test llm_result_multi_prompt_flatten ... ok [INFO] [stdout] test usage_metadata_accumulation ... ok [INFO] [stdout] test multimodal_content ... ok [INFO] [stdout] test unique_ids ... 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] [stderr] Running tests/language_models_tests.rs (/opt/rustwide/target/debug/deps/language_models_tests-3bdea8d3ba922efc) [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test test_base_llm_get_num_tokens ... ok [INFO] [stdout] test test_base_llm_type ... ok [INFO] [stdout] test test_chat_model_bind_tools_not_implemented ... ok [INFO] [stdout] test test_base_llm_identifying_params ... ok [INFO] [stdout] test test_chat_model_profile_defaults ... ok [INFO] [stdout] test test_chat_model_num_tokens_from_messages ... ok [INFO] [stdout] test test_base_llm_predict ... ok [INFO] [stdout] test test_chat_model_invoke_messages ... ok [INFO] [stdout] test test_chat_model_generate_batch ... ok [INFO] [stdout] test test_base_llm_stream_not_implemented ... ok [INFO] [stdout] test test_chat_model_generate ... ok [INFO] [stdout] test test_chat_model_stream_not_implemented ... ok [INFO] [stdout] test test_base_llm_generate ... ok [INFO] [stdout] test test_chat_model_type ... ok [INFO] [stdout] test test_extract_prompt_number ... ok [INFO] [stdout] test test_extract_prompt_object ... ok [INFO] [stdout] test test_extract_prompt_string ... ok [INFO] [stdout] test test_fake_list_chat_model_cycles ... ok [INFO] [stdout] test test_chat_model_runnable_string_input ... ok [INFO] [stdout] test test_chat_model_runnable_messages_input ... ok [INFO] [stdout] test test_fake_list_chat_model_stream ... ok [INFO] [stdout] test test_fake_list_llm_cycles ... ok [INFO] [stdout] test test_fake_list_llm_predict ... ok [INFO] [stdout] test test_fake_messages_list_chat_model ... ok [INFO] [stdout] test test_llm_runnable_object_input ... ok [INFO] [stdout] test test_llm_runnable_string_input ... ok [INFO] [stdout] test test_model_profile_default ... ok [INFO] [stdout] test test_model_profile_deserialization ... ok [INFO] [stdout] test test_model_profile_registry ... ok [INFO] [stdout] test test_model_profile_serialization ... ok [INFO] [stdout] test test_parrot_echoes_last_message ... ok [INFO] [stdout] test test_parrot_empty_messages_error ... ok [INFO] [stdout] test test_model_profile_custom ... ok [INFO] [stdout] test test_streaming_mode_variants ... ok [INFO] [stdout] test test_tool_choice_variants ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/lcel_integration_tests.rs (/opt/rustwide/target/debug/deps/lcel_integration_tests-404d0b1dac58f5ae) [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test test_chain_macro ... ok [INFO] [stdout] test test_branch_default_fallthrough ... ok [INFO] [stdout] test test_complex_multi_step_chain ... ok [INFO] [stdout] test test_chain_macro_single_step ... ok [INFO] [stdout] test test_json_output_parser_in_chain ... ok [INFO] [stdout] test test_batch_through_pipe ... ok [INFO] [stdout] test test_json_output_parser_with_markdown_fences ... ok [INFO] [stdout] test test_parallel_in_pipe_chain ... ok [INFO] [stdout] test test_assign_and_pick ... ok [INFO] [stdout] test test_branch_in_pipe_chain ... ok [INFO] [stdout] test test_passthrough_assign_realistic ... ok [INFO] [stdout] test test_prompt_template_as_runnable ... ok [INFO] [stdout] test test_pick_single_key ... ok [INFO] [stdout] test test_prompt_model_parser_chain ... ok [INFO] [stdout] test test_pipe_three_steps ... ok [INFO] [stdout] test test_chat_prompt_template_as_runnable ... ok [INFO] [stdout] test test_pipe_with_fallbacks ... ok [INFO] [stdout] test test_runnable_branch_first_condition ... ok [INFO] [stdout] test test_simple_pipe_chain ... ok [INFO] [stdout] test test_runnable_parallel ... ok [INFO] [stdout] test test_str_output_parser_in_chain ... ok [INFO] [stdout] test test_pipe_with_retry ... ok [INFO] [stdout] test test_retry_and_fallbacks_combined ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stderr] Running tests/message_utils_tests.rs (/opt/rustwide/target/debug/deps/message_utils_tests-89505bde68099073) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 51 tests [INFO] [stdout] test convert_to_messages_empty_input ... ok [INFO] [stdout] test convert_to_messages_developer_alias ... ok [INFO] [stdout] test convert_to_messages_basic ... ok [INFO] [stdout] test convert_to_messages_flex_with_strings ... ok [INFO] [stdout] test convert_to_messages_flex_with_message ... ok [INFO] [stdout] test convert_to_messages_flex_mixed ... ok [INFO] [stdout] test convert_to_messages_aliases ... ok [INFO] [stdout] test convert_to_messages_flex_with_dict ... ok [INFO] [stdout] test convert_to_messages_flex_with_tuple ... ok [INFO] [stdout] test convert_to_messages_tool_and_function_roles ... ok [INFO] [stdout] test convert_to_messages_unknown_role ... ok [INFO] [stdout] test filter_messages_by_type ... ok [INFO] [stdout] test filter_messages_empty_input ... ok [INFO] [stdout] test filter_messages_exclude_names ... ok [INFO] [stdout] test filter_messages_exclude_tool_calls ... ok [INFO] [stdout] test filter_messages_exclude_type ... ok [INFO] [stdout] test filter_messages_include_and_exclude ... ok [INFO] [stdout] test filter_messages_include_ids ... ok [INFO] [stdout] test filter_messages_include_names ... ok [INFO] [stdout] test get_buffer_string_basic ... ok [INFO] [stdout] test get_buffer_string_chat_message ... ok [INFO] [stdout] test get_buffer_string_custom_prefixes ... ok [INFO] [stdout] test get_buffer_string_full_custom_separator ... ok [INFO] [stdout] test get_buffer_string_remove_message_skipped ... ok [INFO] [stdout] test get_buffer_string_system_and_tool ... ok [INFO] [stdout] test merge_message_runs_ai_consecutive ... ok [INFO] [stdout] test merge_message_runs_basic ... ok [INFO] [stdout] test merge_message_runs_custom_separator ... ok [INFO] [stdout] test merge_message_runs_empty ... ok [INFO] [stdout] test merge_message_runs_no_consecutive ... ok [INFO] [stdout] test merge_message_runs_preserves_interleaved ... ok [INFO] [stdout] test merge_message_runs_three_consecutive ... ok [INFO] [stdout] test merge_message_runs_tool_messages_never_merged ... ok [INFO] [stdout] test get_buffer_string_with_ai_tool_calls ... ok [INFO] [stdout] test merge_message_runs_system_consecutive ... ok [INFO] [stdout] test merge_message_runs_with_empty_content ... ok [INFO] [stdout] test message_chunk_to_message_converts ... ok [INFO] [stdout] test message_chunk_to_message_ai_chunk ... ok [INFO] [stdout] test message_chunk_to_message_non_chunk_passthrough ... ok [INFO] [stdout] test message_chunk_to_message_system_chunk ... ok [INFO] [stdout] test trim_messages_empty_input ... ok [INFO] [stdout] test trim_messages_first_exact_budget ... ok [INFO] [stdout] test trim_messages_first_strategy ... ok [INFO] [stdout] test trim_messages_last_strategy ... ok [INFO] [stdout] test trim_messages_zero_budget ... ok [INFO] [stdout] test trim_messages_first_with_end_on ... ok [INFO] [stdout] test trim_messages_last_with_include_system ... ok [INFO] [stdout] test trim_messages_last_with_start_on ... ok [INFO] [stdout] test message_chunk_to_message_tool_chunk ... ok [INFO] [stdout] test filter_messages_by_id ... ok [INFO] [stdout] test messages_to_dict_and_back ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/messages_expanded_tests.rs (/opt/rustwide/target/debug/deps/messages_expanded_tests-84ea9a3295c26af5) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test test_count_tokens_approximately ... ok [INFO] [stdout] test test_default_tool_parser_success ... ok [INFO] [stdout] test test_default_tool_parser_string_args ... ok [INFO] [stdout] test test_default_tool_chunk_parser ... ok [INFO] [stdout] test test_ai_message_to_openai ... ok [INFO] [stdout] test test_ai_with_tool_calls_to_openai ... ok [INFO] [stdout] test test_default_tool_parser_invalid_args ... ok [INFO] [stdout] test test_human_message_to_openai ... ok [INFO] [stdout] test test_invalid_tool_call_factory ... ok [INFO] [stdout] test test_system_message_to_openai ... ok [INFO] [stdout] test test_tool_call_factory ... ok [INFO] [stdout] test test_tool_message_to_openai ... ok [INFO] [stdout] test test_mixed_messages_to_openai ... ok [INFO] [stdout] test test_tool_call_chunk_factory ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/messages_tests.rs (/opt/rustwide/target/debug/deps/messages_tests-b697394908cbf23f) [INFO] [stdout] [INFO] [stdout] running 52 tests [INFO] [stdout] test add_usage_free_function ... ok [INFO] [stdout] test ai_message_chunk_basic ... ok [INFO] [stdout] test ai_message_simple ... ok [INFO] [stdout] test base_message_fields_builder ... ok [INFO] [stdout] test ai_message_with_usage ... ok [INFO] [stdout] test ai_message_with_tool_calls ... ok [INFO] [stdout] test content_block_cache_control ... ok [INFO] [stdout] test content_block_image_file_id_source ... ok [INFO] [stdout] test content_block_image_base64_source ... ok [INFO] [stdout] test content_block_file ... ok [INFO] [stdout] test content_block_data ... ok [INFO] [stdout] test content_block_image_url_block ... ok [INFO] [stdout] test content_block_non_standard ... ok [INFO] [stdout] test content_block_image_url_source ... ok [INFO] [stdout] test content_block_plain_text ... ok [INFO] [stdout] test content_block_audio ... ok [INFO] [stdout] test content_block_invalid_tool_call ... ok [INFO] [stdout] test content_block_server_tool_call ... ok [INFO] [stdout] test content_block_server_tool_call_chunk ... ok [INFO] [stdout] test content_block_tool_call ... ok [INFO] [stdout] test content_block_text_with_annotations ... ok [INFO] [stdout] test content_block_tool_call_chunk ... ok [INFO] [stdout] test content_block_image_legacy_fields ... ok [INFO] [stdout] test content_block_video ... ok [INFO] [stdout] test function_message ... ok [INFO] [stdout] test human_message_text ... ok [INFO] [stdout] test human_message_with_blocks ... ok [INFO] [stdout] test invalid_tool_call_fields ... ok [INFO] [stdout] test is_data_content_block_type_check ... ok [INFO] [stdout] test known_block_types_contains_all ... ok [INFO] [stdout] test message_base_returns_none_for_remove ... ok [INFO] [stdout] test message_base_returns_some_for_chunk ... ok [INFO] [stdout] test message_content_default ... ok [INFO] [stdout] test message_enum_chunk_variants ... ok [INFO] [stdout] test message_enum_dispatch ... ok [INFO] [stdout] test message_type_as_str ... ok [INFO] [stdout] test system_message ... ok [INFO] [stdout] test tool_call_chunk_fields ... ok [INFO] [stdout] test tool_message_artifact ... ok [INFO] [stdout] test tool_message_basic ... ok [INFO] [stdout] test message_content_text_from_blocks_extracts_text ... ok [INFO] [stdout] test tool_message_error ... ok [INFO] [stdout] test usage_metadata_add ... ok [INFO] [stdout] test chat_message ... ok [INFO] [stdout] test content_block_reasoning ... ok [INFO] [stdout] test content_block_redacted_thinking ... ok [INFO] [stdout] test content_block_serde_roundtrip ... ok [INFO] [stdout] test content_block_server_tool_result ... ok [INFO] [stdout] test content_block_tool_result ... ok [INFO] [stdout] test usage_metadata_subtract ... ok [INFO] [stdout] test usage_metadata_subtract_saturates ... ok [INFO] [stdout] test usage_metadata_subtract_with_details ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/migration_round2_tests.rs (/opt/rustwide/target/debug/deps/migration_round2_tests-40284212192e904c) [INFO] [stdout] [INFO] [stdout] running 51 tests [INFO] [stdout] test test_convert_json_schema_custom_name ... ok [INFO] [stdout] test test_build_parameters_schema ... ok [INFO] [stdout] test test_deterministic_embedding_consistent ... ok [INFO] [stdout] test test_constant_embedding_all_zeros ... ok [INFO] [stdout] test test_convert_json_schema_to_function ... ok [INFO] [stdout] test test_convert_to_openai_tool ... ok [INFO] [stdout] test test_constant_embedding_documents ... ok [INFO] [stdout] test test_convert_json_schema_rm_titles ... ok [INFO] [stdout] test test_deterministic_embedding_different_texts ... ok [INFO] [stdout] test test_deterministic_embedding_documents ... ok [INFO] [stdout] test test_ensure_id_with_value ... ok [INFO] [stdout] test test_ensure_id_generates ... ok [INFO] [stdout] test test_generate_id_is_uuid ... ok [INFO] [stdout] test test_get_from_dict_or_env_default ... ok [INFO] [stdout] test test_json_output_key_tools_parser ... ok [INFO] [stdout] test test_length_selector_add_example ... ok [INFO] [stdout] test test_length_selector_selects_all_when_fits ... ok [INFO] [stdout] test test_mustache_basic_variable ... ok [INFO] [stdout] test test_merge_dicts_objects ... ok [INFO] [stdout] test test_get_from_dict_or_env_from_dict ... ok [INFO] [stdout] test test_mustache_array_section ... ok [INFO] [stdout] test test_mustache_comment ... ok [INFO] [stdout] test test_length_selector_truncates_when_exceeds ... ok [INFO] [stdout] test test_mustache_inverted_section ... ok [INFO] [stdout] test test_mustache_inverted_section_with_data ... ok [INFO] [stdout] test test_mustache_missing_key ... ok [INFO] [stdout] test test_mustache_nested_key ... ok [INFO] [stdout] test test_mustache_section_falsy ... ok [INFO] [stdout] test test_mustache_object_section ... ok [INFO] [stdout] test test_length_selector_empty_when_input_exceeds ... ok [INFO] [stdout] test test_mustache_html_escape ... ok [INFO] [stdout] test test_mustache_dot_key ... ok [INFO] [stdout] test test_mustache_section_truthy ... ok [INFO] [stdout] test test_mustache_triple_braces ... ok [INFO] [stdout] test test_openai_tools_parser_from_json ... ok [INFO] [stdout] test test_openai_tools_parser_nested_additional_kwargs ... ok [INFO] [stdout] test test_parse_tool_call_with_id ... ok [INFO] [stdout] test test_mustache_unescaped_ampersand ... ok [INFO] [stdout] test test_openai_tools_parser_with_id ... ok [INFO] [stderr] Running tests/migration_tests.rs (/opt/rustwide/target/debug/deps/migration_tests-05135b5985f75b15) [INFO] [stdout] test test_schema_parser_strips_markdown ... ok [INFO] [stdout] test test_python_to_json_type ... ok [INFO] [stdout] test test_openai_tools_parser_first_only ... ok [INFO] [stdout] test test_schema_parser_missing_required ... ok [INFO] [stdout] test test_parse_tool_call_basic ... ok [INFO] [stdout] test test_template_vars_basic ... ok [INFO] [stdout] test test_template_vars_sections ... ok [INFO] [stdout] test test_set_additional_properties_false ... ok [INFO] [stdout] test test_schema_parser_valid ... ok [INFO] [stdout] test test_schema_parser_format_instructions ... ok [INFO] [stdout] test test_parse_tool_calls_multiple ... ok [INFO] [stdout] test test_template_vars_comments_excluded ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 54 tests [INFO] [stdout] test test_chat_session_default ... ok [INFO] [stdout] test test_comparator_as_str ... ok [INFO] [stdout] test test_chat_session_functions_skipped_when_empty ... ok [INFO] [stdout] test test_comparison_new ... ok [INFO] [stdout] test test_chat_session_with_functions ... ok [INFO] [stdout] test test_chat_session_new ... ok [INFO] [stdout] test test_chat_loader_load ... ok [INFO] [stdout] test test_doc_loader_lazy_load ... ok [INFO] [stdout] test test_chat_loader_lazy_load ... ok [INFO] [stdout] test test_chat_loader_empty ... ok [INFO] [stdout] test test_doc_loader_empty ... ok [INFO] [stdout] test test_doc_loader_load ... ok [INFO] [stdout] test test_dumpd ... ok [INFO] [stdout] test test_filter_directive_accept ... ok [INFO] [stdout] test test_dumps_compact ... ok [INFO] [stdout] test test_in_memory_tracer_default ... ok [INFO] [stdout] test test_dumps_pretty ... ok [INFO] [stdout] test test_make_serialized_secret ... ok [INFO] [stdout] test test_operation_new ... ok [INFO] [stdout] test test_operator_as_str ... ok [INFO] [stdout] test test_rate_limiter_default ... ok [INFO] [stdout] test test_rate_limiter_async_non_blocking ... ok [INFO] [stdout] test test_in_memory_tracer_persist_run ... ok [INFO] [stdout] test test_chat_session_serde_roundtrip ... ok [INFO] [stdout] test test_in_memory_tracer_start_end_trace ... ok [INFO] [stdout] test test_rate_limiter_non_blocking_initially_empty ... ok [INFO] [stdout] test test_record_manager_create_schema ... ok [INFO] [stdout] test test_record_manager_delete_keys ... ok [INFO] [stdout] test test_record_manager_get_time ... ok [INFO] [stdout] test test_record_manager_list_keys ... ok [INFO] [stdout] test test_record_manager_namespace ... ok [INFO] [stdout] test test_run_new ... ok [INFO] [stdout] test test_record_manager_update_and_exists ... ok [INFO] [stdout] test test_record_manager_time_at_least ... ok [INFO] [stdout] test test_run_serde_roundtrip ... ok [INFO] [stdout] test test_serializable_lc_id ... ok [INFO] [stdout] test test_run_types ... ok [INFO] [stdout] test test_serializable_lc_namespace ... ok [INFO] [stdout] test test_serializable_secrets ... ok [INFO] [stdout] test test_serializable_is_lc_serializable ... ok [INFO] [stdout] test test_structured_query_builder ... ok [INFO] [stdout] test test_structured_query_serde_roundtrip ... ok [INFO] [stdout] test test_to_json_not_implemented ... ok [INFO] [stdout] test test_tracer_create_chain_run ... ok [INFO] [stdout] test test_tracer_create_llm_run ... ok [INFO] [stdout] test test_tracer_create_retriever_run ... ok [INFO] [stdout] test test_tracer_create_tool_run ... ok [INFO] [stdout] test test_visitor_comparison ... ok [INFO] [stdout] test test_visitor_operation ... ok [INFO] [stdout] test test_visitor_structured_query ... ok [INFO] [stdout] test test_rate_limiter_blocking ... ok [INFO] [stdout] test test_rate_limiter_async_blocking ... ok [INFO] [stdout] test test_rate_limiter_burst ... ok [INFO] [stdout] test test_rate_limiter_non_blocking_after_wait ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/output_parsers_tests.rs (/opt/rustwide/target/debug/deps/output_parsers_tests-5539655499f5b168) [INFO] [stdout] [INFO] [stderr] Running tests/outputs_tests.rs (/opt/rustwide/target/debug/deps/outputs_tests-1ed673d4bf95ea12) [INFO] [stdout] running 37 tests [INFO] [stdout] test test_json_parser_format_instructions_no_schema ... ok [INFO] [stdout] test test_csv_parser_single_item ... ok [INFO] [stdout] test test_csv_parser_format_instructions ... ok [INFO] [stdout] test test_json_parser_basic ... ok [INFO] [stdout] test test_csv_parser_basic ... ok [INFO] [stdout] test test_csv_parser_whitespace ... ok [INFO] [stdout] test test_json_parser_partial_mode ... ok [INFO] [stdout] test test_json_parser_plain_fence ... ok [INFO] [stdout] test test_json_parser_with_fences ... ok [INFO] [stdout] test test_markdown_list_format_instructions ... ok [INFO] [stdout] test test_markdown_list_parser_asterisk ... ok [INFO] [stdout] test test_json_parser_with_json_fence ... ok [INFO] [stdout] test test_json_parser_invalid_json ... ok [INFO] [stdout] test test_json_parser_format_instructions_with_schema ... ok [INFO] [stdout] test test_numbered_list_format_instructions ... ok [INFO] [stdout] test test_markdown_list_parser_dash ... ok [INFO] [stdout] test test_csv_parser_runnable ... ok [INFO] [stdout] test test_numbered_list_parser ... ok [INFO] [stdout] test test_numbered_list_parser_with_extra_text ... ok [INFO] [stdout] test test_str_parser_parse ... ok [INFO] [stdout] test test_str_parser_runnable ... ok [INFO] [stdout] test test_markdown_list_parser_mixed_content ... ok [INFO] [stdout] test test_json_parser_runnable ... ok [INFO] [stdout] test test_tool_call_parser_empty_tool_calls ... ok [INFO] [stdout] test test_tool_call_parser_first_only ... ok [INFO] [stdout] test test_tool_call_parser_first_only_empty_errors ... ok [INFO] [stdout] test test_tool_call_parser_without_id ... ok [INFO] [stdout] test test_transform_output_parser_trait_exists ... ok [INFO] [stdout] test test_xml_parser_format_instructions_with_tags ... ok [INFO] [stdout] test test_xml_parser_nested ... ok [INFO] [stdout] test test_xml_parser_repeated_tags ... ok [INFO] [stdout] test test_xml_parser_with_fences ... ok [INFO] [stdout] test test_str_parser_runnable_non_string ... ok [INFO] [stdout] test test_str_parser_type ... ok [INFO] [stdout] test test_xml_parser_runnable ... ok [INFO] [stdout] test test_xml_parser_simple ... ok [INFO] [stdout] test test_tool_call_parser_from_chat_generation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 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 generation_chunk_add ... ok [INFO] [stdout] test generation_chunk_new ... ok [INFO] [stdout] test chat_result ... ok [INFO] [stdout] test chat_generation_new ... ok [INFO] [stdout] test generation_new ... ok [INFO] [stdout] test chat_generation_chunk_new ... ok [INFO] [stdout] test generation_with_info ... ok [INFO] [stdout] test llm_result_flatten_multiple ... ok [INFO] [stdout] test generation_serde_roundtrip ... ok [INFO] [stdout] test chat_generation_chunk_add ... ok [INFO] [stdout] test merge_chat_generation_chunks_empty ... ok [INFO] [stdout] test llm_result_flatten_single ... ok [INFO] [stdout] test generation_chunk_add_merges_info ... ok [INFO] [stdout] test run_info ... ok [INFO] [stdout] test merge_chat_generation_chunks_works ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/prompts_tests.rs (/opt/rustwide/target/debug/deps/prompts_tests-e7afb768477827d2) [INFO] [stdout] [INFO] [stdout] running 38 tests [INFO] [stdout] test test_chat_prompt_template_basic ... ok [INFO] [stdout] test test_dict_prompt_template_nested ... ok [INFO] [stdout] test test_chat_prompt_template_partial ... ok [INFO] [stdout] test test_chat_prompt_template_format_messages ... ok [INFO] [stdout] test test_dict_prompt_template_basic ... ok [INFO] [stdout] test test_chat_prompt_template_append ... ok [INFO] [stdout] test test_few_shot_chat_message_template ... ok [INFO] [stdout] test test_few_shot_chat_with_selector ... ok [INFO] [stdout] test test_few_shot_prompt_template_with_prefix ... ok [INFO] [stdout] test test_few_shot_prompt_template ... ok [INFO] [stdout] test test_few_shot_prompt_template_runnable ... ok [INFO] [stdout] test test_few_shot_with_example_selector ... ok [INFO] [stdout] test test_few_shot_chat_message_template_runnable ... ok [INFO] [stdout] test test_chat_prompt_template_runnable_invoke ... ok [INFO] [stdout] test test_dict_prompt_template_runnable ... ok [INFO] [stdout] test test_image_prompt_template_basic ... ok [INFO] [stdout] test test_image_prompt_template_no_variables ... ok [INFO] [stdout] test test_chat_prompt_template_with_placeholder ... ok [INFO] [stdout] test test_image_prompt_template_runnable ... ok [INFO] [stdout] test test_image_prompt_template_with_detail ... ok [INFO] [stdout] test test_message_prompt_template_ai ... ok [INFO] [stdout] test test_message_prompt_template_human ... ok [INFO] [stdout] test test_message_prompt_template_input_variables ... ok [INFO] [stdout] test test_message_prompt_template_system ... ok [INFO] [stdout] test test_messages_placeholder_n_messages ... ok [INFO] [stdout] test test_messages_placeholder_required ... ok [INFO] [stdout] test test_messages_placeholder_optional ... ok [INFO] [stdout] test test_prompt_template_dynamic_partial ... ok [INFO] [stdout] test test_prompt_template_escaped_braces ... ok [INFO] [stdout] test test_prompt_template_format_with_numbers ... ok [INFO] [stdout] test test_messages_placeholder_with_messages ... ok [INFO] [stdout] test test_prompt_template_from_template ... ok [INFO] [stdout] test test_prompt_template_missing_variable_error ... ok [INFO] [stdout] test test_prompt_template_format_prompt ... ok [INFO] [stdout] test test_prompt_template_partial ... ok [INFO] [stdout] test test_prompt_template_runnable_invoke ... ok [INFO] [stdout] test test_prompt_template_format ... ok [INFO] [stdout] test test_prompt_template_runnable_single_var ... ok [INFO] [stderr] Running tests/runnables_tests.rs (/opt/rustwide/target/debug/deps/runnables_tests-a3493407269b417e) [INFO] [stdout] [INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 57 tests [INFO] [stdout] test test_assign_merges_keys ... ok [INFO] [stdout] test test_binding_kwargs_merged ... ok [INFO] [stdout] test test_assign_non_object_errors ... ok [INFO] [stdout] test test_configurable_default ... ok [INFO] [stdout] test test_complex_chain ... ok [INFO] [stdout] test test_branch_first_match_wins ... ok [INFO] [stdout] test test_each_maps_over_array ... ok [INFO] [stdout] test test_config_default ... ok [INFO] [stdout] test test_ensure_config_none ... ok [INFO] [stdout] test test_ensure_config_some ... ok [INFO] [stdout] test test_each_non_array_errors ... ok [INFO] [stdout] test test_chain_macro ... ok [INFO] [stdout] test test_branch_default_fallthrough ... ok [INFO] [stdout] test test_event_data_default ... ok [INFO] [stdout] test test_ext_batch_on_lambda ... ok [INFO] [stdout] test test_ext_map_non_array_errors ... ok [INFO] [stdout] test test_configurable_with_alternative ... ok [INFO] [stdout] test test_ext_assign_multiple_keys ... ok [INFO] [stdout] test test_ext_assign_merges_computed_keys ... ok [INFO] [stdout] test test_ext_map_over_array ... ok [INFO] [stdout] test test_ext_pipe_then_map ... ok [INFO] [stdout] test test_ext_batch_on_pipe_chain ... ok [INFO] [stdout] test test_ext_with_fallbacks_primary_fails ... ok [INFO] [stdout] test test_ext_pipe_chained_three ... ok [INFO] [stdout] test test_ext_with_fallbacks_primary_ok ... ok [INFO] [stdout] test test_ext_pipe_with_fallbacks ... ok [INFO] [stdout] test test_ext_pipe_two_lambdas ... ok [INFO] [stdout] test test_ext_with_retry_succeeds ... ok [INFO] [stdout] test test_fallbacks_primary_fails ... ok [INFO] [stdout] test test_lambda_batch ... ok [INFO] [stdout] test test_fallbacks_primary_succeeds ... ok [INFO] [stdout] test test_fallbacks_all_fail ... ok [INFO] [stdout] test test_merge_configs ... ok [INFO] [stdout] test test_lambda_with_config ... ok [INFO] [stdout] test test_lambda_invoke ... ok [INFO] [stdout] test test_parallel_error_propagation ... ok [INFO] [stdout] test test_passthrough_returns_input ... ok [INFO] [stdout] test test_parallel_fan_out ... ok [INFO] [stdout] test test_router_correct_dispatch ... ok [INFO] [stdout] test test_router_missing_key ... ok [INFO] [stdout] test test_sequence_batch ... ok [INFO] [stdout] test test_runnable_retry_succeeds_first_try ... ok [INFO] [stdout] test test_sequence_empty_fails ... ok [INFO] [stdout] test test_sequence_stream ... ok [INFO] [stdout] test test_sequence_recursion_limit ... ok [INFO] [stdout] test test_sequence_three_steps ... ok [INFO] [stdout] test test_runnable_retry_succeeds_on_second_try ... ok [INFO] [stdout] test test_stream_event_serialize ... ok [INFO] [stdout] test test_sequence_two_steps ... ok [INFO] [stdout] test test_stream_event_custom ... ok [INFO] [stdout] test test_stream_multi_chunk_runnable ... ok [INFO] [stdout] test test_stream_sequence_propagates_last_step ... ok [INFO] [stdout] test test_stream_sequence_with_multi_chunk_last_step ... ok [INFO] [stdout] test test_ext_with_retry_exhausted ... ok [INFO] [stdout] test test_ext_with_retry_recovers ... ok [INFO] [stdout] test test_runnable_retry_exhausts_attempts ... ok [INFO] [stdout] test test_stream_single_runnable_returns_result ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/tools_expanded_tests.rs (/opt/rustwide/target/debug/deps/tools_expanded_tests-deed60c009671b5d) [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test test_error_handler_default ... ok [INFO] [stdout] test test_error_handler_static_message ... ok [INFO] [stdout] test test_convert_to_openai_tool_no_schema ... ok [INFO] [stdout] test test_convert_to_openai_tools_multiple ... ok [INFO] [stdout] test test_convert_to_openai_tool ... ok [INFO] [stdout] test test_function_tool_propagate_error ... ok [INFO] [stdout] test test_function_tool_error_handling ... ok [INFO] [stdout] test test_function_tool_text_input ... ok [INFO] [stdout] test test_render_text_description ... ok [INFO] [stdout] test test_response_format_default ... ok [INFO] [stdout] test test_schema_annotation_error ... ok [INFO] [stdout] test test_tool_input_deserialize_text ... ok [INFO] [stdout] test test_render_text_description_and_args ... ok [INFO] [stdout] test test_tool_input_deserialize_structured ... ok [INFO] [stdout] test test_function_tool_basic ... ok [INFO] [stdout] test test_function_tool_return_direct ... ok [INFO] [stdout] test test_tool_input_from_text ... ok [INFO] [stdout] test test_tool_input_from_tool_call ... ok [INFO] [stdout] test test_tool_schema_serialize ... ok [INFO] [stdout] test test_tool_input_from_structured ... ok [INFO] [stdout] test test_tool_validation_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/traits_tests.rs (/opt/rustwide/target/debug/deps/traits_tests-a6f9faf17855880a) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test image_prompt_value ... ok [INFO] [stdout] test agent_action ... ok [INFO] [stdout] test agent_step ... ok [INFO] [stdout] test agent_action_message_log ... ok [INFO] [stdout] test agent_finish ... ok [INFO] [stdout] test in_memory_byte_store_mget_mset ... ok [INFO] [stdout] test chat_prompt_value ... ok [INFO] [stdout] test agent_action_serde_roundtrip ... ok [INFO] [stdout] test in_memory_byte_store_yield_keys ... ok [INFO] [stdout] test in_memory_cache_lookup_update ... ok [INFO] [stdout] test in_memory_cache_maxsize ... ok [INFO] [stdout] test in_memory_cache_clear ... ok [INFO] [stdout] test in_memory_chat_history ... ok [INFO] [stdout] test in_memory_chat_history_clear ... ok [INFO] [stdout] test in_memory_store_mdelete ... ok [INFO] [stdout] test in_memory_store_mget_mset ... ok [INFO] [stdout] test string_prompt_value ... ok [INFO] [stdout] test in_memory_store_yield_keys ... ok [INFO] [stdout] test agent_action_message_log_serde ... ok [INFO] [stdout] test in_memory_byte_store_mdelete ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/utils_tests.rs (/opt/rustwide/target/debug/deps/utils_tests-a93a18bdac26e50b) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test generate_id_returns_uuid_format ... ok [INFO] [stdout] test merge_dicts_arrays ... ok [INFO] [stdout] test merge_dicts_non_object_right_skipped ... ok [INFO] [stdout] test generate_id_unique ... ok [INFO] [stdout] test merge_dicts_objects ... ok [INFO] [stdout] test merge_dicts_nested_objects ... ok [INFO] [stdout] test merge_dicts_non_object_returns_left ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/vectorstores_tests.rs (/opt/rustwide/target/debug/deps/vectorstores_tests-2113f8711eebdb2d) [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test test_add_documents_explicit_ids_override_doc_ids ... ok [INFO] [stdout] test test_add_documents_returns_ids ... ok [INFO] [stdout] test test_add_documents_uses_doc_id_if_present ... ok [INFO] [stdout] test test_add_documents_with_explicit_ids ... ok [INFO] [stdout] test test_add_documents_overwrites_existing_id ... ok [INFO] [stdout] test test_add_texts_basic ... ok [INFO] [stdout] test test_cosine_relevance_score_values ... ok [INFO] [stdout] test test_add_texts_with_metadata ... ok [INFO] [stdout] test test_cosine_similarity_identical ... ok [INFO] [stdout] test test_delete_nonexistent_id_succeeds ... ok [INFO] [stdout] test test_add_texts_with_ids ... ok [INFO] [stdout] test test_cosine_similarity_zero_vector ... ok [INFO] [stdout] test test_euclidean_relevance_score_values ... ok [INFO] [stdout] test test_delete_removes_documents ... ok [INFO] [stdout] test test_delete_subset ... ok [INFO] [stdout] test test_from_texts_basic ... ok [INFO] [stdout] test test_delete_with_none_is_noop ... ok [INFO] [stdout] test test_from_texts_with_metadata ... ok [INFO] [stdout] test test_get_by_ids_missing ... ok [INFO] [stdout] test test_get_by_ids_found ... ok [INFO] [stdout] test test_id_preserved_through_search ... ok [INFO] [stdout] test test_get_by_ids_mixed ... ok [INFO] [stdout] test test_metadata_preserved_through_search ... ok [INFO] [stdout] test test_cosine_similarity_orthogonal ... ok [INFO] [stdout] test test_mmr_search_basic ... ok [INFO] [stdout] test test_mmr_search_diversity ... ok [INFO] [stdout] test test_mmr_search_empty_store ... ok [INFO] [stdout] test test_mmr_search_fetch_k_limits_candidates ... ok [INFO] [stdout] test test_mmr_search_k_greater_than_store ... ok [INFO] [stdout] test test_mmr_search_pure_relevance ... ok [INFO] [stdout] test test_retriever_score_threshold_mode ... ok [INFO] [stdout] test test_retriever_mmr_mode ... ok [INFO] [stdout] test test_retriever_similarity_search ... ok [INFO] [stdout] test test_search_type_default ... ok [INFO] [stdout] test test_similarity_search_by_vector_basic ... ok [INFO] [stdout] test test_retriever_with_custom_k ... ok [INFO] [stdout] test test_similarity_search_basic ... ok [INFO] [stdout] test test_similarity_search_k_larger_than_store ... ok [INFO] [stdout] test test_similarity_search_with_score_empty_store ... ok [INFO] [stdout] test test_similarity_search_by_vector_returns_k_results ... ok [INFO] [stdout] test test_similarity_search_by_vector_empty_store ... ok [INFO] [stdout] test test_similarity_search_returns_exact_match_first ... ok [INFO] [stdout] test test_similarity_search_empty_store ... ok [INFO] [stdout] test test_similarity_search_with_score_ordered ... ok [INFO] [stdout] test test_similarity_search_with_score_identical_query ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests cognis_core [INFO] [stdout] [INFO] [stdout] running 40 tests [INFO] [stdout] test src/callbacks/handlers.rs - callbacks::handlers::UsageMetadataCallbackHandler (line 307) ... ignored [INFO] [stdout] test src/document_loaders.rs - document_loaders::BaseLoader (line 27) ... ignored [INFO] [stdout] test src/runnables/assign.rs - runnables::assign::RunnableAssign (line 24) ... ignored [INFO] [stdout] test src/runnables/events.rs - runnables::events::stream_events (line 51) ... ignored [INFO] [stdout] test src/runnables/ext.rs - runnables::ext::RunnableExt (line 28) ... ignored [INFO] [stdout] test src/runnables/ext.rs - runnables::ext::RunnableExt::assign (line 97) ... ignored [INFO] [stdout] test src/runnables/ext.rs - runnables::ext::RunnableExt::pipe (line 41) ... ignored [INFO] [stdout] test src/runnables/fallbacks.rs - runnables::fallbacks::RunnableWithFallbacks (line 24) ... ignored [INFO] [stdout] test src/runnables/history.rs - runnables::history::RunnableWithMessageHistory (line 57) ... ignored [INFO] [stdout] test src/runnables/mod.rs - runnables::chain (line 120) ... ignored [INFO] [stdout] test src/runnables/pipe.rs - runnables::pipe::PipeBuilder (line 76) ... ignored [INFO] [stdout] test src/runnables/rate_limit.rs - runnables::rate_limit::RateLimitConfig (line 21) ... ignored [INFO] [stdout] test src/runnables/rate_limit.rs - runnables::rate_limit::RunnableRateLimit (line 244) ... ignored [INFO] [stdout] test src/runnables/rate_limit.rs - runnables::rate_limit::RunnableThrottle (line 317) ... ignored [INFO] [stdout] test src/runnables/retry.rs - runnables::retry::RunnableRetry (line 20) ... ignored [INFO] [stdout] test src/runnables/router.rs - runnables::router::RunnableFnBranch (line 172) ... ignored [INFO] [stdout] test src/runnables/router.rs - runnables::router::RunnableRouter (line 71) ... ignored [INFO] [stdout] test src/runnables/timeout.rs - runnables::timeout::RunnableDeadline (line 185) ... ignored [INFO] [stdout] test src/runnables/timeout.rs - runnables::timeout::RunnableTimeout (line 89) ... ignored [INFO] [stdout] test src/runnables/timeout.rs - runnables::timeout::TimeoutConfig (line 41) ... ignored [INFO] [stdout] test src/tools/convert.rs - tools::convert::convert_runnable_to_tool (line 49) ... ignored [INFO] [stdout] test src/tools/function.rs - tools::function::tool_from_function (line 148) ... ignored [INFO] [stdout] test src/tools/retriever.rs - tools::retriever::RetrieverTool (line 23) ... ignored [INFO] [stdout] test src/tools/schema_gen.rs - tools::schema_gen::quick_tool_schema (line 263) ... ignored [INFO] [stdout] test src/tools/structured.rs - tools::structured::StructuredTool (line 27) ... ignored [INFO] [stdout] test src/load/validation.rs - load::validation::escape_dict (line 47) ... ok [INFO] [stdout] test src/lib.rs - (line 26) ... ok [INFO] [stdout] test src/language_models/fake.rs - language_models::fake::GenericFakeChatModel (line 386) ... ok [INFO] [stdout] test src/retry.rs - retry::DefaultRetryClassifier (line 26) ... ok [INFO] [stdout] test src/messages/human.rs - messages::human::HumanMessage::from_parts (line 32) ... ok [INFO] [stdout] test src/utils/image.rs - utils::image::data_uri_from_base64 (line 178) ... ok [INFO] [stdout] test src/utils/hashing.rs - utils::hashing (line 14) ... ok [INFO] [stdout] test src/utils/image.rs - utils::image::detect_mime_type (line 59) ... ok [INFO] [stdout] test src/tools/simple.rs - tools::simple::SimpleTool (line 31) ... ok [INFO] [stdout] test src/utils/image.rs - utils::image::encode_image (line 128) ... ok [INFO] [stdout] test src/utils/image.rs - utils::image::image_to_data_uri (line 152) ... ok [INFO] [stdout] test src/vectorstores/utils.rs - vectorstores::utils::cosine_similarity_matrix (line 40) ... ok [INFO] [stdout] test src/utils/tokens.rs - utils::tokens::get_model_context_window (line 155) ... ok [INFO] [stdout] test src/utils/tokens.rs - utils::tokens::estimate_token_count (line 16) ... ok [INFO] [stdout] test src/vectorstores/utils.rs - vectorstores::utils::maximal_marginal_relevance (line 119) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 25 ignored; 0 measured; 0 filtered out; finished in 2.97s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "76e291bc30f0703317de097cd6cd7c212aa0fc43893eb2034b4c5c1c81422da4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76e291bc30f0703317de097cd6cd7c212aa0fc43893eb2034b4c5c1c81422da4", kill_on_drop: false }` [INFO] [stdout] 76e291bc30f0703317de097cd6cd7c212aa0fc43893eb2034b4c5c1c81422da4