[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
