[INFO] fetching crate smithers 0.1.1...
[INFO] testing smithers-0.1.1 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate smithers 0.1.1 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate smithers 0.1.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate smithers 0.1.1
[INFO] tweaked toml for crates.io crate smithers 0.1.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate smithers 0.1.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate smithers 0.1.1 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.100.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-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e
[INFO] running `Command { std: "docker" "start" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", 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" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", 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" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling smithers v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 33.23s
[INFO] running `Command { std: "docker" "inspect" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", 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" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling smithers v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 30.48s
[INFO] running `Command { std: "docker" "inspect" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", 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" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/smithers/f4ae40104429418d/out/smithers-f4ae40104429418d)
[INFO] [stdout] 
[INFO] [stdout] running 221 tests
[INFO] [stdout] test agent::parse::tests::prompt_body_preserves_markdown ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::build_args_json_format ... ok
[INFO] [stdout] test agent::parse::tests::parse_valid_agent ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::build_args_text_format_no_overrides ... ok
[INFO] [stdout] test agent::parse::tests::missing_closing_delimiter ... ok
[INFO] [stdout] test agent::parse::tests::crlf_line_endings ... ok
[INFO] [stdout] test agent::parse::tests::invalid_yaml ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::build_args_with_params ... ok
[INFO] [stdout] test agent::parse::tests::closing_delimiter_at_eof_without_trailing_newline ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::command_returns_claude ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::supported_formats_returns_all_three ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_acp_format_falls_back_to_json ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_json_format ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_starts_with_exec_subcommand ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::build_args_with_model ... ok
[INFO] [stdout] test agent::parse::tests::leading_whitespace_before_delimiter_is_tolerated ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_text_format_no_overrides ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_translates_effort_to_config_override ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_with_model ... ok
[INFO] [stdout] test backend::custom::custom_backend::tests::command_returns_configured_command ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::build_args_with_params ... ok
[INFO] [stdout] test agent::parse::tests::parse_multiple_outputs_preserves_order ... ok
[INFO] [stdout] test backend::custom::custom_backend::tests::supported_formats_text_only ... ok
[INFO] [stdout] test backend::factory::tests::create_codex_backend_succeeds ... ok
[INFO] [stdout] test agent::parse::tests::empty_outputs_returns_no_outputs ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::command_returns_codex ... ok
[INFO] [stdout] test backend::codex::codex_backend::tests::supported_formats_text_first ... ok
[INFO] [stdout] test backend::claude_code::claude_code_backend::tests::build_args_acp_format_includes_print_and_verbose ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_acp_format_includes_stream_json ... ok
[INFO] [stdout] test backend::factory::tests::create_custom_backend_succeeds ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_with_params ... ok
[INFO] [stdout] test backend::factory::tests::create_opencode_backend_succeeds ... ok
[INFO] [stdout] test agent::parse::tests::extra_dashes_not_treated_as_delimiter ... ok
[INFO] [stdout] test backend::factory::tests::create_unknown_backend_returns_error ... ok
[INFO] [stdout] test backend::factory::tests::is_known_backend_codex ... ok
[INFO] [stdout] test backend::factory::tests::is_known_backend_claude ... ok
[INFO] [stdout] test backend::factory::tests::is_known_backend_gemini ... ok
[INFO] [stdout] test backend::factory::tests::is_known_backend_opencode ... ok
[INFO] [stdout] test backend::factory::tests::is_known_backend_unknown ... ok
[INFO] [stdout] test backend::factory::tests::create_claude_backend_succeeds ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_drops_effort_param ... ok
[INFO] [stdout] test backend::factory::tests::create_gemini_backend_succeeds ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::command_returns_gemini ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::command_returns_opencode ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_text_format_no_overrides ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_translates_effort_to_variant ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_with_model ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::supported_formats_text_first ... ok
[INFO] [stdout] test backend::resolve::tests::empty_formats_returns_error ... ok
[INFO] [stdout] test backend::resolve::tests::returns_first_supported ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_text_format_no_overrides ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_json_format ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::build_args_with_model ... ok
[INFO] [stdout] test backend::gemini_cli::gemini_cli_backend::tests::supported_formats_text_first ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_acp_format_includes_format_json ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_json_format ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_passes_through_unknown_params ... ok
[INFO] [stdout] test checkpoint::read::tests::read_hand_written_toml ... ok
[INFO] [stdout] test checkpoint::read::tests::checkpoint_not_found_includes_feature_name ... ok
[INFO] [stdout] test backend::opencode::opencode_backend::tests::build_args_starts_with_run_subcommand ... ok
[INFO] [stdout] test config::find::tests::returns_error_when_not_found ... ok
[INFO] [stdout] test checkpoint::write::tests::write_creates_valid_toml_file ... ok
[INFO] [stdout] test config::load::tests::parse_config_with_custom_backend_no_invariant_args ... ok
[INFO] [stdout] test config::load::tests::malformed_toml_returns_config_error_parse ... ok
[INFO] [stdout] test config::load::tests::parse_config_with_global_model ... ok
[INFO] [stdout] test checkpoint::read::tests::read_nonexistent_returns_checkpoint_not_found ... ok
[INFO] [stdout] test config::load::tests::parse_config_with_max_retries_override ... ok
[INFO] [stdout] test checkpoint::read::tests::round_trip_write_then_read ... ok
[INFO] [stdout] test engine::caveman::tests::each_preamble_contains_not_yes_anchor ... ok
[INFO] [stdout] test engine::caveman::tests::each_preamble_contains_persistence_directive ... ok
[INFO] [stdout] test engine::caveman::tests::parse_all_levels ... ok
[INFO] [stdout] test config::load::tests::parse_config_with_custom_backend ... ok
[INFO] [stdout] test engine::caveman::tests::parse_is_case_insensitive ... ok
[INFO] [stdout] test engine::caveman::tests::parse_rejects_invalid ... ok
[INFO] [stdout] test config::load::tests::parse_minimal_config ... ok
[INFO] [stdout] test engine::caveman::tests::preamble_contains_signal_guard_for_every_level ... ok
[INFO] [stdout] test config::find::tests::finds_smithers_in_current_dir ... ok
[INFO] [stdout] test engine::format_line::tests::empty_line_skipped ... ok
[INFO] [stdout] test engine::format_line::tests::json_without_type_skipped ... ok
[INFO] [stdout] test config::find::tests::skips_smithers_file_not_directory ... ok
[INFO] [stdout] test engine::format_line::tests::multiple_content_blocks ... ok
[INFO] [stdout] test config::find::tests::finds_smithers_in_parent_dir ... ok
[INFO] [stdout] test engine::caveman::tests::each_preamble_contains_distinguishing_token ... ok
[INFO] [stdout] test agent::parse::tests::missing_opening_delimiter ... ok
[INFO] [stdout] test engine::caveman::tests::each_preamble_exempts_commits ... ok
[INFO] [stdout] test engine::format_line::tests::non_json_passed_through ... ok
[INFO] [stdout] test engine::caveman::tests::off_parses_to_none ... ok
[INFO] [stdout] test engine::format_line::tests::thinking_block_skipped ... ok
[INFO] [stdout] test engine::format_line::tests::tool_use_empty_input_shows_name_only ... ok
[INFO] [stdout] test engine::format_line::tests::tool_use_multiline_command_shows_first_line ... ok
[INFO] [stdout] test engine::format_line::tests::tool_use_shows_name_with_command ... ok
[INFO] [stdout] test engine::format_line::tests::tool_use_shows_name_with_file_path ... ok
[INFO] [stdout] test engine::format_line::tests::user_message_skipped ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_0_with_one_transition_returns_that_key ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_0_with_three_transitions_returns_first_key ... ok
[INFO] [stdout] test engine::format_line::tests::result_shows_summary ... ok
[INFO] [stdout] test engine::caveman::tests::parse_trims_whitespace ... ok
[INFO] [stdout] test engine::format_line::tests::tool_result_skipped ... ok
[INFO] [stdout] test engine::format_line::tests::result_partial_fields ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_0_with_two_transitions_returns_first_key ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_1_with_one_transition_returns_insufficient ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_1_with_two_transitions_returns_second_key ... ok
[INFO] [stdout] test engine::hook_signal::tests::exit_nonzero_with_three_transitions_returns_second_key ... ok
[INFO] [stdout] test engine::hook_signal::tests::various_nonzero_codes_map_to_second_key ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_empty_output ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_last_assistant_message_wins ... ok
[INFO] [stdout] test engine::format_line::tests::system_message_skipped ... ok
[INFO] [stdout] test engine::format_line::tests::text_content_displayed ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_signal_on_own_line_in_text_block ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_skips_non_assistant_lines ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_tool_use_blocks_skipped ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_signal_in_assistant_text_block ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_mixed_json_and_plain_text ... ok
[INFO] [stdout] test engine::parse_signal::tests::json_invalid_json_falls_back_to_text ... ok
[INFO] [stdout] test engine::parse_signal::tests::acp_no_signal_returns_error ... ok
[INFO] [stdout] test engine::parse_signal::tests::json_invalid_signal_rejected ... ok
[INFO] [stdout] test engine::parse_signal::tests::json_no_signal_field_falls_back_to_text ... ok
[INFO] [stdout] test engine::parse_signal::tests::json_signal_field_extracted ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_case_sensitivity ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_empty_output ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_multiple_signals_last_one_wins ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_signal_as_substring_not_matched ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_multiple_valid_signals_correct_one_returned ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_signal_in_middle_with_text_after ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_signal_in_prose_then_different_signal_last ... ok
[INFO] [stdout] test engine::prompt::tests::all_six_levels_inject_distinguishing_token ... ok
[INFO] [stdout] test engine::prompt::tests::basic_prompt_no_retry ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_signal_on_last_line ... ok
[INFO] [stdout] test engine::prompt::tests::caveman_preamble_contains_signal_guard ... ok
[INFO] [stdout] test engine::prompt::tests::caveman_some_injects_preamble_between_handoff_and_signals ... ok
[INFO] [stdout] test engine::hook_signal::tests::process_killed_by_signal_returns_error ... ok
[INFO] [stdout] test engine::prompt::tests::preamble_with_incoming_signal ... ok
[INFO] [stdout] test engine::prompt::tests::preamble_without_incoming_signal ... ok
[INFO] [stdout] test engine::prompt::tests::signal_order_matches_indexmap ... ok
[INFO] [stdout] test engine::prompt::tests::with_retry_context ... ok
[INFO] [stdout] test checkpoint::write::tests::round_trip_preserves_fields ... ok
[INFO] [stdout] test checkpoint::write::tests::temp_file_cleaned_up_after_write ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_no_signal_in_output ... ok
[INFO] [stdout] test engine::prompt::tests::handoff_section_includes_feature_dir ... ok
[INFO] [stdout] test checkpoint::write::tests::toml_uses_renamed_keys ... ok
[INFO] [stdout] test engine::parse_signal::tests::text_signal_with_leading_trailing_whitespace ... ok
[INFO] [stdout] test engine::prompt::tests::all_sections_correct_order ... ok
[INFO] [stdout] test engine::prompt::tests::caveman_none_omits_response_style_section ... ok
[INFO] [stdout] test engine::run::tests::invalid_global_caveman_not_masked_by_step_override ... ok
[INFO] [stdout] test engine::tee_stdout::tests::tee_stdout_acp_skips_non_displayable ... ok
[INFO] [stdout] test engine::run::tests::invalid_step_caveman_not_masked_by_global ... ok
[INFO] [stdout] test engine::tee_stdout::tests::tee_stdout_empty_input ... ok
[INFO] [stdout] test error::smithers::tests::checkpoint_not_found_message ... ok
[INFO] [stdout] test error::signal::tests::display_message ... ok
[INFO] [stdout] test engine::run::tests::invalid_caveman_value_returns_validation_error ... ok
[INFO] [stdout] test error::smithers::tests::checkpoint_stale_message ... ok
[INFO] [stdout] test error::smithers::tests::config_error_from_toml ... ok
[INFO] [stdout] test error::smithers::tests::hook_error_message ... ok
[INFO] [stdout] hook-ok
[INFO] [stdout] test error::smithers::tests::no_transition_for_signal_message ... ok
[INFO] [stdout] test error::smithers::tests::max_iterations_message ... ok
[INFO] [stdout] test error::smithers::tests::max_retries_message ... ok
[INFO] [stdout] test error::smithers::tests::smithers_dir_not_found_message ... ok
[INFO] [stdout] test error::smithers::tests::validation_error_message ... ok
[INFO] [stdout] line one
[INFO] [stdout] test error::smithers::tests::backend_error_message ... ok
[INFO] [stdout] test error::validation::tests::display_errors_and_warnings ... ok
[INFO] [stdout] test error::validation::tests::display_errors_only ... ok
[INFO] [stdout] test error::smithers::tests::interrupted_message ... ok
[INFO] [stdout] test error::validation::tests::display_warnings_only ... ok
[INFO] [stdout] test init::scaffold::tests::init_agents_parse_correctly ... ok
[INFO] [stdout] line two
[INFO] [stdout] test error::validation::tests::has_errors_false ... ok
[INFO] [stdout] test error::validation::tests::has_errors_true ... ok
[INFO] [stdout] test init::scaffold::tests::init_fails_if_smithers_exists ... ok
[INFO] [stdout] test engine::tee_stdout::tests::tee_stdout_accumulates_output ... ok
[INFO] [stdout] test init::scaffold::tests::init_config_parses_correctly ... ok
[INFO] [stdout] test engine::run::tests::hook_exit_nonzero_follows_fail_transition ... ok
[INFO] [stdout] test init::scaffold::tests::init_creates_all_files ... ok
[INFO] [stdout] test validation::validate::tests::caveman_all_six_levels_accepted ... ok
[INFO] [stdout] test engine::run::tests::hook_exit_zero_completes_loop ... ok
[INFO] [stdout] hello
[INFO] [stdout] test init::scaffold::tests::init_gitignore_contains_features ... ok
[INFO] [stdout] test init::scaffold::tests::init_writes_correct_loop_content ... ok
[INFO] [stdout] test init::scaffold::tests::init_writes_correct_config_content ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test validation::validate::tests::caveman_off_accepted_at_both_layers ... ok
[INFO] [stdout] test init::scaffold::tests::init_loop_parses_correctly ... ok
[INFO] [stdout] test init::scaffold::tests::init_writes_correct_agent_content ... ok
[INFO] [stdout] test engine::tee_stdout::tests::tee_stdout_acp_preserves_raw_buffer ... ok
[INFO] [stdout] test validation::validate::tests::check10_backend_override_not_defined ... ok
[INFO] [stdout] test validation::validate::tests::check11_backend_cli_not_found ... ok
[INFO] [stdout] test validation::validate::tests::check12_hook_insufficient_transitions ... ok
[INFO] [stdout] test validation::validate::tests::caveman_global_bogus_value_rejected ... ok
[INFO] [stdout] test validation::validate::tests::caveman_step_bogus_value_rejected ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test validation::validate::tests::check4_agent_file_missing ... ok
[INFO] [stdout] test validation::validate::tests::check17_checkpoint_loop_mismatch ... ok
[INFO] [stdout] test engine::run::tests::loop_complete_on_first_step ... ok
[INFO] [stdout] test validation::validate::tests::check18_checkpoint_step_not_found ... ok
[INFO] [stdout] test validation::validate::tests::check13_reserved_step_name ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test validation::validate::tests::check4_agent_invalid_frontmatter ... ok
[INFO] [stdout] test validation::validate::tests::check9_default_backend_not_defined ... ok
[INFO] [stdout] test validation::validate::tests::check4_agent_no_outputs ... ok
[INFO] [stdout] test validation::validate::tests::check15_unreachable_step ... FAILED
[INFO] [stdout] test validation::validate::tests::check5_hook_script_not_executable ... ok
[INFO] [stdout] test validation::validate::tests::check6_transition_key_not_in_outputs ... ok
[INFO] [stdout] test engine::run::tests::sigint_flag_returns_interrupted ... ok
[INFO] [stdout] test validation::validate::tests::check3_entry_step_missing ... ok
[INFO] [stdout] test validation::validate::tests::check5_hook_script_missing ... ok
[INFO] [stdout] test workflow::load::tests::parse_agent_step_with_backend_table_model_only ... ok
[INFO] [stdout] test workflow::load::tests::parse_agent_step_with_backend_override_string ... ok
[INFO] [stdout] test validation::validate::tests::check7_output_without_transition ... ok
[INFO] [stdout] test workflow::load::tests::parse_agent_step_with_backend_override_table ... ok
[INFO] [stdout] test validation::validate::tests::check8_invalid_transition_target ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test workflow::load::tests::hook_transitions_preserve_insertion_order ... ok
[INFO] [stdout] test validation::validate::tests::checkpoint_valid_resume ... FAILED
[INFO] [stdout] test workflow::load::tests::parse_agent_step_with_max_retries ... ok
[INFO] [stdout] test validation::validate::tests::multiple_errors_collected ... ok
[INFO] [stdout] test workflow::load::tests::parse_valid_workflow_with_agent_and_hook_steps ... ok
[INFO] [stdout] test workflow::load::tests::malformed_toml_returns_workflow_parse_error ... ok
[INFO] [stdout] test validation::validate::tests::valid_config_no_errors_no_warnings ... ok
[INFO] [stdout] test workflow::load::tests::parse_tdd_workflow_from_prd ... ok
[INFO] [stdout] test workflow::load::tests::parse_agent_step_without_max_retries_defaults_none ... ok
[INFO] [stdout] test workflow::load::tests::parse_agent_step_without_backend_defaults_none ... ok
[INFO] [stdout] test workflow::load::tests::step_with_neither_agent_nor_hook_fails ... ok
[INFO] [stdout] INVALID
[INFO] [stdout] test engine::run::tests::max_iterations_exceeded ... ok
[INFO] [stdout] INVALID
[INFO] [stdout] test workflow::load::tests::untagged_distinguishes_agent_vs_hook ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test engine::run::tests::resume_continues_from_checkpoint ... ok
[INFO] [stdout] PASS
[INFO] [stdout] test engine::run::tests::agent_retry_backend_error_then_succeeds ... ok
[INFO] [stdout] INVALID
[INFO] [stdout] PASS
[INFO] [stdout] test engine::run::tests::max_retries_exhausted ... ok
[INFO] [stdout] test engine::run::tests::agent_retry_invalid_signal_then_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- validation::validate::tests::check15_unreachable_step stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'validation::validate::tests::check15_unreachable_step' (1109) panicked at src/validation/validate.rs:986:9:
[INFO] [stdout] assertion failed: !result.has_errors()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b654fd8c261 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5b654fda25ba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5b654fd9095c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5b654fd65e46 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5b654fd83859 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5b654fcfead0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5b654fd83b82 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5b654fd65f24 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5b654fd5e8f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5b654fd66cad - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5b654fda2d1c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5b654fda2ce2 - core[a373ad73a504971]::panicking::panic
[INFO] [stdout]   12:     0x5b654fc6e10b - <smithers[c06d43caf593faf6]::validation::validate::tests::check15_unreachable_step::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5b654fcf1f1b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   14:     0x5b654fcff0f5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5b654fcf89e4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5b654fd02182 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5b654fd8b56f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7ec973336dfa - <unknown>
[INFO] [stdout]   19:     0x7ec9733ca3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- validation::validate::tests::checkpoint_valid_resume stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'validation::validate::tests::checkpoint_valid_resume' (1127) panicked at src/validation/validate.rs:1053:9:
[INFO] [stdout] assertion failed: !result.has_errors()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b654fd8c261 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5b654fda25ba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5b654fd9095c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5b654fd65e46 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5b654fd83859 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5b654fcfead0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5b654fd83b82 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5b654fd65f24 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5b654fd5e8f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5b654fd66cad - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5b654fda2d1c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5b654fda2ce2 - core[a373ad73a504971]::panicking::panic
[INFO] [stdout]   12:     0x5b654fc6d742 - <smithers[c06d43caf593faf6]::validation::validate::tests::checkpoint_valid_resume::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5b654fcf1f1b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   14:     0x5b654fcff0f5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5b654fcf89e4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5b654fd02182 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5b654fd8b56f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7ec973336dfa - <unknown>
[INFO] [stdout]   19:     0x7ec9733ca3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     validation::validate::tests::check15_unreachable_step
[INFO] [stdout]     validation::validate::tests::checkpoint_valid_resume
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 219 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e", kill_on_drop: false }`
[INFO] [stdout] 5ec2c567ae8909ae7fd726a8188add2ef784e35c1972c12a51ea96ea88a3541e
