[INFO] cloning repository https://github.com/sonald/knuth-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sonald/knuth-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsonald%2Fknuth-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsonald%2Fknuth-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 36e125cef37f73610226d66cf3b0c3fb2dd00c7f [INFO] testing sonald/knuth-rs against 1.98.0-beta.1 for beta-1.98-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsonald%2Fknuth-rs" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/sonald/knuth-rs [INFO] finished tweaking git repo https://github.com/sonald/knuth-rs [INFO] tweaked toml for git repo https://github.com/sonald/knuth-rs written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sonald/knuth-rs on toolchain 1.98.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/sonald/knuth-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1 [INFO] running `Command { std: "docker" "start" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling bytes v1.12.0 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling rustls v0.23.41 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling cc v1.2.65 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Compiling compression-core v0.4.32 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling time-macros v0.2.30 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling webpki-roots v1.0.8 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling uuid v1.23.4 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling compression-codecs v0.4.38 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling bstr v1.12.2 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling vte v0.14.1 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling either v1.16.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling strip-ansi-escapes v0.2.1 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling time v0.3.51 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling fd-lock v4.0.4 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling regex v1.12.4 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling simple_asn1 v0.6.4 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling ignore v0.4.26 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling jsonwebtoken v9.3.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling reedline v0.48.0 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling async-compression v0.4.42 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling ai v0.75.0 (/opt/rustwide/workdir/crates/ai) [INFO] [stderr] Compiling knuth-core v0.1.0 (/opt/rustwide/workdir/crates/knuth-core) [INFO] [stderr] Compiling knuth-agent v0.1.0 (/opt/rustwide/workdir/crates/knuth-agent) [INFO] [stderr] Compiling knuth-cli v0.1.0 (/opt/rustwide/workdir/crates/knuth-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s [INFO] running `Command { std: "docker" "inspect" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling async-compression v0.4.42 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling ai v0.75.0 (/opt/rustwide/workdir/crates/ai) [INFO] [stderr] Compiling knuth-core v0.1.0 (/opt/rustwide/workdir/crates/knuth-core) [INFO] [stderr] Compiling knuth-agent v0.1.0 (/opt/rustwide/workdir/crates/knuth-agent) [INFO] [stderr] Compiling knuth-cli v0.1.0 (/opt/rustwide/workdir/crates/knuth-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 35.42s [INFO] running `Command { std: "docker" "inspect" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ai-da0c3ae9bac75f85) [INFO] [stdout] [INFO] [stdout] running 127 tests [INFO] [stdout] test bedrock_anthropic::tests::bedrock_anthropic_error_terminal_calculates_usage_cost ... ok [INFO] [stdout] test bedrock_anthropic::tests::bedrock_anthropic_message_start_usage_combines_with_delta_output_and_prices_done ... ok [INFO] [stdout] test bedrock_anthropic::tests::converter_preserves_default_and_no_arg_new_constructors ... ok [INFO] [stdout] test api_registry::tests::captured_handle_still_returns_mismatch_error_stream ... ok [INFO] [stdout] test api_registry::tests::handle_survives_unregister_after_lookup ... ok [INFO] [stdout] test api_registry::tests::handle_survives_clear_after_lookup_for_simple_stream ... ok [INFO] [stdout] test bedrock_anthropic::tests::full_text_turn_round_trip ... ok [INFO] [stdout] test bedrock_anthropic::tests::error_event_emits_error_variant ... ok [INFO] [stdout] test env_api_keys::tests::ds4_uses_dedicated_local_env_var ... ok [INFO] [stdout] test event_stream::tests::crc32_matches_reference_vector ... ok [INFO] [stdout] test event_stream::tests::rejects_bad_prelude_crc ... ok [INFO] [stdout] test bedrock_provider::tests::credentials_debug_redacts_all_credential_values ... ok [INFO] [stdout] test bedrock_anthropic::tests::ping_emits_nothing ... ok [INFO] [stdout] test event_stream::tests::short_buffer_reports_short_error ... ok [INFO] [stdout] test event_stream::tests::round_trip_string_header_and_payload ... ok [INFO] [stdout] test images::tests::images_returns_clear_unsupported_error ... ok [INFO] [stdout] test providers::anthropic::tests::fireworks_compat_disables_cache_on_tools ... ok [INFO] [stdout] test providers::anthropic::tests::compat_can_preserve_empty_thinking_signature ... ok [INFO] [stdout] test providers::anthropic::tests::consecutive_tool_results_merge_into_one_user_message ... ok [INFO] [stdout] test providers::anthropic::tests::cache_control_applied_to_system_and_last_user ... ok [INFO] [stdout] test providers::anthropic::tests::long_retention_adds_ttl ... ok [INFO] [stdout] test providers::openai_codex_responses::tests::url_resolution ... ok [INFO] [stdout] test providers::faux::tests::replayed_usage_normalizes_total_tokens_and_cost ... ok [INFO] [stdout] test providers::faux::tests::replays_queued_text_and_tool_call ... ok [INFO] [stdout] test providers::anthropic::tests::redacted_thinking_serializes_as_redacted_thinking ... ok [INFO] [stdout] test providers::openai_codex_responses::tests::body_uses_instructions_not_system_message ... ok [INFO] [stdout] test providers::anthropic::tests::cumulative_usage_replaces_delta_values ... ok [INFO] [stdout] test providers::anthropic::tests::tools_get_cache_control_on_last ... ok [INFO] [stdout] test providers::openai_completions::tests::finish_reason_mapping ... ok [INFO] [stdout] test providers::openai_completions::tests::body_has_messages_and_stream_options ... ok [INFO] [stdout] test providers::faux::tests::falls_back_to_canned_message ... ok [INFO] [stdout] test providers::openai_completions::tests::compat_can_force_legacy_max_tokens_field ... ok [INFO] [stdout] test providers::openai_completions::tests::image_user_content_uses_image_url ... ok [INFO] [stdout] test providers::openai_completions::tests::assistant_tool_calls_serialize ... ok [INFO] [stdout] test providers::openai_completions::tests::o_series_models_use_max_completion_tokens ... ok [INFO] [stdout] test providers::openai_completions::tests::usage_subtracts_cached_tokens_from_openai_prompt_tokens ... ok [INFO] [stdout] test providers::openai_completions::tests::reasoning_models_use_max_completion_tokens ... ok [INFO] [stdout] test models::tests::calculate_usage_cost_uses_per_million_prices ... ok [INFO] [stdout] test providers::openai_responses::tests::body_includes_system_prompt ... ok [INFO] [stdout] test providers::openai_responses::tests::empty_summary_reasoning_signature_is_replayed ... ok [INFO] [stdout] test providers::openai_responses::tests::identityless_reasoning_delta_does_not_create_orphan_block ... ok [INFO] [stdout] test providers::openai_responses::tests::content_part_added_then_text_done_without_delta_preserves_lifecycle ... ok [INFO] [stdout] test providers::openai_responses::tests::function_call_output_item_done_emits_one_tool_call_end_with_matching_partial ... ok [INFO] [stdout] test providers::anthropic::tests::thinking_without_signature_downgrades_to_text_by_default ... ok [INFO] [stdout] test providers::openai_responses::tests::content_part_added_ignores_non_text_and_non_refusal_parts ... ok [INFO] [stdout] test providers::openai_responses::tests::message_output_item_done_finalizes_unfinished_refusal ... ok [INFO] [stdout] test providers::openai_responses::tests::interleaved_text_parts_route_start_delta_end_by_tuple_identity ... ok [INFO] [stdout] test providers::openai_responses::tests::reasoning_block_emitted_when_effort_set ... ok [INFO] [stdout] test providers::anthropic::tests::temperature_dropped_when_thinking_enabled ... ok [INFO] [stdout] test providers::openai_responses::tests::eof_before_terminal_event_emits_error ... ok [INFO] [stdout] test providers::openai_responses::tests::long_retention_sets_24h_and_cache_key ... ok [INFO] [stdout] test providers::openai_responses::tests::responses_usage_subtracts_cached_tokens_from_input_tokens ... ok [INFO] [stdout] test providers::openai_responses::tests::reasoning_item_done_is_captured_and_replayed ... ok [INFO] [stdout] test providers::openai_responses::tests::thinking_dropped_without_compat_flag ... ok [INFO] [stdout] test providers::openai_responses::tests::reasoning_done_routes_by_output_index_not_last_same_type_block ... ok [INFO] [stdout] test providers::openai_responses::tests::text_done_routes_by_output_index_not_last_block ... ok [INFO] [stdout] test providers::openai_responses::tests::text_done_updates_partial_and_terminal_content ... ok [INFO] [stdout] test providers::openai_responses::tests::thinking_replayed_as_reasoning_item_when_compat_requires ... ok [INFO] [stdout] test providers::openai_responses::tests::tool_call_serializes_as_function_call ... ok [INFO] [stdout] test providers::openai_responses::tests::tool_argument_deltas_route_by_item_id ... ok [INFO] [stdout] test providers::register_builtins::tests::ensure_preserves_custom_override_for_builtin_api ... ok [INFO] [stdout] test providers::openai_responses::tests::reasoning_output_item_done_emits_one_thinking_end_with_matching_partial ... ok [INFO] [stdout] test providers::register_builtins::tests::ensure_restores_missing_builtins_when_registry_contains_custom_provider ... ok [INFO] [stdout] test providers::openai_responses::tests::responses_replay_preserves_interleaved_output_items_and_message_identity ... ok [INFO] [stdout] test providers::openai_responses::tests::responses_repeated_usage_snapshot_does_not_accumulate ... ok [INFO] [stdout] test providers::openai_responses::tests::refusal_lifecycle_uses_text_events_and_reconciles_output_item_done ... ok [INFO] [stdout] test providers::openai_responses::tests::tool_call_id_preserves_response_item_id_for_replay ... ok [INFO] [stdout] test providers::register_builtins::tests::stream_re_registers_builtins_after_clear ... ok [INFO] [stdout] test providers::openai_responses::tests::responses_usage_subtracts_cache_write_tokens ... ok [INFO] [stdout] test providers::transform_messages::tests::cross_model_thinking_becomes_text ... ok [INFO] [stdout] test providers::transform_messages::tests::errored_assistant_is_skipped ... ok [INFO] [stdout] test providers::transform_messages::tests::images_downgraded_for_non_vision_model ... ok [INFO] [stdout] test providers::transform_messages::tests::orphaned_tool_call_gets_synthetic_result ... ok [INFO] [stdout] test sigv4::tests::canonical_query_is_sorted_and_encoded ... ok [INFO] [stdout] test sigv4::tests::matches_aws_sdk_vector_for_single_encoded_wire_path ... ok [INFO] [stdout] test sigv4::tests::short_amz_date_does_not_panic ... ok [INFO] [stdout] test sigv4::tests::signing_is_deterministic_and_well_formed ... ok [INFO] [stdout] test sigv4::tests::trim_collapse_normalizes_whitespace ... ok [INFO] [stdout] test utils::aws_eventstream::tests::decodes_event_type_and_payload ... ok [INFO] [stdout] test utils::aws_eventstream::tests::malformed_frame_returns_exception_message ... ok [INFO] [stdout] test utils::abort::tests::next_or_abort_stops_pending_stream ... ok [INFO] [stdout] test utils::headers::tests::option_headers_are_used_without_model_headers ... ok [INFO] [stdout] test utils::json_parse::tests::empty ... ok [INFO] [stdout] test utils::headers::tests::option_headers_override_model_headers_case_insensitively ... ok [INFO] [stdout] test utils::aws_eventstream::tests::partial_frame_returns_none ... ok [INFO] [stdout] test utils::hash::tests::produces_deterministic_output ... ok [INFO] [stdout] test utils::json_parse::tests::trailing_comma ... ok [INFO] [stdout] test utils::headers::tests::invalid_header_name_is_rejected ... ok [INFO] [stdout] test stream::tests::clear_racing_with_stream_lookup_does_not_return_missing_provider_error ... ok [INFO] [stdout] test utils::json_parse::tests::unclosed_object ... ok [INFO] [stdout] test utils::json_parse::tests::unclosed_string_in_value ... ok [INFO] [stdout] test utils::oauth::anthropic::tests::authorize_url_contains_pkce_and_state ... ok [INFO] [stdout] test utils::oauth::anthropic::tests::client_id_decodes ... ok [INFO] [stdout] test utils::headers::tests::invalid_header_value_is_rejected ... ok [INFO] [stdout] test utils::event_stream::tests::result_resolves_before_drain ... ok [INFO] [stdout] test utils::event_stream::tests::iterates_to_done ... ok [INFO] [stdout] test utils::json_parse::tests::full_object ... ok [INFO] [stdout] test utils::oauth::anthropic::tests::parse_callback ... ok [INFO] [stdout] test utils::headers::tests::model_headers_are_used_without_option_headers ... ok [INFO] [stdout] test utils::oauth::anthropic::tests::parse_callback_no_query ... ok [INFO] [stdout] test utils::oauth::types::tests::credentials_debug_redacts_tokens ... ok [INFO] [stdout] test utils::openai_compat_url::tests::chat_completions_url_for_volces_coding ... ok [INFO] [stdout] test utils::openai_compat_url::tests::host_root_gets_v1 ... ok [INFO] [stdout] test utils::openai_compat_url::tests::non_v1_version_suffix_unchanged ... ok [INFO] [stdout] test utils::openai_compat_url::tests::responses_url_does_not_double_v1 ... ok [INFO] [stdout] test utils::openai_compat_url::tests::v1_suffix_unchanged ... ok [INFO] [stdout] test utils::overflow::tests::length_stop_zero_output ... ok [INFO] [stdout] test utils::overflow::tests::silent_overflow_via_usage ... ok [INFO] [stdout] test utils::retry::tests::backoff_grows_and_caps ... ok [INFO] [stdout] test utils::retry::tests::conflict_is_retryable ... ok [INFO] [stdout] test utils::retry::tests::status_codes_categorize ... ok [INFO] [stdout] test utils::sse::tests::eof_without_final_line_feed_flushes_current_event ... ok [INFO] [stdout] test utils::sse::tests::data_field_removes_only_one_leading_space ... ok [INFO] [stdout] test utils::retry::tests::retryable_reqwest_errors_exclude_request_builder_errors ... ok [INFO] [stdout] test utils::sse::tests::line_and_data_split_across_chunks_are_reassembled ... ok [INFO] [stdout] test utils::validation::tests::validation_fails_closed_while_unsupported ... ok [INFO] [stdout] test vertex_adc::tests::build_jwt_emits_three_dot_separated_parts ... ok [INFO] [stdout] test utils::retry::tests::retry_after_largest_convertible_seconds_reports_exact_milliseconds ... ok [INFO] [stdout] test utils::retry::tests::retry_after_seconds_overflow_is_delay_too_long ... ok [INFO] [stdout] test utils::sse::tests::multiple_events_are_emitted_fifo ... ok [INFO] [stdout] test vertex_adc::tests::access_token_debug_redacts_token ... ok [INFO] [stdout] test vertex_provider::tests::from_env_requires_project_and_one_auth_method ... ok [INFO] [stdout] test vertex_adc::tests::service_account_debug_redacts_private_key ... ok [INFO] [stdout] test vertex_adc::tests::load_service_account_parses_minimal_json ... ok [INFO] [stdout] test utils::overflow::tests::excludes_rate_limit ... ok [INFO] [stdout] test utils::overflow::tests::detects_anthropic_overflow ... ok [INFO] [stdout] test utils::overflow::tests::detects_openai_and_gemini ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 127 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] [stderr] Running tests/anthropic_sse_e2e.rs (/opt/rustwide/target/debug/deps/anthropic_sse_e2e-76201303758944f1) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test text_stream_produces_ordered_events ... ok [INFO] [stdout] test abort_cancels_pending_sse_drain ... ok [INFO] [stdout] test tool_use_sets_tooluse_stop_reason ... ok [INFO] [stdout] test http_error_becomes_error_event ... ok [INFO] [stdout] test refusal_stop_reason_becomes_error_event ... ok [INFO] [stdout] test abort_cancels_retry_sleep_before_second_request ... ok [INFO] [stderr] Running tests/models_catalog.rs (/opt/rustwide/target/debug/deps/models_catalog-ae234cd0672a3321) [INFO] [stdout] test retries_on_503_then_succeeds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test unknown_model_returns_none ... ok [INFO] [stdout] test apis_include_anthropic_messages ... ok [INFO] [stdout] test catalog_is_populated ... ok [INFO] [stdout] test known_anthropic_model_resolves ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running tests/provider_request_metadata.rs (/opt/rustwide/target/debug/deps/provider_request_metadata-17bc70d26506b813) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test invalid_custom_header_emits_error ... ok [INFO] [stdout] test codex_request_omits_max_output_tokens_by_default ... ok [INFO] [stdout] test options_headers_override_model_headers_case_insensitively ... ok [INFO] [stdout] test codex_replays_only_well_formed_encrypted_reasoning_in_mixed_history ... ok [INFO] [stdout] test responses_store_false_round_trip_preserves_interleaved_output_items ... ok [INFO] [stdout] test model_headers_override_provider_defaults ... ok [INFO] [stdout] test openai_completions_merges_model_headers_then_options_headers ... ok [INFO] [stdout] test options_headers_override_provider_defaults ... ok [INFO] [stdout] test codex_request_includes_max_output_tokens ... ok [INFO] [stdout] test codex_replays_encrypted_reasoning_items ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/provider_terminal_events.rs (/opt/rustwide/target/debug/deps/provider_terminal_events-57901a19500bd89d) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test openai_responses_eof_before_terminal_event_is_error ... ok [INFO] [stderr] Running tests/support_http.rs (/opt/rustwide/target/debug/deps/support_http-f052cf4c03b692e0) [INFO] [stdout] test codex_responses_wrapper_reuses_refusal_text_lifecycle ... ok [INFO] [stdout] test codex_responses_wrapper_done_usage_has_nonzero_cost ... ok [INFO] [stdout] test openai_responses_refusal_uses_complete_text_lifecycle ... ok [INFO] [stdout] test anthropic_eof_before_message_stop_is_error ... ok [INFO] [stdout] test openai_completions_eof_before_done_or_finish_reason_is_error ... ok [INFO] [stdout] test codex_responses_wrapper_reuses_generic_content_part_done_lifecycle ... ok [INFO] [stdout] test openai_responses_done_usage_has_nonzero_cost ... ok [INFO] [stdout] test openai_completions_done_usage_has_nonzero_cost ... ok [INFO] [stdout] test openai_responses_generic_content_part_done_ends_before_terminal ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test captures_request_body_when_tcp_writes_are_segmented ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knuth_agent-fa0825a1c7d98789) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test agent_loop::tests::length_done_reason_ends_turn_without_panic ... ok [INFO] [stdout] test agent_loop::tests::tooluse_done_reason_ends_turn_without_panic ... ok [INFO] [stdout] test agent_loop::tests::start_step_emits_started_and_ended_with_length_reason ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/knuth_cli-9697778e80104e1f) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test config::tests::default_config_path_uses_xdg_config_home ... ok [INFO] [stdout] test config::tests::yaml_options_fill_stream_options ... ok [INFO] [stdout] test config::tests::yaml_file_shape_parses ... ok [INFO] [stdout] test tests::parses_config_path ... ok [INFO] [stdout] test config::tests::api_env_can_create_custom_anthropic_model ... ok [INFO] [stdout] test config::tests::bare_model_with_base_url_uses_openai_responses ... ok [INFO] [stdout] test config::tests::chatgpt_provider_alias_uses_codex_protocol ... ok [INFO] [stdout] test config::tests::provider_prefix_selects_codex_catalog_model ... ok [INFO] [stdout] test config::tests::provider_prefix_can_use_third_party_anthropic_base_url ... ok [INFO] [stdout] test config::tests::codex_auth_json_without_expires_at_is_accepted ... ok [INFO] [stdout] test config::tests::codex_model_reads_auth_json_next_to_config_file ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knuth_core-9aa06156e61dedc3) [INFO] [stdout] [INFO] [stderr] Doc-tests ai [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests knuth_agent [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests knuth_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1", kill_on_drop: false }` [INFO] [stdout] 903bad66dbe748fbb847b9fdfd8daa4687e1d6fb9aaa0a3b1016bc0aad194fd1