[INFO] cloning repository https://github.com/bedair81/wordle-solver
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bedair81/wordle-solver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedair81%2Fwordle-solver", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedair81%2Fwordle-solver'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d6e8d657372c5ca1951a8faba8060feb7bdf36d7
[INFO] testing bedair81/wordle-solver against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedair81%2Fwordle-solver" "/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/bedair81/wordle-solver
[INFO] finished tweaking git repo https://github.com/bedair81/wordle-solver
[INFO] tweaked toml for git repo https://github.com/bedair81/wordle-solver written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bedair81/wordle-solver 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/bedair81/wordle-solver 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] 3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6
[INFO] running `Command { std: "docker" "start" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", 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" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6" "/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" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", 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" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling wordle-solver v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.72s
[INFO] running `Command { std: "docker" "inspect" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", 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" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6" "/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 wordle-solver v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.32s
[INFO] running `Command { std: "docker" "inspect" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", 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" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6" "/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.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wordle_solver-f531b518994626df)
[INFO] [stdout] 
[INFO] [stdout] running 92 tests
[INFO] [stdout] test core::config::tests::default_opening_is_slate ... ok
[INFO] [stdout] test core::config::tests::exact_endgame_at_least_legacy_eight ... ok
[INFO] [stdout] test core::config::tests::resolve_cache_dir_prefers_override ... ok
[INFO] [stdout] test core::feedback::tests::all_correct_is_win ... ok
[INFO] [stdout] test core::feedback::tests::alloy_vs_hello ... ok
[INFO] [stdout] test core::feedback::tests::matches_declared_pattern ... ok
[INFO] [stdout] test core::feedback::tests::robot_vs_brood ... ok
[INFO] [stdout] test core::feedback::tests::speed_vs_eerie ... ok
[INFO] [stdout] test core::feedback::tests::feedback_properties_on_sample_pairs ... ok
[INFO] [stdout] test core::cache::tests::cache_invalid_on_wordlist_change ... ok
[INFO] [stdout] test core::cache::tests::cache_miss_then_hit_round_trip ... ok
[INFO] [stdout] test core::filter::tests::agree_remains_with_nyt_feedback ... ok
[INFO] [stdout] test core::filter::tests::filters_with_guess_outside_dictionary ... ok
[INFO] [stdout] test core::filter::tests::emoji_matches_history_in_answer_list ... ok
[INFO] [stdout] test core::hard_mode::tests::aggregates_constraints_across_turns ... ok
[INFO] [stdout] test core::hard_mode::tests::assemble_guess_with_fixed_greens ... ok
[INFO] [stdout] test core::hard_mode::tests::conflicting_greens_across_turns_rejected ... ok
[INFO] [stdout] test core::hard_mode::tests::filter_can_yield_empty_pool ... ok
[INFO] [stdout] test core::hard_mode::tests::filter_empty_history_returns_full_pool ... ok
[INFO] [stdout] test core::hard_mode::tests::filter_nonempty_history_is_strict_subset ... ok
[INFO] [stdout] test core::hard_mode::tests::impossible_min_letter_count_rejected ... ok
[INFO] [stdout] test core::hard_mode::tests::known_green_letters_from_history ... ok
[INFO] [stdout] test core::hard_mode::tests::prefill_feedback_tiles_after_audio ... ok
[INFO] [stdout] test core::hard_mode::tests::repeated_green_same_letter_does_not_stack ... ok
[INFO] [stdout] test core::hard_mode::tests::requires_green_position ... ok
[INFO] [stdout] test core::hard_mode::tests::requires_yellow_letter_count ... ok
[INFO] [stdout] test core::hard_mode::tests::requires_yellow_letters ... ok
[INFO] [stdout] test core::filter::tests::filters_by_single_turn ... ok
[INFO] [stdout] test core::filter::tests::filter_in_place_matches_collect ... ok
[INFO] [stdout] test core::patterns::tests::from_parts_matches_build ... ok
[INFO] [stdout] test core::session::tests::encode_decode_preserves_fields ... ok
[INFO] [stdout] test core::game::tests::configurable_opener_used_on_empty_history ... ok
[INFO] [stdout] test core::game::tests::apply_turn_rejects_invalid_guess_word ... ok
[INFO] [stdout] test core::patterns::tests::cache_matches_live_feedback ... ok
[INFO] [stdout] test core::patterns::tests::build_buckets_for_unknown_guess_matches_live ... ok
[INFO] [stdout] test core::solver::candidates::tests::followup_pool_excludes_prior_guesses ... ok
[INFO] [stdout] test core::solver::candidates::tests::small_remaining_candidates_are_hard_mode_compliant ... ok
[INFO] [stdout] test core::solver::candidates::tests::should_run_three_ply_window ... ok
[INFO] [stdout] test core::solver::candidates::tests::two_remaining_always_hard_mode_compliant ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_expected_guesses_primary_when_both_refined ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_both_sufficient_prefers_smaller_worst_bucket ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_partition_branch_active_at_four_not_five_turns ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_prefers_higher_two_ply_when_expected_guesses_tie ... ok
[INFO] [stdout] test core::game::tests::apply_turn_rejects_missing_yellow_letter ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_prefers_sufficient_partition_when_turns_tight ... ok
[INFO] [stdout] test core::game::tests::easy_mode_allows_hard_mode_violation ... ok
[INFO] [stdout] test core::solver::candidates::tests::followup_matches_main_pool_for_suffix_cluster ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_unrefined_uses_epsilon_two_ply ... ok
[INFO] [stdout] test core::game::tests::record_turn_accepts_compliant_guess ... ok
[INFO] [stdout] test core::game::tests::commit_after_solved_returns_game_over ... ok
[INFO] [stdout] test core::game::tests::record_turn_accepts_off_list_word ... ok
[INFO] [stdout] test core::game::tests::record_turn_rejects_wrong_green_position ... ok
[INFO] [stdout] test core::solver::score::tests::compare_one_ply_prefers_smaller_worst_bucket_on_entropy_tie ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_trusts_refined_expected_guesses_over_one_ply_gap ... ok
[INFO] [stdout] test core::solver::score::tests::partition_sufficient_boundary_cases ... ok
[INFO] [stdout] test core::solver::score::tests::pattern_bucket_index_covers_all_tiles ... ok
[INFO] [stdout] test core::game::tests::interactive_suggestion_within_budget ... ok
[INFO] [stdout] test core::game::tests::suggest_next_none_when_game_over ... ok
[INFO] [stdout] test core::solver::score::tests::prefers_possible_answer_on_one_ply_tie ... ok
[INFO] [stdout] test core::solver::score::tests::win_pattern_bucket_is_last ... ok
[INFO] [stdout] test core::game::tests::incremental_filter_matches_full_recompute ... ok
[INFO] [stdout] test core::session::tests::session_round_trip_save_load ... ok
[INFO] [stdout] test core::filter::tests::filter_by_history_matches_collect_chain ... ok
[INFO] [stdout] test core::solver::second_guess::tests::lookup_requires_matching_opener_and_single_turn ... ok
[INFO] [stdout] test core::solver::tests::compute_suggestion_empty_pool_returns_none ... ok
[INFO] [stdout] test core::solver::second_guess::tests::table_has_expected_len ... ok
[INFO] [stdout] test core::filter::tests::filters_by_history ... ok
[INFO] [stdout] test core::solver::score::tests::remaining_mass_prefers_discriminative_letters ... ok
[INFO] [stdout] test core::solver::tests::configurable_opening_is_used ... ok
[INFO] [stdout] test core::solver::tests::opening_guess_is_instant ... ok
[INFO] [stdout] test core::solver::tests::opening_guess_is_valid ... ok
[INFO] [stdout] test core::solver::tests::shares_fixed_suffix_detects_ound_cluster ... ok
[INFO] [stdout] test core::solver::tests::single_remaining_compliant_returns_that_word ... ok
[INFO] [stdout] test core::solver::tests::single_remaining_non_compliant_returns_none ... ok
[INFO] [stdout] test core::words::tests::loads_expected_counts ... ok
[INFO] [stdout] test core::word::tests::rejects_invalid_word ... ok
[INFO] [stdout] test core::words::tests::shared_lists_are_same_arc ... ok
[INFO] [stdout] test core::word::tests::parses_valid_word ... ok
[INFO] [stdout] test core::words::tests::pattern_cache_matches_feedback ... ok
[INFO] [stdout] test core::solver::tests::suggests_from_remaining ... ok
[INFO] [stdout] test core::solver::tests::suggestion_job_lifecycle_and_stale_generation ... ok
[INFO] [stdout] test core::solver::score::tests::score_two_ply_zero_for_single_remaining ... ok
[INFO] [stdout] test core::solver::score::tests::score_two_ply_sets_refined_and_finite_expected_guesses ... ok
[INFO] [stdout] test core::solver::score::tests::compare_final_orders_real_scored_guesses ... ok
[INFO] [stdout] test core::solver::tests::suffix_offlist_probe_path_reports_score_one_ply_metrics ... ok
[INFO] [stdout] test core::solver::tests::easy_mode_can_suggest_non_hard_mode_word ... ok
[INFO] [stdout] test core::solver::tests::suggestions_satisfy_hard_mode ... ok
[INFO] [stdout] test core::words::tests::disk_cache_second_load_is_hit ... ok
[INFO] [stdout] test core::solver::tests::exact_endgame_solves_ound_cluster ... ok
[INFO] [stdout] test core::solver::tests::auto_solve_history_is_compliant_and_wins has been running for over 60 seconds
[INFO] [stdout] test core::solver::tests::auto_solves_pound_and_wound has been running for over 60 seconds
[INFO] [stdout] test core::solver::tests::compute_suggestion_with_turns_left_differs_from_open_ended has been running for over 60 seconds
[INFO] [stdout] test core::solver::tests::auto_solves_pound_and_wound ... ok
[INFO] [stdout] test core::solver::tests::compute_suggestion_with_turns_left_differs_from_open_ended ... ok
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6", kill_on_drop: false }`
[INFO] [stdout] 3d67d597c9a42c6bfded273191da52a06412eb19e6ea38c5a1edb1c4d2d683c6
