[INFO] fetching crate parlov-elicit 0.4.0...
[INFO] testing parlov-elicit-0.4.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate parlov-elicit 0.4.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate parlov-elicit 0.4.0
[INFO] finished tweaking crates.io crate parlov-elicit 0.4.0
[INFO] tweaked toml for crates.io crate parlov-elicit 0.4.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate parlov-elicit 0.4.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate parlov-elicit 0.4.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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1a24b3a3638694ec3a83646f433422371a9fe09d7a57dbcd090e3fb8252da62c
[INFO] running `Command { std: "docker" "start" "-a" "1a24b3a3638694ec3a83646f433422371a9fe09d7a57dbcd090e3fb8252da62c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a24b3a3638694ec3a83646f433422371a9fe09d7a57dbcd090e3fb8252da62c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a24b3a3638694ec3a83646f433422371a9fe09d7a57dbcd090e3fb8252da62c", kill_on_drop: false }`
[INFO] [stdout] 1a24b3a3638694ec3a83646f433422371a9fe09d7a57dbcd090e3fb8252da62c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 386e1fd8550f33bb4642daacce971acff2f32109967e29aa6825b6acd265bdf0
[INFO] running `Command { std: "docker" "start" "-a" "386e1fd8550f33bb4642daacce971acff2f32109967e29aa6825b6acd265bdf0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling hybrid-array v0.4.8
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling parlov-core v0.6.0
[INFO] [stderr]    Compiling parlov-elicit v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.05s
[INFO] running `Command { std: "docker" "inspect" "386e1fd8550f33bb4642daacce971acff2f32109967e29aa6825b6acd265bdf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "386e1fd8550f33bb4642daacce971acff2f32109967e29aa6825b6acd265bdf0", kill_on_drop: false }`
[INFO] [stdout] 386e1fd8550f33bb4642daacce971acff2f32109967e29aa6825b6acd265bdf0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 20e88ef6772d9813c8c23cad60f8a95e5f14b8138d24977d67bb0c62e552732e
[INFO] running `Command { std: "docker" "start" "-a" "20e88ef6772d9813c8c23cad60f8a95e5f14b8138d24977d67bb0c62e552732e", kill_on_drop: false }`
[INFO] [stderr]    Compiling parlov-elicit v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.22s
[INFO] running `Command { std: "docker" "inspect" "20e88ef6772d9813c8c23cad60f8a95e5f14b8138d24977d67bb0c62e552732e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20e88ef6772d9813c8c23cad60f8a95e5f14b8138d24977d67bb0c62e552732e", kill_on_drop: false }`
[INFO] [stdout] 20e88ef6772d9813c8c23cad60f8a95e5f14b8138d24977d67bb0c62e552732e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b03500bdc10fc4e193cd8281b3963620e16483aecfb6b33357928f25edaaf0bb
[INFO] running `Command { std: "docker" "start" "-a" "b03500bdc10fc4e193cd8281b3963620e16483aecfb6b33357928f25edaaf0bb", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/parlov_elicit-cd286822aadf2980)
[INFO] [stdout] 
[INFO] [stdout] running 303 tests
[INFO] [stdout] test context::tests::known_duplicate_fields_accessible ... ok
[INFO] [stdout] test context::tests::state_field_fields_accessible ... ok
[INFO] [stdout] test context::tests::scan_context_all_none_fields_accessible ... ok
[INFO] [stdout] test context::tests::scan_context_all_some_fields_accessible ... ok
[INFO] [stdout] test existence::cache_probing::accept::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::accept::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_match::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::accept::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::accept::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::if_match::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_match::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::if_match::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::accept::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_modified_since::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_match::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_modified_since::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::if_modified_since::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_modified_since::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::if_none_match::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_none_match::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::if_none_match::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_modified_since::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::if_none_match::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::if_range::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::if_range::tests::generates_probe_with_correct_headers ... ok
[INFO] [stdout] test existence::cache_probing::if_unmodified_since::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_unmodified_since::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_none_match::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::range_satisfiable::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::range_satisfiable::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::range_satisfiable::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::cache_probing::if_unmodified_since::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::range_satisfiable::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::if_unmodified_since::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::cache_probing::if_unmodified_since::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::range_unsatisfiable::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::range_unsatisfiable::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::range_unsatisfiable::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::garble_url_fallback_when_single_segment ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::garble_url_replaces_parent_segment ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::range_unsatisfiable::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::generates_get_method ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::probe_url_is_garbled ... ok
[INFO] [stdout] test existence::cache_probing::if_range::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::cache_probing::if_range::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::cache_probing::range_satisfiable::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::cache_probing::range_unsatisfiable::tests::generates_probe_with_correct_header ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::baseline_url_has_baseline_id ... ok
[INFO] [stdout] test existence::error_message_granularity::app_vs_server_404::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::error_message_granularity::bola::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::bola::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::bola::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::bola::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::error_message_granularity::fk_violation::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::fk_violation::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::fk_violation::tests::generates_delete_method ... ok
[INFO] [stdout] test existence::error_message_granularity::bola::tests::generates_get_method ... ok
[INFO] [stdout] test existence::error_message_granularity::fk_violation::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::generates_get_method ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::error_message_granularity::query_validation::tests::urls_have_query_param ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::generates_patch_method ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::has_content_type_json ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::has_malformed_body ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::fk_violation::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_patch::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::generates_put_method ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::has_content_type_json ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::has_malformed_body ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::error_message_granularity::schema_validation_put::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::generates_correct_technique_strength ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::generates_correct_technique_vector ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::generates_post_method ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::not_applicable_without_body_template ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::both_sides_manipulated ... ok
[INFO] [stdout] test existence::error_message_granularity::state_conflict::tests::is_applicable_with_body_template ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::query_string_preserved ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::case_variation::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::query_string_preserved ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::double_slash_inserted_at_path_start ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::both_sides_manipulated ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::both_sides_manipulated ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::encodes_first_alnum_correctly ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::query_string_preserved ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::both_sides_have_content_type_json ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::double_slash::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::method_is_post ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::method_is_put ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::both_sides_manipulated ... ok
[INFO] [stdout] test existence::redirect_diff::percent_encoding::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::both_sides_have_content_type_json ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::post_to_303::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::redirect_diff::protocol_upgrade::tests::non_https_url_returned_unchanged ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::both_sides_have_slash_stripped ... ok
[INFO] [stdout] test existence::redirect_diff::put_to_303::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::generates_correct_method_count ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::is_always_applicable ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::query_string_preserved ... ok
[INFO] [stdout] test existence::redirect_diff::slash_append::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::baseline_and_probe_same_manipulation ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::both_sides_have_slash_appended ... ok
[INFO] [stdout] test existence::cache_probing::if_range::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::technique_vector_is_redirect_diff ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::all_items_are_pair_variants ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::get_pair_baseline_lacks_accept_header ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::get_pair_probe_has_accept_header ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::methods_contains_get_and_head ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::head_pair_probe_method_is_head ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::is_applicable_always_true ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::technique_vector_is_status_code_diff ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::is_applicable_false_without_auth_header ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::is_applicable_true_with_auth_header ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::probe_lacks_authorization_header ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::baseline_url_is_unmodified ... ok
[INFO] [stdout] test existence::status_code_diff::auth_strip::tests::baseline_has_authorization_header ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::query_string_is_not_uppercased ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::probe_url_path_is_uppercased ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::accept::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::case_normalize::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::content_type::tests::probe_has_invalid_content_type ... ok
[INFO] [stdout] test existence::status_code_diff::dependency_delete::tests::generate_returns_one_item ... ok
[INFO] [stdout] test existence::status_code_diff::content_type::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::dependency_delete::tests::item_is_pair_variant ... ok
[INFO] [stdout] test existence::status_code_diff::empty_body::tests::both_body_is_empty_json_object ... ok
[INFO] [stdout] test existence::status_code_diff::content_type::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::dependency_delete::tests::risk_is_operation_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::empty_body::tests::both_have_application_json_content_type ... ok
[INFO] [stdout] test existence::status_code_diff::empty_body::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::content_type::tests::generate_returns_three_items ... ok
[INFO] [stdout] test existence::status_code_diff::empty_body::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::empty_body::tests::generate_returns_three_items ... ok
[INFO] [stdout] test existence::status_code_diff::if_match::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::if_match::tests::probe_has_if_match_bogus_etag ... ok
[INFO] [stdout] test existence::status_code_diff::if_match::tests::delete_pair_probe_has_no_body ... ok
[INFO] [stdout] test existence::status_code_diff::if_match::tests::technique_strength_is_must ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::baseline_lacks_if_none_match_header ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::generate_returns_two_pair_items ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::is_applicable_always_true ... ok
[INFO] [stdout] test existence::status_code_diff::dependency_delete::tests::probe_body_is_none ... ok
[INFO] [stdout] test existence::status_code_diff::dependency_delete::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::long_uri::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::long_uri::tests::probe_url_length_meets_target ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::both_sides_carry_authorization_header ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::is_applicable_false_without_auth ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::technique_strength_is_must ... ok
[INFO] [stdout] test existence::status_code_diff::long_uri::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::long_uri::tests::baseline_url_is_unmodified ... ok
[INFO] [stdout] test existence::status_code_diff::if_match::tests::generate_returns_three_items ... ok
[INFO] [stdout] test existence::status_code_diff::if_none_match::tests::probe_has_if_none_match_star ... ok
[INFO] [stdout] test existence::status_code_diff::long_uri::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::oversized_body::tests::generate_returns_three_items ... ok
[INFO] [stdout] test existence::status_code_diff::oversized_body::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::oversized_body::tests::probe_has_spoofed_content_length ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::all_items_are_burst_variants ... ok
[INFO] [stdout] test existence::status_code_diff::oversized_body::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::baseline_url_uses_baseline_id ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::burst_count_is_100 ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::low_privilege::tests::is_applicable_true_with_auth ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::risk_is_operation_destructive ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_burst::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::all_items_are_header_diff_variants ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::baseline_and_probe_use_ctx_headers_unmodified ... ok
[INFO] [stdout] test existence::redirect_diff::slash_strip::tests::query_string_preserved ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::is_applicable_always_true ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::rate_limit_headers::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::is_applicable_false_when_alt_credential_none ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::is_applicable_true_when_alt_credential_some ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::probe_uses_alt_credential_headers ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::scope_manipulation::tests::technique_strength_is_should ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::generate_returns_two_items_when_applicable ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::risk_is_method_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::is_applicable_true_when_state_field_some ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::generate_returns_two_items ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::probe_url_gains_slash_when_absent ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::baseline_url_is_unmodified ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::probe_url_loses_slash_when_present ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::risk_is_safe ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::is_applicable_false_when_state_field_none ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::is_applicable_true_when_known_duplicate_some ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::probe_body_contains_duplicate_field ... ok
[INFO] [stdout] test existence::status_code_diff::state_transition::tests::probe_body_contains_state_field_as_valid_json ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::risk_is_operation_destructive ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::technique_strength_is_may ... ok
[INFO] [stdout] test existence::status_code_diff::trailing_slash::tests::trailing_slash_toggle_preserves_query_string ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::is_applicable_false_when_known_duplicate_none ... ok
[INFO] [stdout] test existence::status_code_diff::uniqueness::tests::generate_returns_two_items_when_applicable ... ok
[INFO] [stdout] test registry::tests::all_strategy_ids_are_unique ... ok
[INFO] [stdout] test registry::tests::all_strategies_returns_exactly_40 ... ok
[INFO] [stdout] test registry::tests::risk_distribution_is_26_11_3 ... ok
[INFO] [stdout] test strategy::tests::test_strategy_generate_returns_pair ... ok
[INFO] [stdout] test registry::tests::all_specs_have_known_vector ... ok
[INFO] [stdout] test registry::tests::no_alt_credential_excludes_scope_manipulation ... ok
[INFO] [stdout] test strategy::tests::test_strategy_is_applicable_returns_true ... ok
[INFO] [stdout] test registry::tests::no_known_duplicate_excludes_uniqueness ... ok
[INFO] [stdout] test strategy::tests::strategy_is_object_safe ... ok
[INFO] [stdout] test types::tests::probe_pair_fields_accessible ... ok
[INFO] [stdout] test registry::tests::method_destructive_ceiling_excludes_op_destructive ... ok
[INFO] [stdout] test types::tests::probe_spec_burst_variant_accessible ... ok
[INFO] [stdout] test registry::tests::no_auth_excludes_auth_strip_and_low_privilege ... ok
[INFO] [stdout] test types::tests::burst_spec_fields_accessible ... ok
[INFO] [stdout] test registry::tests::full_plan_returns_at_least_42_specs ... ok
[INFO] [stdout] test registry::tests::all_specs_have_populated_technique_id ... ok
[INFO] [stdout] test registry::tests::safe_filter_excludes_method_and_op_destructive ... ok
[INFO] [stdout] test registry::tests::no_state_field_excludes_state_transition ... ok
[INFO] [stdout] test types::tests::probe_spec_header_diff_variant_accessible ... ok
[INFO] [stdout] test types::tests::probe_spec_pair_variant_accessible ... ok
[INFO] [stdout] test types::tests::risk_level_method_destructive_roundtrip ... ok
[INFO] [stdout] test types::tests::probe_spec_technique_accessor_returns_correct_technique ... ok
[INFO] [stdout] test types::tests::risk_level_safe_less_than_method_destructive ... ok
[INFO] [stdout] test types::tests::risk_level_safe_less_than_operation_destructive ... ok
[INFO] [stdout] test types::tests::strategy_metadata_fields_accessible ... ok
[INFO] [stdout] test types::tests::risk_level_method_destructive_less_than_operation_destructive ... ok
[INFO] [stdout] test util::tests::build_pair_body_present_when_some ... ok
[INFO] [stdout] test util::tests::build_pair_body_template_substituted_when_no_explicit_body ... ok
[INFO] [stdout] test util::tests::build_pair_explicit_body_overrides_template ... ok
[INFO] [stdout] test util::tests::build_pair_baseline_url_uses_baseline_id ... ok
[INFO] [stdout] test util::tests::build_pair_headers_assigned_to_correct_side ... ok
[INFO] [stdout] test util::tests::build_pair_method_set_on_both_definitions ... ok
[INFO] [stdout] test util::tests::build_pair_body_none_when_none ... ok
[INFO] [stdout] test util::tests::build_pair_probe_url_uses_probe_id ... ok
[INFO] [stdout] test util::tests::clone_headers_with_new_header_present ... ok
[INFO] [stdout] test util::tests::clone_headers_with_overwrites_existing_key ... ok
[INFO] [stdout] test util::tests::clone_headers_with_preserves_existing_headers ... ok
[INFO] [stdout] test util::tests::clone_headers_without_preserves_other_headers ... ok
[INFO] [stdout] test util::tests::clone_headers_without_removes_named_header ... ok
[INFO] [stdout] test util::tests::json_body_empty_slice_produces_empty_object ... ok
[INFO] [stdout] test util::tests::substitute_body_no_placeholder_returns_template_unchanged ... ok
[INFO] [stdout] test util::tests::clone_headers_without_noop_when_key_absent ... ok
[INFO] [stdout] test util::tests::substitute_url_replaces_placeholder ... ok
[INFO] [stdout] test util::tests::json_body_multiple_fields ... ok
[INFO] [stdout] test util::tests::json_body_roundtrips_through_serde ... ok
[INFO] [stdout] test util::tests::json_body_single_field ... ok
[INFO] [stdout] test util::tests::substitute_body_none_template_returns_none ... ok
[INFO] [stdout] test util::tests::substitute_body_replaces_placeholder ... ok
[INFO] [stdout] test util::tests::substitute_url_no_placeholder_returns_unchanged ... ok
[INFO] [stdout] test util::tests::substitute_url_replaces_only_first_occurrence ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 303 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests parlov_elicit
[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" "b03500bdc10fc4e193cd8281b3963620e16483aecfb6b33357928f25edaaf0bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b03500bdc10fc4e193cd8281b3963620e16483aecfb6b33357928f25edaaf0bb", kill_on_drop: false }`
[INFO] [stdout] b03500bdc10fc4e193cd8281b3963620e16483aecfb6b33357928f25edaaf0bb
