[INFO] fetching crate reviewal 0.1.0...
[INFO] testing reviewal-0.1.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate reviewal 0.1.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate reviewal 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate reviewal 0.1.0
[INFO] tweaked toml for crates.io crate reviewal 0.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate reviewal 0.1.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate reviewal 0.1.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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded instability v0.3.12
[INFO] [stderr]   Downloaded compact_str v0.8.2
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded ratatui v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc
[INFO] running `Command { std: "docker" "start" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", 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" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", 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" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling time-macros v0.2.31
[INFO] [stderr]    Compiling compact_str v0.8.2
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.29.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 toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling reviewal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.73s
[INFO] running `Command { std: "docker" "inspect" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", 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" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling reviewal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 23.36s
[INFO] running `Command { std: "docker" "inspect" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", 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" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reviewal-3e6b98cb74a3cf43)
[INFO] [stdout] 
[INFO] [stdout] running 333 tests
[INFO] [stdout] test config::tests::default_config_is_hermetic_no_global_persona_dir ... ok
[INFO] [stdout] test config::tests::defaults_when_no_files ... ok
[INFO] [stdout] test config::tests::absent_config_file_is_silent ... ok
[INFO] [stdout] test config::tests::persona_dirs_orders_global_before_project ... ok
[INFO] [stdout] test config::tests::unknown_key_produces_warning ... ok
[INFO] [stdout] test config::tests::unknown_theme_key_warns_instead_of_silently_no_opping ... ok
[INFO] [stdout] test config::tests::timeout_zero_keeps_default_and_warns ... ok
[INFO] [stdout] test config::tests::project_config_cannot_override_claude_bin ... ok
[INFO] [stdout] test config::tests::project_overrides_global_and_bad_toml_warns ... ok
[INFO] [stdout] test config::tests::theme_table_merges_per_field_not_whole_table ... ok
[INFO] [stdout] test engine::agent::tests::missing_binary_is_spawn_error ... ok
[INFO] [stdout] test engine::agent::tests::nonzero_exit_carries_stderr ... ok
[INFO] [stdout] test engine::agent::tests::estimated_count_ignores_bootstrap_usage_and_snaps_to_final ... ok
[INFO] [stdout] test engine::agent::tests::happy_path_streams_activity_and_returns_result ... ok
[INFO] [stdout] test engine::agent::tests::read_error_before_output_surfaces_as_read_not_empty_result ... ok
[INFO] [stdout] test engine::agent::tests::token_progress_estimates_suppresses_bootstrap_and_snaps ... ok
[INFO] [stdout] test engine::agent::tests::silent_agent_is_still_empty_result_not_format_drift ... ok
[INFO] [stdout] test engine::agent::tests::unread_stdin_does_not_block_completion_after_stdout_closes ... ok
[INFO] [stdout] test engine::model::tests::boundary_enums_wire_format_unchanged ... ok
[INFO] [stdout] test engine::agent::tests::unrecognized_event_vocabulary_surfaces_as_format_drift_not_empty ... ok
[INFO] [stdout] test engine::agent::tests::large_stderr_is_drained_concurrently_and_does_not_hang ... ok
[INFO] [stdout] test engine::model::tests::finding_id_stable_and_normalized ... ok
[INFO] [stdout] test engine::model::tests::severity_rejects_unknown_variant ... ok
[INFO] [stdout] test engine::model::tests::round1_review_roundtrip_with_nulls ... ok
[INFO] [stdout] test engine::model::tests::norm_title_collapses_and_strips ... ok
[INFO] [stdout] test engine::model::tests::severity_serializes_lowercase ... ok
[INFO] [stdout] test engine::model::tests::verdict_deserializes_from_lowercase ... ok
[INFO] [stdout] test engine::parse::tests::blank_input_is_an_error ... ok
[INFO] [stdout] test engine::parse::tests::braceless_garbage_errors_with_a_preview ... ok
[INFO] [stdout] test engine::agent::tests::falls_back_to_assistant_text_when_no_result_event ... ok
[INFO] [stdout] test engine::parse::tests::content_block_envelope_is_peeled ... ok
[INFO] [stdout] test engine::parse::tests::escaped_quotes_inside_strings_survive_the_hunt ... ok
[INFO] [stdout] test engine::parse::tests::bare_object_passes_through ... ok
[INFO] [stdout] test engine::parse::tests::object_after_prose_with_interior_braces_is_found ... ok
[INFO] [stdout] test engine::parse::tests::result_envelope_is_peeled_once ... ok
[INFO] [stdout] test engine::parse::tests::top_level_json_string_is_parsed_as_its_content ... ok
[INFO] [stdout] test engine::parse::tests::later_object_wins_when_an_earlier_candidate_is_invalid ... ok
[INFO] [stdout] test engine::parse::tests::long_garbage_preview_is_clipped ... ok
[INFO] [stdout] test engine::agent::tests::hardened_argv_prefix_is_exact_and_tools_is_empty ... ok
[INFO] [stdout] test engine::parse::tests::contract_fixtures_all_extract ... ok
[INFO] [stdout] test engine::persona::tests::builtins_load_six_personas ... ok
[INFO] [stdout] test engine::persona::tests::available_passes_failures_through_unfiltered_and_builtins_have_no_source ... ok
[INFO] [stdout] test engine::persona::tests::builtin_source_is_byte_exact_embedded_text ... ok
[INFO] [stdout] test engine::parse::tests::unbalanced_brace_in_prose_does_not_mask_the_object ... ok
[INFO] [stdout] test engine::persona::tests::load_custom_returns_structured_failures_and_source_paths ... ok
[INFO] [stdout] test engine::persona::tests::parse_persona_rejects_missing_frontmatter ... ok
[INFO] [stdout] test engine::persona::tests::frontmatter_color_round_trips_and_defaults_to_none ... ok
[INFO] [stdout] test engine::persona::tests::new_persona_template_round_trips ... ok
[INFO] [stdout] test engine::persona::tests::parse_persona_rejects_unsafe_name ... ok
[INFO] [stdout] test engine::persona::tests::rewrite_frontmatter_name_errors_when_no_name_field ... ok
[INFO] [stdout] test engine::persona::tests::rewrite_frontmatter_name_ignores_earlier_lines_with_matching_text ... ok
[INFO] [stdout] test engine::persona::tests::rewrite_frontmatter_name_touches_only_the_frontmatter ... ok
[INFO] [stdout] test engine::persona::tests::unique_slug_appends_numeric_suffix ... ok
[INFO] [stdout] test engine::preflight::tests::check_claude_ok_when_all_flags_present ... ok
[INFO] [stdout] test engine::persona::tests::custom_dir_overrides_builtin_by_name ... ok
[INFO] [stdout] test engine::preflight::tests::check_claude_errs_when_binary_missing ... ok
[INFO] [stdout] test engine::preflight::tests::check_claude_errs_when_required_flag_missing ... ok
[INFO] [stdout] test engine::agent::tests::structured_output_json_deltas_drive_counter_and_text ... ok
[INFO] [stdout] test engine::preflight::tests::check_target_errs_on_git_diff_in_non_git_dir ... ok
[INFO] [stdout] test engine::prompt::tests::schemas_are_objects_with_required_keys ... ok
[INFO] [stdout] test engine::preflight::tests::check_target_ok_when_spec_file_present ... ok
[INFO] [stdout] test engine::prompt::tests::round1_prompt_contains_instructions_and_source ... ok
[INFO] [stdout] test engine::preflight::tests::check_target_errs_when_spec_file_missing ... ok
[INFO] [stdout] test engine::prompt::tests::round2_prompt_contains_round1_json_then_source ... ok
[INFO] [stdout] test engine::prompt::tests::validate_round1_accepts_good_and_names_bad ... ok
[INFO] [stdout] test engine::run::tests::build_review_spec_requires_exactly_one_target ... ok
[INFO] [stdout] test engine::prompt::tests::validate_round2_requires_all_keys ... ok
[INFO] [stdout] test engine::run::tests::build_review_spec_builds_a_git_diff_spec ... ok
[INFO] [stdout] test engine::run::tests::build_review_spec_needs_two_reviewers ... ok
[INFO] [stdout] test engine::run::tests::build_review_spec_rejects_unknown_persona ... ok
[INFO] [stdout] test engine::preflight::tests::spawn_check_claude_reports_on_channel ... ok
[INFO] [stdout] test engine::run::tests::cancel_before_two_reviews_aborts ... ok
[INFO] [stdout] test engine::agent::tests::timeout_error_reports_actual_sub_second_budget ... ok
[INFO] [stdout] test engine::agent::tests::timeout_kills_and_reports ... ok
[INFO] [stdout] test engine::run::tests::finding_briefs_extracts_severity_and_title_from_round1_and_round2_shapes ... ok
[INFO] [stdout] test engine::run::tests::cancel_after_reviews_saved_yields_resumable_run ... ok
[INFO] [stdout] test engine::run::tests::cancel_during_round2_yields_resumable_run_with_round1_kept ... ok
[INFO] [stdout] test engine::run::tests::failed_round1_save_warns_but_run_still_completes ... ok
[INFO] [stdout] test engine::run::tests::run_completed_only_after_record_persists ... ok
[INFO] [stdout] test engine::run::tests::cancel_aborts_run ... ok
[INFO] [stdout] test engine::run::tests::fewer_than_two_survivors_aborts ... ok
[INFO] [stdout] test engine::run::tests::happy_path_completes_with_reviews_complete_status ... ok
[INFO] [stdout] test engine::store::tests::list_runs_returns_corruption_warnings_instead_of_printing ... ok
[INFO] [stdout] test engine::run::tests::garbage_agent_degrades_run_after_retry ... ok
[INFO] [stdout] test engine::store::tests::atomic_write_is_unique_per_target_under_concurrency ... ok
[INFO] [stdout] test engine::store::tests::load_record_missing_file_reports_path ... ok
[INFO] [stdout] test engine::run::tests::retry_prompt_is_built_only_when_first_attempt_fails ... ok
[INFO] [stdout] test engine::store::tests::list_runs_returns_newest_first ... ok
[INFO] [stdout] test engine::store::tests::list_runs_skips_corrupt_run_json ... ok
[INFO] [stdout] test engine::store::tests::load_triage_corrupt_errors ... ok
[INFO] [stdout] test engine::store::tests::open_run_missing_run_json_errors ... ok
[INFO] [stdout] test engine::run::tests::typed_reviews_survive_run_boundary ... ok
[INFO] [stdout] test engine::run::tests::cross_review_round_runs_and_saves ... ok
[INFO] [stdout] test engine::store::tests::load_triage_missing_returns_default ... ok
[INFO] [stdout] test engine::run::tests::round1_output_is_on_disk_before_agent_done_event ... ok
[INFO] [stdout] test engine::store::tests::atomic_write_roundtrips_and_leaves_no_temp ... ok
[INFO] [stdout] test engine::store::tests::run_id_is_sortable_and_sluggy ... ok
[INFO] [stdout] test engine::store::tests::run_status_label_matches_serde_encoding ... ok
[INFO] [stdout] test engine::store::tests::run_record_new_fields_default_when_absent_from_old_json ... ok
[INFO] [stdout] test engine::store::tests::triage_entry_touched_defaults_false ... ok
[INFO] [stdout] test engine::store::tests::round2_raw_only_omits_json ... ok
[INFO] [stdout] test engine::store::tests::save_source_writes_source_txt ... ok
[INFO] [stdout] test engine::store::tests::set_latest_points_to_run_id ... ok
[INFO] [stdout] test engine::synthesis::tests::duplicate_cross_entries_from_one_persona_are_deduped ... ok
[INFO] [stdout] test engine::synthesis::tests::deferred_is_the_default_triage_status ... ok
[INFO] [stdout] test engine::synthesis::tests::empty_findings_emits_clean_report ... ok
[INFO] [stdout] test engine::store::tests::triage_saves_and_loads ... ok
[INFO] [stdout] test engine::synthesis::tests::fallback_keeps_same_title_different_file_separate ... ok
[INFO] [stdout] test engine::store::tests::load_round_excludes_persona_with_only_raw_output ... ok
[INFO] [stdout] test engine::synthesis::tests::fallback_merges_same_title_different_line ... ok
[INFO] [stdout] test engine::store::tests::round1_saves_parsed_and_raw_then_loads ... ok
[INFO] [stdout] test engine::store::tests::mark_stale_touches_only_running_runs ... ok
[INFO] [stdout] test engine::synthesis::tests::label_unanimous_block ... ok
[INFO] [stdout] test engine::synthesis::tests::label_unanimous_ship ... ok
[INFO] [stdout] test engine::synthesis::tests::merge_escalates_severity_and_keeps_longest_detail ... ok
[INFO] [stdout] test engine::synthesis::tests::label_conditional_majority_is_not_split ... ok
[INFO] [stdout] test engine::synthesis::tests::label_block_non_unanimous ... ok
[INFO] [stdout] test engine::synthesis::tests::label_ship_with_caveats ... ok
[INFO] [stdout] test engine::synthesis::tests::label_split_is_a_true_tie ... ok
[INFO] [stdout] test engine::store::tests::round2_saves_parsed_and_raw_then_loads ... ok
[INFO] [stdout] test engine::synthesis::tests::markdown_and_json_reflect_triage ... ok
[INFO] [stdout] test engine::synthesis::tests::no_accepted_findings_emits_none_accepted_placeholder ... ok
[INFO] [stdout] test engine::synthesis::tests::verdict_table_lowercases_verdict_but_preserves_summary_case ... ok
[INFO] [stdout] test engine::synthesis::tests::validation_and_challenge_set_confidence ... ok
[INFO] [stdout] test engine::synthesis::tests::sort_order_and_degraded ... ok
[INFO] [stdout] test engine::synthesis::tests::upsert_backfills_none_location_from_later_reporter ... ok
[INFO] [stdout] test engine::target::tests::detect_targets_empty_outside_git_repo ... ok
[INFO] [stdout] test engine::store::tests::write_report_creates_md_and_json ... ok
[INFO] [stdout] test engine::target::tests::missing_spec_file_errors ... ok
[INFO] [stdout] test engine::target::tests::diff_on_clean_tree_errors ... ok
[INFO] [stdout] test engine::target::tests::empty_diff_is_typed_error ... ok
[INFO] [stdout] test engine::target::tests::spec_block_truncates_oversized_files ... ok
[INFO] [stdout] test engine::target::tests::spec_block_includes_file_header_and_content ... ok
[INFO] [stdout] test engine::target::tests::spec_target_kind_is_spec ... ok
[INFO] [stdout] test engine::target::tests::truncate_bytes_backs_off_to_char_boundary ... ok
[INFO] [stdout] test engine::target::tests::diff_collects_uncommitted_changes ... ok
[INFO] [stdout] test skill::tests::fresh_install_writes_everything ... ok
[INFO] [stdout] test engine::target::tests::spec_files_truncated_when_total_budget_exceeded ... ok
[INFO] [stdout] test skill::tests::ingest_skill_installed_reflects_skill_file ... ok
[INFO] [stdout] test skill::tests::parse_version_tolerates_prerelease_and_build_metadata ... ok
[INFO] [stdout] test engine::target::tests::precheck_diff_matches_collect_guards ... ok
[INFO] [stdout] test skill::tests::skill_frames_report_content_as_untrusted ... ok
[INFO] [stdout] test skill::tests::older_marker_upgrades_and_modified_skips ... ok
[INFO] [stdout] test skill::tests::second_init_is_idempotent ... ok
[INFO] [stdout] test ui::app::tests::ctrl_c_on_live_dashboard_arms_instead_of_quitting ... ok
[INFO] [stdout] test ui::app::tests::app_quits_on_quit_transition ... ok
[INFO] [stdout] test engine::target::tests::detect_targets_reports_stats_for_uncommitted_diff ... ok
[INFO] [stdout] test ui::app::tests::ctrl_c_quits_from_composer ... ok
[INFO] [stdout] test ui::app::tests::any_keypress_clears_stale_status_line ... ok
[INFO] [stdout] test ui::app::tests::ctrl_c_quits_from_home ... ok
[INFO] [stdout] test ui::app::tests::engine_warning_event_lands_on_status_line ... ok
[INFO] [stdout] test ui::app::tests::new_and_go_home_both_land_on_home ... ok
[INFO] [stdout] test engine::target::tests::detect_targets_falls_through_to_master_when_head_is_main ... ok
[INFO] [stdout] test ui::app::tests::finalize_writes_report_and_updates_run_record ... ok
[INFO] [stdout] test engine::target::tests::detect_targets_reports_branch_diff_vs_main ... ok
[INFO] [stdout] test ui::app::tests::open_run_finalized_bad_triage_status_is_error_not_silent_zero ... ok
[INFO] [stdout] test ui::app::tests::finalize_stamps_history_metadata_on_the_record ... ok
[INFO] [stdout] test engine::target::tests::untracked_only_repo_not_detected_as_uncommitted_diff ... ok
[INFO] [stdout] test engine::target::tests::detect_targets_lists_both_when_dirty_on_a_branch ... ok
[INFO] [stdout] test ui::app::tests::open_run_finalized_opens_done_screen ... ok
[INFO] [stdout] test ui::app::tests::open_run_finalized_missing_report_json_sets_status_line_not_panic ... ok
[INFO] [stdout] test ui::app::tests::open_run_stale_run_sets_not_resumable_status ... ok
[INFO] [stdout] test ui::app::tests::start_run_preflight_failure_keeps_home_and_reports_error ... ok
[INFO] [stdout] test ui::app::tests::status_line_clears_on_next_action ... ok
[INFO] [stdout] test ui::app::tests::store_warnings_appear_exactly_once_per_home_build ... ok
[INFO] [stdout] test ui::app::tests::triage_save_failure_keeps_dirty_and_surfaces_error ... ok
[INFO] [stdout] test ui::composer::tests::arm_delete_detects_double_shadow_through_injected_global_dir ... ok
[INFO] [stdout] test ui::app::tests::quick_start_with_failed_claude_check_blocks_with_message ... ok
[INFO] [stdout] test ui::app::tests::open_run_resumes_reviews_complete ... ok
[INFO] [stdout] test ui::app::tests::quick_start_error_outranks_persona_warnings ... ok
[INFO] [stdout] test ui::app::tests::reopen_triage_enters_triage_for_finalized_run ... ok
[INFO] [stdout] test ui::composer::tests::collect_spec_files_skips_venv_and_dist ... ok
[INFO] [stdout] test ui::composer::tests::checklist_truncates_long_persona_name_so_tag_survives ... ok
[INFO] [stdout] test ui::composer::tests::checklist_renders_tags_and_invalid_rows_and_space_noops_on_invalid ... ok
[INFO] [stdout] test ui::app::tests::poll_preflight_is_lazy_and_settles_ok_via_script ... ok
[INFO] [stdout] test ui::composer::tests::e_on_builtin_materializes_via_scope_prompt_created_true_only_when_written ... ok
[INFO] [stdout] test ui::composer::tests::armed_footer_names_the_global_reveal_when_double_shadowed ... ok
[INFO] [stdout] test ui::app::tests::poll_preflight_settles_failed_for_missing_binary ... ok
[INFO] [stdout] test ui::composer::tests::armed_footer_plain_custom_delete_label_is_untested_no_longer ... ok
[INFO] [stdout] test ui::composer::tests::e_on_custom_stages_edit_request_without_prompting ... ok
[INFO] [stdout] test ui::composer::tests::esc_while_armed_only_disarms_other_keys_disarm_then_act ... ok
[INFO] [stdout] test ui::composer::tests::empty_spec_selection_prompts_next_action ... ok
[INFO] [stdout] test ui::app::tests::quick_start_success_carries_all_persona_warnings_prefixed ... ok
[INFO] [stdout] test ui::composer::tests::default_enabled_customs_and_shadowing_builtins ... ok
[INFO] [stdout] test ui::composer::tests::full_manage_hint_shows_in_reviewer_edit_mode ... ok
[INFO] [stdout] test ui::composer::tests::enter_on_fields_opens_editors_and_toggles_never_starts_run ... ok
[INFO] [stdout] test ui::composer::tests::highlight_filter_handles_length_changing_lowercase_chars ... ok
[INFO] [stdout] test ui::composer::tests::draw_renders_without_panicking_in_every_field ... ok
[INFO] [stdout] test ui::composer::tests::injected_global_dir_loads_personas_with_global_tag ... ok
[INFO] [stdout] test ui::composer::tests::invalid_files_become_error_rows_with_tags_on_initial_load ... ok
[INFO] [stdout] test ui::composer::tests::degenerate_sizes_never_panic ... ok
[INFO] [stdout] test ui::composer::tests::edit_mode_captures_jk_clamped_and_closes_on_enter_or_esc ... ok
[INFO] [stdout] test ui::composer::tests::model_prefill_from_config ... ok
[INFO] [stdout] test ui::composer::tests::happy_path_jjjj_enter_starts_run_from_start_row ... ok
[INFO] [stdout] test ui::composer::tests::fewer_than_two_reviewers_blocks_with_inline_error ... ok
[INFO] [stdout] test ui::composer::tests::no_specs_selected_blocks_with_inline_error ... ok
[INFO] [stdout] test ui::composer::tests::n_writes_deduped_template_and_d_copies_with_rewritten_name ... ok
[INFO] [stdout] test ui::composer::tests::picker_enter_selects_hovered_when_nothing_toggled ... ok
[INFO] [stdout] test ui::composer::tests::nonzero_exit_removes_only_created_files ... ok
[INFO] [stdout] test ui::composer::tests::picker_filter_narrows_visible_list ... ok
[INFO] [stdout] test ui::composer::tests::new_collects_invalid_persona_color_warnings ... ok
[INFO] [stdout] test ui::composer::tests::focusing_a_field_does_not_expand_it_until_space ... ok
[INFO] [stdout] test ui::composer::tests::picker_renders_as_clean_modal_hiding_the_composer ... ok
[INFO] [stdout] test ui::composer::tests::picker_type_to_filter_ignores_control_chords ... ok
[INFO] [stdout] test ui::composer::tests::picker_renders_windowed_list_keeping_cursor_and_footer_visible ... ok
[INFO] [stdout] test ui::composer::tests::provenance_tags_exact_strings ... ok
[INFO] [stdout] test ui::composer::tests::rename_collision_keeps_filename_and_warns ... ok
[INFO] [stdout] test ui::composer::tests::rename_carries_enabled_by_path_and_auto_enable_lands_on_new_name ... ok
[INFO] [stdout] test ui::composer::tests::scope_esc_cancels_without_writing ... ok
[INFO] [stdout] test ui::composer::tests::model_custom_row_opens_input_and_accepts_free_text ... ok
[INFO] [stdout] test ui::composer::tests::reviewers_editor_opens_when_empty_and_hints_adapt ... ok
[INFO] [stdout] test ui::composer::tests::scope_g_writes_into_the_injected_global_dir ... ok
[INFO] [stdout] test ui::composer::tests::model_input_hint_reflects_accept_not_start_run ... ok
[INFO] [stdout] test ui::composer::tests::spec_walk_skips_every_noise_dir_and_sorts ... ok
[INFO] [stdout] test ui::composer::tests::jk_in_fields_mode_hops_fields_without_descending_into_lists ... ok
[INFO] [stdout] test ui::composer::tests::target_drift_warns_and_bad_edit_moves_cursor_to_invalid_row ... ok
[INFO] [stdout] test ui::composer::tests::picker_esc_without_selection_falls_back_to_first_target ... ok
[INFO] [stdout] test ui::composer::tests::v_opens_pager_with_builtin_source_and_esc_closes ... ok
[INFO] [stdout] test ui::composer::tests::spec_description_shows_filename_only_and_truncates_overlong_names ... ok
[INFO] [stdout] test ui::composer::tests::render_shows_cost_estimate_in_bottom_border_and_expanded_reviewers ... ok
[INFO] [stdout] test ui::composer::tests::many_reviewers_degrade_to_whole_names_plus_count ... ok
[INFO] [stdout] test ui::composer::tests::x_on_pure_builtin_is_a_noop_with_notice ... ok
[INFO] [stdout] test ui::dashboard::tests::agent_done_feeds_ticker_and_saved_suffix ... ok
[INFO] [stdout] test ui::composer::tests::x_arms_confirms_and_reset_to_builtin_resurfaces_it ... ok
[INFO] [stdout] test ui::dashboard::tests::cancel_is_two_step_and_any_key_disarms ... ok
[INFO] [stdout] test ui::dashboard::tests::armed_line_comma_joins_multiple_lost_names ... ok
[INFO] [stdout] test ui::composer::tests::short_terminals_fall_back_to_denser_tiers ... ok
[INFO] [stdout] test ui::dashboard::tests::cancelled_box_singularizes_a_single_kept_review ... ok
[INFO] [stdout] test ui::dashboard::tests::clean_completion_still_auto_advances ... ok
[INFO] [stdout] test ui::dashboard::tests::armed_line_counts_kept_and_lost ... ok
[INFO] [stdout] test ui::dashboard::tests::degraded_completion_pauses_on_summary ... ok
[INFO] [stdout] test ui::composer::tests::target_editor_specs_row_opens_picker_when_none_chosen ... ok
[INFO] [stdout] test ui::dashboard::tests::events_drive_panels_and_completion ... ok
[INFO] [stdout] test ui::composer::tests::target_editor_selects_diff_and_preserves_personas ... ok
[INFO] [stdout] test ui::composer::tests::value_and_description_render_on_separate_lines ... ok
[INFO] [stdout] test ui::composer::tests::target_cycle_preserves_persona_selections_for_same_kind ... ok
[INFO] [stdout] test ui::dashboard::tests::last_text_truncates_by_chars_not_bytes ... ok
[INFO] [stdout] test ui::dashboard::tests::failure_banner_keeps_panels_and_raw_paths ... ok
[INFO] [stdout] test ui::dashboard::tests::header_names_target_model_and_round_count ... ok
[INFO] [stdout] test ui::dashboard::tests::middle_ellipsize_keeps_exact_fits_and_prefers_the_tail ... ok
[INFO] [stdout] test ui::dashboard::tests::degraded_summary_joins_multiple_failed_names_with_plus ... ok
[INFO] [stdout] test ui::dashboard::tests::cancelled_state_is_neutral_and_resumable_offers_triage ... ok
[INFO] [stdout] test ui::dashboard::tests::cancelled_box_singularizes_the_not_enough_to_synthesize_line ... ok
[INFO] [stdout] test ui::dashboard::tests::draw_shows_persona_strips ... ok
[INFO] [stdout] test ui::dashboard::tests::running_panel_shows_clock_and_spinner ... ok
[INFO] [stdout] test ui::dashboard::tests::persona_strips_are_side_by_side_columns_not_stacked_bands ... ok
[INFO] [stdout] test ui::dashboard::tests::failed_panel_border_is_red_and_running_border_is_persona_color ... ok
[INFO] [stdout] test ui::dashboard::tests::progress_line_promises_the_transition ... ok
[INFO] [stdout] test ui::dashboard::tests::run_failure_sets_state_guards_keys_and_renders_banner ... ok
[INFO] [stdout] test ui::dashboard::tests::narrow_panel_sacrifices_round1_line_before_the_saved_suffix ... ok
[INFO] [stdout] test ui::dashboard::tests::token_counter_marks_estimates_with_tilde_and_resets_per_invoke ... ok
[INFO] [stdout] test ui::dashboard::tests::round2_keeps_round1_results_visible ... ok
[INFO] [stdout] test ui::done::tests::from_report_counts_statuses_and_severities_exhaustively ... ok
[INFO] [stdout] test ui::done::tests::clean_run_celebrates ... ok
[INFO] [stdout] test ui::done::tests::keys_reopen_compose_home_quit ... ok
[INFO] [stdout] test ui::dashboard::tests::six_failed_panels_at_80x24_keep_columns_and_status_lines ... ok
[INFO] [stdout] test ui::format::tests::progress_bar_fills_proportionally_and_clamps ... ok
[INFO] [stdout] test ui::editor::tests::resolve_editor_precedence_visual_editor_vi ... ok
[INFO] [stdout] test ui::format::tests::truncate_end_keeps_start_by_display_columns ... ok
[INFO] [stdout] test ui::format::tests::truncate_path_start_keeps_tail_by_display_columns ... ok
[INFO] [stdout] test ui::format::tests::word_fit_rows_matches_the_renderers_word_wrap ... ok
[INFO] [stdout] test ui::format::tests::relative_time_buckets ... ok
[INFO] [stdout] test ui::done::tests::banner_has_flanking_rule_in_verdict_color ... ok
[INFO] [stdout] test ui::home::tests::e_on_spec_row_opens_composer_with_picker ... ok
[INFO] [stdout] test ui::home::tests::e_opens_composer_seeded_with_the_hovered_diff_target ... ok
[INFO] [stdout] test ui::home::tests::enter_action_mirrors_apply_open_run_semantics ... ok
[INFO] [stdout] test ui::home::tests::enter_on_diff_row_quick_starts_with_that_target ... ok
[INFO] [stdout] test ui::home::tests::enter_on_spec_row_opens_composer_with_picker ... ok
[INFO] [stdout] test ui::done::tests::done_shows_identity_severity_breakdown_and_hints ... ok
[INFO] [stdout] test ui::home::tests::help_overlay_toggles_and_swallows_keys ... ok
[INFO] [stdout] test ui::done::tests::missing_skill_swaps_the_next_box ... ok
[INFO] [stdout] test ui::dashboard::tests::word_wrap_waste_cannot_readmit_the_round1_line ... ok
[INFO] [stdout] test ui::home::tests::draw_shows_warnings_above_hints ... ok
[INFO] [stderr] /tmp/.tmpy1uBAi/file.md: 1: definitely-not-a-real-editor-xyz: not found
[INFO] [stdout] test ui::editor::tests::run_editor_reports_clean_failed_and_notfound ... ok
[INFO] [stdout] test ui::home::tests::empty_history_and_missing_skill_show_placeholder_and_tip ... ok
[INFO] [stdout] test ui::home::tests::help_overlay_renders_over_home ... ok
[INFO] [stdout] test ui::home::tests::history_hovering_finalized_run_offers_open_report ... ok
[INFO] [stdout] test ui::home::tests::launcher_navigation_clamps_at_spec_row_and_zero ... ok
[INFO] [stdout] test ui::home::tests::history_hovering_running_run_shows_in_progress_reason ... ok
[INFO] [stdout] test ui::home::tests::history_rows_show_relative_time_verdict_and_triage_debt ... ok
[INFO] [stdout] test ui::home::tests::history_hovering_reviews_complete_run_offers_resume_triage ... ok
[INFO] [stdout] test ui::home::tests::n_opens_a_blank_composer ... ok
[INFO] [stdout] test ui::home::tests::tab_is_noop_with_no_run_history ... ok
[INFO] [stdout] test ui::home::tests::tab_toggles_zone_and_enter_opens_run_in_history ... ok
[INFO] [stdout] test ui::home::tests::history_hovering_blocked_run_shows_reason_not_enter_hint ... ok
[INFO] [stdout] test ui::overlay::tests::centered_clamps_to_area_bounds ... ok
[INFO] [stdout] test ui::overlay::tests::centered_sizes_and_centers_within_area ... ok
[INFO] [stdout] test ui::home::tests::history_status_cell_ellipsizes_verdict_at_narrow_width ... ok
[INFO] [stdout] test ui::overlay::tests::draw_help_renders_every_entry ... ok
[INFO] [stdout] test ui::theme::tests::builtin_slots_cover_exactly_the_builtin_personas ... ok
[INFO] [stdout] test ui::theme::tests::builtins_get_distinct_stable_slot_colors ... ok
[INFO] [stdout] test ui::home::tests::launcher_row_shows_stats_and_selected_defaults_hint ... ok
[INFO] [stdout] test ui::theme::tests::custom_persona_hash_is_deterministic_and_in_pool ... ok
[INFO] [stdout] test ui::theme::tests::default_theme_is_blue_accent_with_filtered_pool ... ok
[INFO] [stdout] test ui::theme::tests::frontmatter_color_wins_even_over_accent_rule ... ok
[INFO] [stdout] test ui::home::tests::history_status_cell_shows_full_metadata_at_wide_width ... ok
[INFO] [stdout] test ui::theme::tests::every_color_role_round_trips_from_toml_key_to_theme_field ... ok
[INFO] [stdout] test ui::theme::tests::hints_render_same_text_as_before ... ok
[INFO] [stdout] test ui::theme::tests::invalid_frontmatter_falls_through_to_slot ... ok
[INFO] [stdout] test ui::home::tests::launcher_hints_include_history_nav_only_when_runs_exist ... ok
[INFO] [stdout] test ui::theme::tests::load_applies_valid_overrides_including_hex ... ok
[INFO] [stdout] test ui::theme::tests::load_filters_overridden_accent_from_pool ... ok
[INFO] [stdout] test ui::theme::tests::monochrome_persona_color_is_reset_even_with_frontmatter ... ok
[INFO] [stdout] test ui::theme::tests::no_color_returns_monochrome_with_no_warnings ... ok
[INFO] [stdout] test ui::theme::tests::load_falls_back_when_user_pool_too_small ... ok
[INFO] [stdout] test ui::theme::tests::readme_theme_defaults_match_the_shipped_defaults ... ok
[INFO] [stdout] test ui::theme::tests::validate_persona_colors_reports_only_invalid ... ok
[INFO] [stdout] test ui::theme::tests::verdict_matches_caveats_before_ship ... ok
[INFO] [stdout] test ui::theme::tests::monochrome_resets_every_color ... ok
[INFO] [stdout] test ui::theme::tests::load_warns_and_keeps_default_on_invalid_value ... ok
[INFO] [stdout] test ui::triage::tests::accept_preserves_existing_note_and_n_edits_without_status_change ... ok
[INFO] [stdout] test ui::triage::tests::detail_colors_severity_and_confidence ... ok
[INFO] [stdout] test ui::triage::tests::dirty_flag_set_on_accept_and_undo ... ok
[INFO] [stdout] test ui::triage::tests::esc_clears_filter_before_leaving ... ok
[INFO] [stdout] test ui::triage::tests::filter_input_esc_clears_enter_keeps ... ok
[INFO] [stdout] test ui::triage::tests::detail_always_shows_challenger_evidence_and_scrolls ... ok
[INFO] [stdout] test ui::home::tests::preflight_failure_lands_in_header ... ok
[INFO] [stdout] test ui::triage::tests::confirm_finalize_hints_survive_wrap_at_80_cols ... ok
[INFO] [stdout] test ui::home::tests::title_carries_accent ... ok
[INFO] [stdout] test ui::triage::tests::filter_narrows_visible ... ok
[INFO] [stdout] test ui::tests::draw_app_pads_screen_edges ... ok
[INFO] [stdout] test ui::triage::tests::finalize_emits_transition ... ok
[INFO] [stdout] test ui::tests::status_line_replaces_hints_row_completely ... ok
[INFO] [stdout] test ui::triage::tests::skip_counts_as_triaged_but_stays_deferred ... ok
[INFO] [stdout] test ui::triage::tests::q_quits_and_esc_goes_home ... ok
[INFO] [stdout] test ui::triage::tests::resume_selects_first_untouched ... ok
[INFO] [stdout] test ui::triage::tests::undo_restores_previous_entry ... ok
[INFO] [stdout] test ui::triage::tests::finalize_confirms_with_untriaged_count ... ok
[INFO] [stdout] test ui::triage::tests::header_shows_degraded_banner ... ok
[INFO] [stdout] test ui::triage::tests::help_overlay_lists_hidden_keys ... ok
[INFO] [stdout] test ui::triage::tests::sticky_filter_is_visible_with_counts_and_hidden_line ... ok
[INFO] [stdout] test ui::triage::tests::verbs_touch_advance_and_sink_to_archive ... ok
[INFO] [stdout] test ui::triage::tests::detail_scroll_markers_reflect_position ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 333 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.99s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reviewal-5529f6b5a6ed3b2c)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::diff_flag_tristate_maps_without_sentinel ... 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 tests/cli.rs (/opt/rustwide/target/debug/deps/cli-17c1eea22c5705c0)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test review_requires_a_target ... ok
[INFO] [stdout] test personas_lists_builtins ... ok
[INFO] [stdout] test review_with_missing_spec_fails_before_the_tui_with_exit_2 ... ok
[INFO] [stdout] test init_scaffolds_and_is_idempotent ... ok
[INFO] [stdout] test non_tty_invocation_fails_with_guidance ... ok
[INFO] [stdout] test review_rejects_unknown_persona ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/live.rs (/opt/rustwide/target/debug/deps/live-e7db323b4f98f404)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test live_spec_review_two_personas ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/public_api.rs (/opt/rustwide/target/debug/deps/public_api-8018af6c00f2a84c)
[INFO] [stdout] test public_surface_is_reachable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reviewal
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/engine/persona.rs - engine::persona::builtins (line 110) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc", kill_on_drop: false }`
[INFO] [stdout] 0f9679ad58d1024bac6d8facbfd10f3a7c9e8595d6f75e54f7c22c765438cffc
