[INFO] fetching crate jjr 0.1.3...
[INFO] testing jjr-0.1.3 against 1.98.0-beta.1 for beta-1.98-1
[INFO] extracting crate jjr 0.1.3 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate jjr 0.1.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate jjr 0.1.3
[INFO] tweaked toml for crates.io crate jjr 0.1.3 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate jjr 0.1.3 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 crates.io crate jjr 0.1.3 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-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4
[INFO] running `Command { std: "docker" "start" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", 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" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4" "/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" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", 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" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling unidiff v0.4.0
[INFO] [stderr]    Compiling local-review-core v0.1.0
[INFO] [stderr]    Compiling jjr v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.96s
[INFO] running `Command { std: "docker" "inspect" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", 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" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4" "/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 regex-automata v0.4.14
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling unidiff v0.4.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling local-review-core v0.1.0
[INFO] [stderr]    Compiling jjr v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.81s
[INFO] running `Command { std: "docker" "inspect" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", 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" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4" "/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.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/jjr-cc915495f896849d)
[INFO] [stdout] 
[INFO] [stdout] running 695 tests
[INFO] [stdout] test agent_config::tests::agent_config_drops_non_string_array_entries ... ok
[INFO] [stdout] test agent_config::tests::agent_config_extra_args_wrong_type_defaults ... ok
[INFO] [stdout] test anchoring::tests::reanchor_change_scoped_comment_returns_none ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_desc_exact_match_unchanged_returns_none ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_desc_exact_match_new_line_returns_updated ... ok
[INFO] [stdout] test agent_config::tests::agent_config_malformed_toml_defaults ... ok
[INFO] [stdout] test anchoring::tests::reanchor_none_status_exact_match_returns_pending ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_fuzzy_match_returns_stale_with_reason ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stack_scoped_comment_returns_none ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_exact_match_moved_location_returns_updated_anchor ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stale_desc_now_exact_match_returns_pending ... ok
[INFO] [stdout] test agent_config::tests::agent_config_missing_file_defaults ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_exact_match_unchanged_location_returns_none ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stale_same_reason_returns_none ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stale_reason_changes_returns_updated_reason ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stale_now_exact_match_returns_pending ... ok
[INFO] [stdout] test anchoring::tests::reanchor_stale_desc_same_reason_returns_none ... ok
[INFO] [stdout] test claude::tests::extra_args_overflow_returns_prompt_too_large ... ok
[INFO] [stdout] test claude::tests::oversize_prompt_returns_prompt_too_large ... ok
[INFO] [stdout] test anchoring::tests::reanchor_pending_desc_fuzzy_returns_stale ... ok
[INFO] [stdout] test claude::tests::false_binary_returns_failed ... ok
[INFO] [stdout] test comment::tests::change_comment_roundtrips_through_serde ... ok
[INFO] [stdout] test comment::tests::change_comment_wire_shape_omits_line_fields ... ok
[INFO] [stdout] test comment::tests::change_scope_missing_change_id_errors ... ok
[INFO] [stdout] test comment::tests::description_anchor_display_line_zero_roundtrips ... ok
[INFO] [stdout] test comment::tests::description_comment_roundtrips_through_serde ... ok
[INFO] [stdout] test comment::tests::description_comment_wire_shape ... ok
[INFO] [stdout] test claude::tests::missing_configured_tool_reports_configured_name_not_claude ... ok
[INFO] [stdout] test comment::tests::description_scope_missing_change_id_errors ... ok
[INFO] [stdout] test comment::tests::description_comment_wire_shape_byte_stable ... ok
[INFO] [stdout] test comment::tests::description_scope_missing_target_text_errors ... ok
[INFO] [stdout] test claude::tests::extra_args_precede_separator ... ok
[INFO] [stdout] test claude::tests::nonexistent_binary_returns_agent_missing ... ok
[INFO] [stdout] test comment::tests::line_comment_wire_shape_has_expected_fields ... ok
[INFO] [stdout] test comment::tests::line_scope_missing_change_id_errors ... ok
[INFO] [stdout] test comment::tests::line_scope_missing_hunk_header_errors ... ok
[INFO] [stdout] test comment::tests::line_scope_missing_side_errors ... ok
[INFO] [stdout] test comment::tests::line_scope_missing_file_errors ... ok
[INFO] [stdout] test claude::tests::multiple_extra_args_pass_through_in_order ... ok
[INFO] [stdout] test comment::tests::line_scope_with_only_old_line_succeeds ... ok
[INFO] [stdout] test comment::tests::line_scope_with_neither_line_number_errors ... ok
[INFO] [stdout] test comment::tests::line_scope_missing_target_text_errors ... ok
[INFO] [stdout] test claude::tests::handles_empty_prompt ... ok
[INFO] [stdout] test comment::tests::oversized_context_in_jsonl_is_capped_on_read ... ok
[INFO] [stdout] test comment::tests::schema_version_mismatch_returns_error ... ok
[INFO] [stdout] test comment::tests::line_comment_roundtrips_through_serde ... ok
[INFO] [stdout] test comment::tests::oversized_target_text_in_jsonl_is_normalized_on_read ... ok
[INFO] [stdout] test claude::tests::invoke_with_command_does_not_pass_p_flag ... ok
[INFO] [stdout] test comment::tests::severity_wire_format_roundtrips ... ok
[INFO] [stdout] test claude::tests::prompt_at_limit_is_accepted ... ok
[INFO] [stdout] test comment::tests::stack_scope_missing_revset_hash_errors ... ok
[INFO] [stdout] test comment::tests::stack_comment_roundtrips_through_serde ... ok
[INFO] [stdout] test agent_config::tests::agent_config_missing_section_defaults ... ok
[INFO] [stdout] test comment::tests::unknown_scope_errors ... ok
[INFO] [stdout] test comment::tests::status_wire_format_roundtrips ... ok
[INFO] [stdout] test comment::tests::unicode_in_body_target_text_and_path_roundtrips ... ok
[INFO] [stdout] test claude::tests::true_binary_returns_success ... ok
[INFO] [stdout] test comment::tests::unknown_status_errors ... ok
[INFO] [stdout] test comment::tests::v1_record_without_scope_deserializes_as_line ... ok
[INFO] [stdout] test comment::tests::stack_scope_malformed_revset_hash_errors ... ok
[INFO] [stdout] test comment::tests::wire_format_uses_comment_field_not_body ... ok
[INFO] [stdout] test claude::tests::prompt_reaches_subprocess_after_separator ... ok
[INFO] [stdout] test comment::tests::stack_comment_wire_shape_omits_change_and_line_fields ... ok
[INFO] [stdout] test comment::tests::stack_comment_wire_shape_includes_revset_hash ... ok
[INFO] [stdout] test agent_config::tests::agent_config_parses_tool_and_extra_args ... ok
[INFO] [stdout] test agent_config::tests::agent_config_parses_extra_args_only ... ok
[INFO] [stdout] test agent_config::tests::agent_config_section_not_a_table_defaults ... ok
[INFO] [stdout] test comment::tests::unknown_severity_errors ... ok
[INFO] [stdout] test agent_config::tests::agent_config_tool_wrong_type_defaults ... ok
[INFO] [stdout] test comment::tests::oversized_body_is_truncated_at_deserialize_time ... ok
[INFO] [stdout] test cursor::tests::clear_on_missing_file_is_ok ... ok
[INFO] [stdout] test claude::tests::flag_like_prompt_passes_through_after_separator ... ok
[INFO] [stdout] test cursor::tests::resume_index_from_cursor_empty_stack_partial_returns_zero ... ok
[INFO] [stdout] test cursor::tests::load_missing_file_returns_empty_cursor ... ok
[INFO] [stdout] test cursor::tests::resume_index_fresh_stack_no_reviewed_state_lands_at_oldest ... ok
[INFO] [stdout] test cursor::tests::load_corrupt_json_returns_err ... ok
[INFO] [stdout] test cursor::tests::resume_index_from_cursor_empty_stack_fresh_returns_zero ... ok
[INFO] [stdout] test cursor::tests::resume_index_finds_next_unreviewed_after_cursor ... ok
[INFO] [stdout] test cursor::tests::resume_index_last_not_in_stack_uses_smart_fallback ... ok
[INFO] [stdout] test cursor::tests::resume_index_no_cursor_picks_latest_unreviewed_skipping_reviewed_top ... ok
[INFO] [stdout] test cursor::tests::resume_index_no_comments_after_last_returns_last_pos ... ok
[INFO] [stdout] test cursor::tests::resume_index_partial_reviewed_state_walks_latest_to_oldest ... ok
[INFO] [stdout] test cursor::tests::resume_index_no_cursor_all_reviewed_returns_latest ... ok
[INFO] [stdout] test cursor::tests::resume_index_cursor_at_last_entry_returns_last ... ok
[INFO] [stdout] test cursor::tests::resume_index_single_change_fresh_state_lands_at_oldest_which_is_latest ... ok
[INFO] [stdout] test cursor::tests::record_creates_and_updates_entry ... ok
[INFO] [stdout] test cursor::tests::clear_removes_entry ... ok
[INFO] [stdout] test cursor::tests::resume_index_no_cursor_falls_back_to_latest_when_unreviewed ... ok
[INFO] [stdout] test cursor::tests::smart_resume_empty_stack_returns_zero ... ok
[INFO] [stdout] test cursor::tests::smart_resume_walks_latest_to_oldest ... ok
[INFO] [stdout] test export::tests::is_empty_false_when_stack_comment_present ... ok
[INFO] [stdout] test export::tests::is_empty_true_when_no_comments ... ok
[INFO] [stdout] test export::tests::is_empty_false_when_change_comment_present ... ok
[INFO] [stdout] test export::tests::render_jsonl_empty_data_produces_empty_string ... ok
[INFO] [stdout] test export::tests::render_jsonl_ordering_stack_then_per_change ... ok
[INFO] [stdout] test cursor::tests::resume_index_single_change_partial_state_walks_to_oldest_which_is_latest ... ok
[INFO] [stdout] test export::tests::render_jsonl_parses_back_to_identical_comments ... ok
[INFO] [stdout] test export::tests::render_markdown_header_contains_revset ... ok
[INFO] [stdout] test cursor::tests::resume_index_cursor_change_has_no_comments_resumes_there ... ok
[INFO] [stdout] test export::tests::render_jsonl_stack_comment_produces_one_line ... ok
[INFO] [stdout] test cursor::tests::resume_index_stored_cursor_absent_change_id_falls_through_fresh ... ok
[INFO] [stdout] test export::tests::render_markdown_line_comment_section ... ok
[INFO] [stdout] test export::tests::render_jsonl_within_change_sorted_by_created_at ... ok
[INFO] [stdout] test export::tests::render_markdown_change_section_contains_change_id_and_desc ... ok
[INFO] [stdout] test cursor::tests::save_then_load_roundtrip ... ok
[INFO] [stdout] test export::tests::collect_export_data_returns_all_comments_unfiltered ... ok
[INFO] [stdout] test export::tests::render_markdown_stack_section_present_when_comments_exist ... ok
[INFO] [stdout] test export::tests::render_markdown_skips_change_with_no_comments ... ok
[INFO] [stdout] test export::tests::render_markdown_snapshot ... ok
[INFO] [stdout] test cursor::tests::resume_index_falls_back_to_smart_rule_on_corrupt_json ... ok
[INFO] [stdout] test export::tests::collect_export_data_includes_orphaned_status_comments_in_stack ... ok
[INFO] [stdout] test cursor::tests::resume_index_stored_cursor_absent_change_id_falls_through_partial ... ok
[INFO] [stdout] test comment::tests::oversized_body_is_truncated_at_serialize_time ... ok
[INFO] [stdout] test cursor::tests::resume_index_stored_cursor_resumes_regardless_of_reviewed_state ... ok
[INFO] [stdout] test export::tests::render_markdown_no_stack_section_when_no_stack_comments ... ok
[INFO] [stdout] test export::tests::render_markdown_strips_controls_from_comment_body ... ok
[INFO] [stdout] test export::tests::render_markdown_strips_controls_from_description ... ok
[INFO] [stdout] test export::tests::render_markdown_strips_controls_from_hunk_and_target ... ok
[INFO] [stdout] test jj::tests::default_stack_revset_is_trunk_dotdot_at ... ok
[INFO] [stdout] test jj::tests::log_metadata_from_records_one_record_returns_metadata ... ok
[INFO] [stdout] test jj::tests::log_metadata_from_records_two_records_returns_revset_ambiguous ... ok
[INFO] [stdout] test jj::tests::log_metadata_from_records_zero_records_returns_unexpected_output ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_change_id_parse_failure_propagates ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_commit_id_parse_failure_propagates ... ok
[INFO] [stdout] test jj::tests::parse_log_template_records_returns_all_records_caller_enforces_count ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_happy_multi_record ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_skips_blank_lines ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_empty_false_for_non_empty ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_jj_error_matches_trunk_substring ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_malformed_line_errors ... ok
[INFO] [stdout] test export::tests::render_markdown_strips_controls_from_revset ... ok
[INFO] [stdout] test jj::tests::parse_stack_entries_empty_input ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_empty_true_for_empty_slice ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_jj_error_matches_alias_not_configured ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_jj_error_matches_undefined ... ok
[INFO] [stdout] test jj::tests::should_fall_back_on_jj_error_rejects_unrelated_messages ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_handles_multi_line_input ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_handles_only_newline ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_leaves_no_newline_input_unchanged ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_preserves_internal_carriage_returns ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_strips_crlf ... ok
[INFO] [stdout] test jj::tests::strip_trailing_newline_strips_multiple_trailing_newlines ... ok
[INFO] [stdout] test packet::tests::filter_includes_stale_when_flag_set ... ok
[INFO] [stdout] test packet::tests::filter_always_excludes_orphaned ... ok
[INFO] [stdout] test packet::tests::filter_excludes_stale_by_default ... ok
[INFO] [stdout] test packet::tests::inline_mode_still_inlines_comments ... ok
[INFO] [stdout] test packet::tests::build_packet_stale_excluded_by_default ... ok
[INFO] [stdout] test packet::tests::build_packet_empty_stack_returns_error ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_description_only_change_still_gets_per_change_bullet ... ok
[INFO] [stdout] test packet::tests::build_packet_orphaned_never_included ... ok
[INFO] [stdout] test packet::tests::build_packet_change_without_comments_excluded ... ok
[INFO] [stdout] test packet::tests::build_packet_stale_included_with_flag ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_quotes_paths_with_backticks ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_keeps_diff_context_inline ... ok
[INFO] [stdout] test packet::tests::line_comments_sorted_by_file_then_line ... ok
[INFO] [stdout] test packet::tests::render_all_severity_labels ... ok
[INFO] [stdout] test packet::tests::partition_by_scope_routes_description_to_description_bucket ... ok
[INFO] [stdout] test packet::tests::render_description_section_omitted_when_no_comments ... ok
[INFO] [stdout] test packet::tests::render_description_comment_block_heading_with_display_line_includes_colon ... ok
[INFO] [stdout] test packet::tests::render_description_section_uses_anchor_context_when_description_text_empty ... ok
[INFO] [stdout] test packet::tests::render_change_only_no_line_level_section ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_schema_excludes_both_stale_and_orphaned ... ok
[INFO] [stdout] test packet::tests::render_description_comment_block_heading_format_with_no_display_line ... ok
[INFO] [stdout] test packet::tests::render_description_section_populated_includes_target_and_context ... ok
[INFO] [stdout] test packet::tests::render_description_section_preserves_comment_order_with_empty_description ... ok
[INFO] [stdout] test packet::tests::render_diff_context_renders_hunk_for_anchored_line ... ok
[INFO] [stdout] test packet::tests::render_description_section_with_empty_anchor_window_renders_minimal_fence ... ok
[INFO] [stdout] test packet::tests::render_diff_context_renders_hunks_for_each_file_with_anchors ... ok
[INFO] [stdout] test packet::tests::render_diff_context_renders_shared_hunk_exactly_once ... ok
[INFO] [stdout] test packet::tests::render_description_section_uses_h4_for_context_block ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_stack_file_bullet_keyed_off_packet_stack_comments ... ok
[INFO] [stdout] test packet::tests::render_diff_context_skips_file_with_no_matching_comments ... ok
[INFO] [stdout] test packet::tests::render_is_deterministic ... ok
[INFO] [stdout] test export::tests::render_markdown_description_comment_excluded_from_output ... ok
[INFO] [stdout] test packet::tests::render_line_comment_matches_spec_example ... ok
[INFO] [stdout] test packet::tests::render_preserves_body_newlines ... ok
[INFO] [stdout] test packet::tests::render_line_only_no_change_level_section ... ok
[INFO] [stdout] test packet::tests::render_prompt_contains_prelude ... ok
[INFO] [stdout] test packet::tests::write_fenced_block_handles_leading_bare_fence_at_byte_zero ... ok
[INFO] [stdout] test packet::tests::render_preserves_structural_markers_in_body_verbatim ... ok
[INFO] [stdout] test packet::tests::render_prompt_contains_repo_and_revision ... ok
[INFO] [stdout] test reviewed::tests::deserialize_missing_commit_id_fails_with_named_error ... ok
[INFO] [stdout] test packet::tests::render_stack_only_has_no_changes_section ... ok
[INFO] [stdout] test packet::tests::write_fenced_block_escalates_for_quintuple_run ... ok
[INFO] [stdout] test packet::tests::write_fenced_block_uses_three_ticks_when_payload_has_no_run ... ok
[INFO] [stdout] test packet::tests::write_fenced_block_escapes_triple_backtick_in_payload ... ok
[INFO] [stdout] test packet::tests::write_anchor_context_emits_full_block ... ok
[INFO] [stdout] test reviewed::tests::empty_diff_paths_with_description_marked_reports_fully_reviewed ... ok
[INFO] [stdout] test packet::tests::render_prompt_equals_render_prompt_with_inline_mode ... ok
[INFO] [stdout] test reviewed::tests::into_state_logs_warning_for_invalid_change_id ... ok
[INFO] [stdout] test reviewed::tests::into_state_keeps_valid_entries_alongside_dropped_ones ... ok
[INFO] [stdout] test reviewed::tests::into_state_logs_warning_for_invalid_commit_id ... ok
[INFO] [stdout] test reviewed::tests::files_only_entry_roundtrips ... ok
[INFO] [stdout] test reviewed::tests::empty_diff_paths_without_description_reports_not_fully_reviewed ... ok
[INFO] [stdout] test reviewed::tests::has_entry_returns_false_for_unknown_change_id ... ok
[INFO] [stderr] warning: reviewed.json: dropping entry "abc12345" with invalid commit_id "not-hex!"
[INFO] [stdout] test reviewed::tests::has_entry_returns_true_when_change_id_present ... ok
[INFO] [stdout] test reviewed::tests::is_fully_reviewed_all_files_and_description_returns_true ... ok
[INFO] [stdout] test reviewed::tests::empty_entry_with_no_marks_is_not_persisted ... ok
[INFO] [stdout] test reviewed::tests::is_fully_reviewed_empty_diff_only_needs_description ... ok
[INFO] [stdout] test reviewed::tests::is_fully_reviewed_partial_files_returns_false ... ok
[INFO] [stdout] test reviewed::tests::is_fully_reviewed_files_without_description_returns_false ... ok
[INFO] [stdout] test reviewed::tests::description_only_entry_roundtrips ... ok
[INFO] [stdout] test reviewed::tests::is_marked_fully_reviewed_returns_false_for_unknown_change ... ok
[INFO] [stdout] test reviewed::tests::is_marked_fully_reviewed_returns_false_when_files_partially_marked ... ok
[INFO] [stdout] test reviewed::tests::is_marked_fully_reviewed_true_when_match_and_full ... ok
[INFO] [stdout] test packet::tests::build_packet_aggregates_stack_and_change_comments ... ok
[INFO] [stderr] warning: reviewed.json: dropping entry with invalid change_id "bad"
[INFO] [stdout] test reviewed::tests::load_missing_file_returns_empty_state ... ok
[INFO] [stdout] test reviewed::tests::mark_creates_entry_when_missing ... ok
[INFO] [stdout] test reviewed::tests::mark_is_idempotent ... ok
[INFO] [stdout] test reviewed::tests::mark_drops_stale_entry_on_commit_id_mismatch ... ok
[INFO] [stdout] test reviewed::tests::mark_repeat_same_commit_returns_no_reset_outcome ... ok
[INFO] [stdout] test reviewed::tests::load_skips_entry_with_invalid_commit_id ... ok
[INFO] [stdout] test reviewed::tests::mark_commit_id_mismatch_returns_reset_outcome ... ok
[INFO] [stdout] test reviewed::tests::load_skips_entry_with_invalid_change_id ... ok
[INFO] [stdout] test reviewed::tests::save_then_load_roundtrip ... ok
[INFO] [stdout] test reviewed::tests::multiple_changes_with_mixed_shapes_roundtrip ... ok
[INFO] [stdout] test packet::tests::jsonl_mode_per_change_file_replaces_inline_body ... ok
[INFO] [stdout] test reviewed::tests::mark_first_touch_returns_no_reset_outcome ... ok
[INFO] [stdout] test reviewed::tests::unmark_is_noop_for_unknown_change_id ... ok
[INFO] [stdout] test reviewed::tests::unmark_removes_file_from_reviewed_files ... ok
[INFO] [stdout] test reviewed::tests::unmark_is_noop_when_commit_id_mismatches ... ok
[INFO] [stdout] test store::tests::clear_stale_no_jsonl_returns_zero ... ok
[INFO] [stdout] test stderr_log::tests::log_path_resolves_to_dot_jj_review_jjr_log ... ok
[INFO] [stdout] test reviewed::tests::is_marked_fully_reviewed_returns_false_when_commit_id_mismatches ... ok
[INFO] [stdout] test reviewed::tests::unmark_clears_description_bit ... ok
[INFO] [stderr] SUSPENDED_MARKER
[INFO] [stdout] test packet::tests::build_packet_include_stale_orders_stale_and_pending_by_created_at ... ok
[INFO] [stdout] test store::tests::count_all_for_stack_excludes_stack_scoped_for_other_hash ... ok
[INFO] [stdout] test store::tests::clear_stale_no_stale_comments_returns_zero ... ok
[INFO] [stdout] test store::tests::clear_stale_for_stack_empty_stack_returns_zero_stats ... ok
[INFO] [stdout] test store::tests::clear_all_for_stack_preserves_stack_scoped_for_other_hash ... ok
[INFO] [stdout] test store::tests::clear_stale_for_stack_one_change_with_stale ... ok
[INFO] [stdout] test store::tests::clear_stale_all_stale_removes_all ... ok
[INFO] [stdout] test store::tests::count_all_for_stack_includes_stack_scoped_for_matching_hash ... ok
[INFO] [stdout] test store::tests::delete_nonexistent_errors ... ok
[INFO] [stdout] test store::tests::clear_all_for_stack_removes_stack_scoped_for_matching_hash ... ok
[INFO] [stdout] test store::tests::clear_stale_mixed_removes_only_stale_preserves_order ... ok
[INFO] [stdout] test store::tests::clear_stale_for_stack_multiple_changes_partial_stale ... ok
[INFO] [stdout] test store::tests::delete_removes_target_preserves_others ... ok
[INFO] [stdout] test store::tests::clear_stale_preserves_orphaned_and_change_scoped ... ok
[INFO] [stdout] test stderr_log::tests::suspend_routes_writes_to_inherited_stderr_not_log ... ok
[INFO] [stdout] test stderr_log::tests::writes_route_to_log_when_not_suspended ... ok
[INFO] [stdout] test store::tests::ensure_ignored_adds_entry_to_gitignore ... ok
[INFO] [stdout] test store::tests::description_comment_save_and_load_via_load_change_comments ... ok
[INFO] [stdout] test store::tests::delete_with_duplicate_timestamp_in_file_errors ... ok
[INFO] [stdout] test store::tests::description_comment_delete_by_created_at ... ok
[INFO] [stdout] test store::tests::ensure_ignored_appends_to_existing_file_with_content ... ok
[INFO] [stdout] test store::tests::description_comment_update_by_created_at ... ok
[INFO] [stdout] test store::tests::divergent_change_id_uses_underscored_filename ... ok
[INFO] [stdout] test store::tests::ensure_ignored_inserts_separator_when_file_lacks_trailing_newline ... ok
[INFO] [stdout] test store::tests::ensure_ignored_does_not_duplicate_entries ... ok
[INFO] [stdout] test store::tests::description_comment_stored_alongside_line_comment_in_same_file ... ok
[INFO] [stdout] test store::tests::ensure_review_dir_is_idempotent ... ok
[INFO] [stdout] test store::tests::list_change_ids_empty_dir_returns_empty ... ok
[INFO] [stdout] test store::tests::list_change_ids_ambiguous_decode_silently_dropped ... ok
[INFO] [stderr] warning: skipping malformed line 1 in /tmp/.tmpaNOEwk/.jj-review/comments/abc12345.jsonl: io error: JSON parse error in /tmp/.tmpaNOEwk/.jj-review/comments/abc12345.jsonl: key must be a string at line 1 column 2
[INFO] [stdout] test store::tests::list_change_ids_missing_dir_returns_empty ... ok
[INFO] [stdout] test store::tests::list_change_ids_excludes_stack_file ... ok
[INFO] [stdout] test store::tests::ensure_review_dir_creates_directory ... ok
[INFO] [stdout] test store::tests::list_change_ids_malformed_filename_skipped_silently ... ok
[INFO] [stdout] test store::tests::ensure_ignored_does_not_create_jjignore ... ok
[INFO] [stdout] test store::tests::load_nonexistent_file_returns_empty_vec ... ok
[INFO] [stdout] test store::tests::list_change_ids_multiple_files_returns_all ... ok
[INFO] [stdout] test store::tests::list_change_ids_divergent_change_id_roundtrips ... ok
[INFO] [stdout] test store::tests::load_stack_comments_filters_by_revset_hash ... ok
[INFO] [stdout] test store::tests::missing_schema_version_returns_hard_error ... ok
[INFO] [stdout] test store::tests::load_stack_comments_returns_empty_when_file_absent ... ok
[INFO] [stdout] test store::tests::malformed_line_skipped_valid_records_returned ... ok
[INFO] [stdout] test store::tests::list_change_ids_single_file_returns_one_id ... ok
[INFO] [stdout] test store::tests::save_then_load_roundtrip ... ok
[INFO] [stdout] test store::tests::save_stack_scoped_comment_routes_to_stack_file ... ok
[INFO] [stdout] test store::tests::save_with_duplicate_timestamp_errors_before_writing ... ok
[INFO] [stdout] test store::tests::schema_version_mismatch_returns_error ... ok
[INFO] [stdout] test store::tests::load_stack_comments_errors_on_non_stack_record ... ok
[INFO] [stdout] test store::tests::update_with_duplicate_timestamp_in_file_errors ... ok
[INFO] [stdout] test store::tests::v1_record_without_scope_loads_via_store ... ok
[INFO] [stdout] test store::tests::save_change_scoped_comment_routes_to_change_file ... ok
[INFO] [stdout] test tui::composer::tests::editing_is_some_false_for_new_composer ... ok
[INFO] [stdout] test tui::composer::tests::body_input_inserts_char_into_body ... ok
[INFO] [stdout] test store::tests::update_changes_body_preserves_created_at ... ok
[INFO] [stdout] test store::tests::write_file_failure_leaves_original_file_intact ... ok
[INFO] [stdout] test tui::composer::tests::editing_is_some_true_for_edit_composer ... ok
[INFO] [stdout] test tui::composer::tests::for_edit_prefills_body_and_severity ... ok
[INFO] [stdout] test tui::composer::tests::line_available_clone_returns_none_when_not_set ... ok
[INFO] [stdout] test tui::composer::tests::refusal_status_round_trips ... ok
[INFO] [stdout] test tui::composer::tests::set_scope_overwrites_active_scope ... ok
[INFO] [stdout] test store::tests::save_multiple_load_returns_all ... ok
[INFO] [stdout] test tui::composer::tests::for_edit_delete_path_uses_original_anchor ... ok
[INFO] [stdout] test store::tests::update_nonexistent_comment_errors ... ok
[INFO] [stdout] test store::tests::save_and_delete_stack_scoped_comment ... ok
[INFO] [stdout] test tui::composer::tests::line_available_clone_returns_some_when_set ... ok
[INFO] [stdout] test store::tests::write_file_leaves_no_temp_files_in_comments_dir ... ok
[INFO] [stdout] test tui::composer::tests::set_severity_changes_severity ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comment_to_inline_returns_none_for_change_id_mismatch ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comment_to_inline_returns_none_for_orphaned ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comment_to_inline_returns_none_for_stale ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comment_to_inline_returns_some_for_matching_change ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comments_append_to_description_view_with_separator ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comments_do_not_leak_into_diff_file_view ... ok
[INFO] [stdout] test tui::diff_view::tests::change_comments_skip_separator_when_description_is_empty ... ok
[INFO] [stdout] test tui::diff_view::tests::comment_to_inline_carries_comment_index ... ok
[INFO] [stdout] test tui::diff_view::tests::comment_to_inline_returns_none_for_file_mismatch ... ok
[INFO] [stdout] test tui::diff_view::tests::comment_to_inline_returns_none_for_description_anchor ... ok
[INFO] [stdout] test tui::diff_view::tests::comment_to_inline_returns_none_when_file_path_is_none ... ok
[INFO] [stdout] test tui::diff_view::tests::comment_to_inline_returns_some_for_matching_file ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_does_not_inject_into_diff_file_view ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_injects_into_description_view_at_display_line ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_to_inline_returns_none_for_stale_or_orphaned ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_to_inline_uses_display_line_as_target ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_with_display_line_none_does_not_inject_anywhere ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_with_display_line_zero_does_not_inject_anywhere ... ok
[INFO] [stdout] test tui::diff_view::tests::from_description_empty_input_renders_no_description_placeholder ... ok
[INFO] [stdout] test tui::file_picker::tests::move_cursor_up_clamps_at_zero ... ok
[INFO] [stdout] test tui::diff_view::tests::description_comment_to_inline_returns_none_for_line_anchor ... ok
[INFO] [stdout] test tui::diff_view::tests::orphaned_comment_is_excluded_from_inline_rendering ... ok
[INFO] [stdout] test tui::diff_view::tests::stale_comment_is_excluded_from_inline_rendering ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_counts_active_comments_per_file ... ok
[INFO] [stdout] test tui::file_picker::tests::reviewed_indicator_text_uses_blank_when_unreviewed ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_empty_comments_all_zero ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_excludes_stale_and_orphaned ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_reviewed_flag_propagates_per_view_index ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_view_indices_start_at_zero_for_description ... ok
[INFO] [stdout] test tui::file_picker::tests::build_entries_comment_count_for_oob_view_index_returns_zero ... ok
[INFO] [stdout] test tui::file_picker::tests::move_cursor_down_increments_index ... ok
[INFO] [stdout] test tui::diff_view::tests::inject_produces_meta_line_with_comment_index ... ok
[INFO] [stdout] test tui::file_picker::tests::reviewed_indicator_text_widths_match_across_states ... ok
[INFO] [stdout] test tui::file_picker::tests::reviewed_indicator_text_uses_check_when_reviewed ... ok
[INFO] [stdout] test tui::file_picker::tests::move_cursor_down_clamps_at_last ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::all_hunk_separators_returns_zero ... ok
[INFO] [stdout] test tui::file_picker::tests::truncate_path_for_width_short_path_returned_unchanged ... ok
[INFO] [stdout] test tui::file_picker::tests::truncate_path_for_width_left_truncates_with_ellipsis ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::empty_views_returns_zero ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::description_view_returns_zero_for_first_description_line ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::first_row_is_hunk_separator_second_is_added ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::notice_only_view_returns_zero_fallback ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::hunk_header_at_index_zero_is_not_commentable_skips_to_first_added ... ok
[INFO] [stdout] test tui::help_screen::tests::help_body_contains_review_tracking_section_header ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_change_rows_after_separator ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::first_row_is_added_returns_zero ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_change_comment_follows_change_row ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_empty_stack_has_header_and_separator ... ok
[INFO] [stdout] test tui::help_screen::tests::help_body_documents_check_glyph_legend ... ok
[INFO] [stdout] test tui::help_screen::tests::help_body_documents_u_keybind_for_toggle ... ok
[INFO] [stdout] test tui::first_commentable_row_tests::out_of_bounds_view_idx_returns_zero ... ok
[INFO] [stdout] test tui::file_picker::tests::render_unreviewed_row_keeps_indicator_slot_blank ... ok
[INFO] [stdout] test tui::file_picker::tests::scrollbar_thumb_position_reflects_scroll_offset ... ok
[INFO] [stdout] test tui::file_picker::tests::render_reviewed_row_shows_check_glyph_before_path ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_skips_summary_footer_when_empty_counts ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_stack_comments_appear_before_separator ... ok
[INFO] [stdout] test tui::file_picker::tests::render_path_starts_at_same_column_for_both_reviewed_states ... ok
[INFO] [stdout] test tui::overview_screen::tests::build_rows_summary_footer_emits_two_lines ... ok
[INFO] [stdout] test tui::overview_screen::tests::column_layout_100_shows_idx ... ok
[INFO] [stdout] test tui::overview_screen::tests::column_layout_120_shows_idx_and_inset ... ok
[INFO] [stdout] test tui::overview_screen::tests::column_layout_79_no_inset_body ... ok
[INFO] [stdout] test tui::file_picker::tests::scrollbar_hidden_when_entries_fit_picker_body ... ok
[INFO] [stdout] test tui::overview_screen::tests::column_layout_80_shows_inset_body ... ok
[INFO] [stdout] test tui::overview_screen::tests::compute_scroll_offset_selected_below_viewport ... ok
[INFO] [stdout] test tui::overview_screen::tests::compute_scroll_offset_selected_in_view ... ok
[INFO] [stdout] test tui::overview_screen::tests::column_layout_99_no_idx ... ok
[INFO] [stdout] test tui::overview_screen::tests::dot_string_mixed_severities_caps_total_globally ... ok
[INFO] [stdout] test tui::overview_screen::tests::dot_string_two_required_renders_two_dots_and_count ... ok
[INFO] [stdout] test tui::overview_screen::tests::move_cursor_skips_separator ... ok
[INFO] [stdout] test tui::file_picker::tests::render_reviewed_indicator_cell_is_dark_gray ... ok
[INFO] [stdout] test tui::overview_screen::tests::compute_scroll_offset_selected_above_current_offset ... ok
[INFO] [stdout] test tui::overview_screen::tests::move_cursor_up_from_first_stays ... ok
[INFO] [stdout] test tui::overview_screen::tests::move_cursor_skips_summary_footer_lines ... ok
[INFO] [stdout] test tui::overview_screen::tests::dot_string_zero_is_empty ... ok
[INFO] [stdout] test tui::overview_screen::tests::overview_footer_fits_within_80_cols ... ok
[INFO] [stdout] test tui::overview_screen::tests::dot_string_at_cap_no_ellipsis ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_check_only_span_is_dark_gray ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_fully_reviewed_with_comments_appends_check_after_count ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_dots_and_check_split_span_styling ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_fully_reviewed_no_comments_renders_check_on_right ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_width_matches_inner_width_at_120_cols ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_width_matches_inner_width_at_80_cols ... ok
[INFO] [stdout] test tui::overview_screen::tests::right_col_no_comments_reviewed_is_check_only ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_width_matches_inner_width_when_reviewed_with_comments_at_80 ... ok
[INFO] [stdout] test tui::overview_screen::tests::right_col_width_matches_rendered_chars ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_uses_distinct_glyphs_for_selected_and_current ... ok
[INFO] [stdout] test tui::overview_screen::tests::right_col_no_comments_unreviewed_is_empty ... ok
[INFO] [stdout] test tui::overview_screen::tests::severity_histogram_excludes_stale ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_preserves_plain_text ... ok
[INFO] [stdout] test tui::overview_screen::tests::right_col_with_comments_reviewed_is_dots_and_check ... ok
[INFO] [stdout] test tui::overview_screen::tests::render_change_row_line_no_comments_unreviewed_renders_no_right_glyph ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_bidi_marks ... ok
[INFO] [stdout] test tui::overview_screen::tests::right_col_with_comments_unreviewed_is_dots ... ok
[INFO] [stdout] test tui::refused_scope_chord_status_strings_are_byte_stable ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_csi_escape ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_apc_sequence ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_osc_with_bel_terminator ... ok
[INFO] [stdout] test tui::send_to_claude::tests::files_affected_excludes_change_scoped_and_stack_scoped ... ok
[INFO] [stdout] test tui::send_to_claude::tests::files_affected_excludes_orphaned_comments ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_vertical_bar ... ok
[INFO] [stdout] test tui::send_to_claude::tests::confirm_footer_fits_within_80_cols ... ok
[INFO] [stdout] test tui::send_to_claude::tests::files_affected_counts_only_line_scoped_comments ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_various_box_drawing ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_dcs_sequence ... ok
[INFO] [stdout] test tui::overview_screen::tests::strip_removes_osc_with_st_terminator ... ok
[INFO] [stdout] test tui::file_picker::tests::scrollbar_renders_when_entries_overflow_picker_body ... ok
[INFO] [stdout] test tui::send_to_claude::tests::files_affected_excludes_stale_comments ... ok
[INFO] [stdout] test tui::send_to_claude::tests::files_affected_sorted_by_path ... ok
[INFO] [stdout] test tui::send_to_claude::tests::into_confirm_from_confirm_is_identity ... ok
[INFO] [stdout] test tui::send_to_claude::tests::into_confirm_from_prompt_view_produces_confirm ... ok
[INFO] [stdout] test tui::send_to_claude::tests::into_prompt_view_from_confirm_produces_prompt_view ... ok
[INFO] [stdout] test tui::send_to_claude::tests::into_prompt_view_from_prompt_view_resets_scroll ... ok
[INFO] [stdout] test tui::send_to_claude::tests::prompt_view_footer_fits_within_80_cols ... ok
[INFO] [stdout] test tui::send_to_claude::tests::scope_severity_grid_all_scopes_in_spec_order ... ok
[INFO] [stdout] test tui::send_to_claude::tests::scope_severity_grid_empty_packet_returns_empty ... ok
[INFO] [stdout] test tui::send_to_claude::tests::scope_severity_grid_orphaned_comments_excluded ... ok
[INFO] [stdout] test tui::send_to_claude::tests::scope_severity_grid_stale_comments_excluded ... ok
[INFO] [stdout] test tui::stale_screen::tests::compute_scroll_offset_above_viewport_scrolls_up ... ok
[INFO] [stdout] test tui::stale_screen::tests::compute_scroll_offset_already_visible_no_change ... ok
[INFO] [stdout] test tui::stale_screen::tests::compute_scroll_offset_below_viewport_scrolls_down ... ok
[INFO] [stdout] test tui::stale_screen::tests::compute_scroll_offset_narrow_layout_uses_taller_per_entry ... ok
[INFO] [stdout] test tui::stale_screen::tests::current_line_at_file_not_in_diff_returns_not_present ... ok
[INFO] [stdout] test tui::stale_screen::tests::compute_scroll_offset_first_entry_no_scroll ... ok
[INFO] [stdout] test tui::stale_screen::tests::current_line_at_file_present_matching_anchor_returns_text ... ok
[INFO] [stdout] test tui::stale_screen::tests::current_line_at_file_present_anchor_line_absent_returns_not_present ... ok
[INFO] [stdout] test tui::stale_screen::tests::rendered_rows_for_anchor_description_drops_was_now_lines ... ok
[INFO] [stdout] test tui::stale_screen::tests::current_line_at_renamed_file_matches_to_path ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_comment_indices_mixed_status ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_comment_indices_no_stale ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_comment_indices_orphaned_excluded ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_comment_indices_empty_list ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_footer_fits_within_reasonable_width ... ok
[INFO] [stdout] test tui::stale_screen::tests::stale_comment_indices_all_stale ... ok
[INFO] [stdout] test tui::stale_screen::tests::current_line_at_for_non_line_anchor_returns_not_present ... ok
[INFO] [stdout] test tui::tests::build_entry_lines_count_matches_total_rendered_rows_for_description_anchor ... ok
[INFO] [stdout] test tui::tests::build_line_target_returns_ready_for_added_line ... ok
[INFO] [stdout] test tui::tests::build_line_target_returns_non_commentable_for_every_non_diff_kind ... ok
[INFO] [stdout] test tui::tests::apply_post_claude_stack_reload_replaces_entries_and_resets_cursor ... ok
[INFO] [stdout] test tui::tests::apply_post_claude_stack_reload_updates_revset_and_hash_when_fallback ... ok
[INFO] [stdout] test tui::tests::build_entry_lines_count_matches_total_rendered_rows_for_mixed_anchors ... ok
[INFO] [stdout] test tui::stale_screen::tests::total_rendered_rows_sums_per_anchor_height_for_mixed_entries ... ok
[INFO] [stdout] test tui::tests::build_line_target_returns_ready_for_context_line_and_pick_side_chooses_new ... ok
[INFO] [stdout] test tui::tests::alt_k_in_single_change_mode_refuses_chord_and_does_not_switch_scope ... ok
[INFO] [stdout] test tui::tests::build_line_target_returns_ready_for_removed_line ... ok
[INFO] [stdout] test tui::tests::collect_context_at_end_no_after ... ok
[INFO] [stdout] test tui::tests::collect_context_basic ... ok
[INFO] [stdout] test tui::tests::collect_context_at_start_no_before ... ok
[INFO] [stdout] test tui::stale_screen::tests::rendered_rows_for_anchor_line_matches_constants ... ok
[INFO] [stdout] test tui::tests::collect_context_skips_inline_comment_meta_and_body ... ok
[INFO] [stdout] test tui::tests::app_default_needs_full_redraw_is_false ... ok
[INFO] [stdout] test tui::tests::ctrl_k_inside_composer_body_is_noop_and_does_not_switch_scope ... ok
[INFO] [stdout] test tui::tests::change_comment_appears_in_description_view_not_in_file_view ... ok
[INFO] [stdout] test tui::tests::cycle_diff_mode_emits_status_message ... ok
[INFO] [stdout] test tui::tests::cycle_diff_mode_resets_cursor_and_scroll ... ok
[INFO] [stdout] test tui::tests::c_on_change_comment_row_defaults_to_change_scope ... ok
[INFO] [stdout] test tui::tests::collect_orphaned_comments_all_in_stack_returns_empty ... ok
[INFO] [stdout] test tui::tests::collect_orphaned_comments_marks_out_of_stack_ids_as_orphaned ... ok
[INFO] [stdout] test tui::tests::cycle_file_auto_marks_landed_view_as_reviewed ... ok
[INFO] [stdout] test tui::tests::cycle_diff_mode_walks_three_states_and_returns_to_auto ... ok
[INFO] [stdout] test tui::tests::collect_context_caps_at_three_each_side ... ok
[INFO] [stdout] test tui::tests::cycle_file_clears_or_replaces_status_on_normal_movement ... ok
[INFO] [stdout] test tui::tests::delete_comment_returns_refused_when_comment_not_found ... ok
[INFO] [stdout] test tui::tests::cycle_file_does_not_panic_on_count_zero ... ok
[INFO] [stdout] test tui::tests::cycle_file_single_file_shortcut_marks_current_file_reviewed ... ok
[INFO] [stdout] test tui::tests::delete_focused_comment_with_missing_backing_file_sets_delete_failed_status ... ok
[INFO] [stdout] test tui::tests::d_on_change_comment_row_deletes_the_comment ... ok
[INFO] [stdout] test tui::tests::delete_focused_comment_on_non_meta_line_sets_error_message ... ok
[INFO] [stdout] test tui::tests::delete_via_composer_without_editing_returns_refused ... ok
[INFO] [stdout] test tui::tests::delete_via_composer_io_error_returns_errored ... ok
[INFO] [stdout] test tui::tests::delete_focused_comment_removes_inline_and_moves_cursor_to_target ... ok
[INFO] [stdout] test tui::tests::cycle_file_sets_status_at_last_file_when_already_at_max ... ok
[INFO] [stdout] test tui::tests::cycle_file_sets_status_at_first_file_when_already_at_zero ... ok
[INFO] [stdout] test tui::tests::delete_via_composer_after_chord_swap_deletes_original_anchor ... ok
[INFO] [stdout] test tui::tests::delete_stack_comment_via_composer_removes_from_stack_file ... ok
[INFO] [stdout] test tui::tests::collect_orphaned_comments_empty_dir_returns_empty ... ok
[INFO] [stdout] test tui::tests::cycle_file_sets_status_only_one_file_when_count_is_one_in_either_direction ... ok
[INFO] [stdout] test tui::tests::delete_middle_of_three_comments_repositions_cursor_and_keeps_others ... ok
[INFO] [stdout] test tui::tests::enter_reanchor_mode_auto_marks_landed_file ... ok
[INFO] [stdout] test tui::tests::e_on_description_comment_row_opens_edit_composer_in_description_scope ... ok
[INFO] [stdout] test tui::tests::delete_focused_with_cursor_at_end_clamps_to_new_last ... ok
[INFO] [stdout] test tui::tests::edit_save_aborts_when_in_memory_record_missing ... ok
[INFO] [stdout] test tui::tests::esc_from_main_with_no_composer_cancels_reanchor_mode ... ok
[INFO] [stdout] test tui::tests::e_on_change_comment_row_opens_edit_composer_with_change_scope ... ok
[INFO] [stdout] test tui::tests::edit_stack_anchor_in_single_change_mode_alt_k_after_alt_l_refuses_with_status ... ok
[INFO] [stdout] test tui::tests::edit_then_esc_preserves_original_comment_on_disk ... ok
[INFO] [stdout] test tui::tests::esc_from_composer_in_reanchor_mode_preserves_pending_reanchor ... ok
[INFO] [stdout] test tui::tests::auto_mode_threshold_boundary_119_vs_120 ... ok
[INFO] [stdout] test tui::tests::diff_body_width_cache_is_set_after_render ... ok
[INFO] [stdout] test tui::tests::edit_save_uses_latest_in_memory_anchor_not_composer_snapshot ... ok
[INFO] [stdout] test tui::tests::edit_change_comment_for_non_current_change_from_overview_persists ... ok
[INFO] [stdout] test tui::tests::fallback_scope_returns_change_when_target_absent ... ok
[INFO] [stdout] test tui::tests::edit_stack_comment_from_overview_persists_body_and_severity ... ok
[INFO] [stdout] test tui::tests::f_key_opens_file_picker ... ok
[INFO] [stdout] test tui::tests::fallback_scope_returns_line_when_target_present ... ok
[INFO] [stdout] test tui::tests::file_header_label_renders_without_reviewed_glyph_in_pure_text ... ok
[INFO] [stdout] test tui::tests::file_header_label_no_diff_files_shows_description_view ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_binary_file_sets_status_message ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_binary_auto_marks_landed_view ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_non_binary_auto_marks_landed_file ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_description_entry_navigates_to_description_view ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_80_cols_full_footer ... ok
[INFO] [stdout] test tui::tests::file_picker_q_returns_to_main_unchanged ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_switches_file_index ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_drops_question_mark_at_70 ... ok
[INFO] [stdout] test tui::tests::file_picker_esc_returns_to_main_unchanged ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_fits_within_width_for_all_target_widths ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_with_badge_at_minimum_width ... ok
[INFO] [stdout] test tui::tests::file_picker_enter_single_file_navigates_to_first_commentable_line ... ok
[INFO] [stdout] test tui::tests::focused_comment_returns_none_on_diff_line ... ok
[INFO] [stdout] test tui::tests::footer_text_stack_mode_contains_revision ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_no_badge_when_no_filter ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_stack_segment_present_with_stack ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_severity_badge_appended ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_irreducible_always_present ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_drops_claude_at_65 ... ok
[INFO] [stdout] test tui::tests::footer_text_for_width_stack_segment_absent_without_stack ... ok
[INFO] [stdout] test tui::tests::file_header_label_shows_path_and_position ... ok
[INFO] [stdout] test tui::tests::focused_comment_returns_some_on_inline_meta_line ... ok
[INFO] [stdout] test tui::tests::format_persist_error_sanitizes_path_with_escape_sequences ... ok
[INFO] [stdout] test tui::tests::footer_text_single_change_mode_has_no_revision_label ... ok
[INFO] [stdout] test tui::tests::initial_land_marks_description_reviewed ... ok
[INFO] [stdout] test tui::tests::force_side_by_side_at_width_below_useful_threshold_falls_back_to_unified ... ok
[INFO] [stdout] test tui::tests::invoke_claude_from_tui_post_reload_marks_current_file_reviewed ... ok
[INFO] [stdout] test tui::tests::description_view_never_renders_side_by_side ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_always ... ok
[INFO] [stdout] test tui::tests::cursor_out_of_range_clamped_when_layout_shrinks ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_auto ... ok
[INFO] [stdout] test tui::tests::is_view_reviewed_returns_false_when_app_commit_id_mismatches_stored ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_persists_across_load ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_invalid_value_is_never ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_sets_description_bit_on_index_zero ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_sets_file_bit_on_diff_file_index ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_does_not_clobber_existing_status_on_reset ... ok
[INFO] [stdout] test tui::tests::maybe_clear_for_full_redraw_clears_when_flagged_and_resets_flag ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_explicit_never ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_silent_on_first_touch_unknown_change ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_missing_file_is_never ... ok
[INFO] [stdout] test tui::tests::load_transition_mode_malformed_toml_is_never ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_preserves_existing_status_on_save_failure ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_surfaces_reset_toast_on_commit_id_mismatch ... ok
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_silent_on_repeat_mark_same_commit ... ok
[INFO] [stdout] test tui::tests::new_current_index_after_reload_empty_entries_returns_zero ... ok
[INFO] [stdout] test tui::tests::open_composer_for_edit_on_non_meta_line_sets_error_message ... ok
[INFO] [stdout] test tui::tests::new_current_index_after_reload_clamps_when_old_index_past_new_end ... ok
[INFO] [stdout] test tui::tests::move_line_delta_zero_on_skip_row_finds_navigable_row ... ok
[INFO] [stdout] test tui::tests::open_meta_comment_editor_change_anchor_populates_no_availability_for_other_scopes ... ok
[INFO] [stdout] test tui::tests::new_current_index_after_reload_keeps_old_index_when_change_abandoned_and_in_range ... ok
[INFO] [stdout] test tui::tests::multiple_change_comments_in_app_render_in_created_at_order ... ok
[INFO] [stdout] test tui::tests::open_composer_for_edit_prepopulates_from_focused_comment ... ok
[INFO] [stdout] test tui::tests::open_meta_comment_editor_line_anchor_populates_line_available_with_target ... ok
[INFO] [stdout] test tui::tests::open_meta_comment_editor_description_scope_populates_description_context ... ok
[INFO] [stdout] test tui::tests::pending_reanchor_survives_stale_screen_round_trip ... ok
[INFO] [stdout] test tui::tests::open_meta_comment_editor_stack_anchor_populates_stack_available_with_snapshot ... ok
[INFO] [stdout] test tui::tests::new_change_comment_from_overview_targets_cursor_change ... ok
[INFO] [stdout] test tui::tests::persist_cursor_on_exit_no_op_for_single_change_app ... ok
[INFO] [stdout] test tui::tests::pick_retreat_index_at_one_returns_zero ... ok
[INFO] [stdout] test tui::tests::pick_retreat_index_in_middle_returns_predecessor ... ok
[INFO] [stdout] test tui::tests::pick_side_new_for_context_line ... ok
[INFO] [stdout] test tui::tests::persist_cursor_on_exit_writes_current_index_for_stack_app ... ok
[INFO] [stdout] test tui::tests::pick_retreat_index_at_large_value ... ok
[INFO] [stdout] test tui::tests::new_current_index_after_reload_returns_position_of_matching_change_id ... ok
[INFO] [stdout] test tui::tests::inline_comment_on_pure_deletion_row_renders_in_left_column_when_anchored_to_old_side ... ok
[INFO] [stdout] test tui::tests::pick_side_new_when_both_absent ... ok
[INFO] [stdout] test tui::tests::move_line_in_side_by_side_walks_paired_rows ... ok
[INFO] [stdout] test tui::tests::inline_comment_side_new_renders_in_right_column_only ... ok
[INFO] [stdout] test tui::tests::pick_side_old_for_removed_line ... ok
[INFO] [stdout] test tui::tests::progress_bar_first_position ... ok
[INFO] [stdout] test tui::tests::progress_bar_full_position ... ok
[INFO] [stdout] test tui::tests::progress_bar_position_clamps_to_total ... ok
[INFO] [stdout] test tui::tests::progress_bar_zero_width_returns_empty ... ok
[INFO] [stdout] test tui::tests::reanchor_prompt_fits_within_terminal_width_80 ... ok
[INFO] [stdout] test tui::tests::progress_bar_zero_total_returns_empty ... ok
[INFO] [stdout] test tui::tests::reanchor_prompt_falls_back_to_short_form_at_narrow_width ... ok
[INFO] [stdout] test tui::tests::pick_retreat_index_at_zero_returns_none ... ok
[INFO] [stdout] test tui::tests::pick_side_new_for_added_line ... ok
[INFO] [stdout] test tui::tests::reconcile_and_persist_surfaces_first_error_when_multiple_fail ... ok
[INFO] [stdout] test tui::tests::refresh_current_change_marks_current_file_reviewed ... ok
[INFO] [stdout] test tui::tests::render_dots_one ... ok
[INFO] [stdout] test tui::tests::render_dots_one_over_max_truncates_with_ellipsis ... ok
[INFO] [stdout] test tui::tests::render_dots_at_max ... ok
[INFO] [stdout] test tui::tests::render_file_header_appends_check_glyph_when_reviewed ... ok
[INFO] [stdout] test tui::tests::resolve_diff_mode_auto_stays_unified_below_threshold ... ok
[INFO] [stdout] test tui::tests::resolve_diff_mode_description_view_is_always_unified ... ok
[INFO] [stdout] test tui::tests::resolve_diff_mode_auto_picks_side_by_side_at_threshold ... ok
[INFO] [stdout] test tui::tests::render_dots_far_over_max_still_truncates ... ok
[INFO] [stdout] test tui::tests::resolve_diff_mode_force_side_by_side_ignores_width ... ok
[INFO] [stdout] test tui::tests::sanitize_for_status_preserves_printable_and_tab ... ok
[INFO] [stdout] test tui::tests::s_key_from_main_transitions_to_stale_screen ... ok
[INFO] [stdout] test tui::tests::render_dots_zero_is_empty ... ok
[INFO] [stdout] test tui::tests::sanitize_for_status_strips_escape_and_control_bytes ... ok
[INFO] [stdout] test tui::tests::reanchor_composer_save_creates_new_and_deletes_stale ... ok
[INFO] [stdout] test tui::tests::save_composer_change_scope_saves_to_change_file ... ok
[INFO] [stdout] test tui::tests::save_composer_duplicate_timestamp_errors_and_preserves_body ... ok
[INFO] [stdout] test tui::tests::save_change_scope_comment_sets_status_pointing_to_description_view ... ok
[INFO] [stdout] test tui::tests::sanitize_for_status_strips_unicode_bidi_overrides ... ok
[INFO] [stdout] test tui::tests::resolve_diff_mode_force_unified_ignores_width ... ok
[INFO] [stdout] test tui::tests::save_composer_refuses_empty_body ... ok
[INFO] [stdout] test tui::tests::save_composer_edit_mode_calls_update_and_sets_updated_at ... ok
[INFO] [stdout] test tui::tests::save_composer_edit_mode_io_error_preserves_body_and_returns_errored ... ok
[INFO] [stdout] test tui::tests::save_composer_stack_scope_saves_to_stack_file ... ok
[INFO] [stdout] test tui::tests::save_line_scope_comment_sets_plain_saved_status ... ok
[INFO] [stdout] test tui::tests::scrollbar_overflow_for_view_clamps_scroll_past_end_to_max ... ok
[INFO] [stdout] test tui::tests::render_paired_row_hunk_header_spans_full_body_width_in_side_by_side ... ok
[INFO] [stdout] test tui::tests::scrollbar_accounts_for_inline_comment_augmented_total ... ok
[INFO] [stdout] test tui::tests::render_at_120_cols_in_force_side_by_side_emits_gutter ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_renders_at_exactly_one_line_overflow ... ok
[INFO] [stdout] test tui::tests::scrollbar_does_not_render_when_diff_fits_viewport ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_renders_thumb_at_bottom_when_scroll_past_end ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_returns_none_for_zero_viewport ... ok
[INFO] [stdout] test tui::tests::render_long_context_does_not_bleed_across_gutter ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_returns_some_when_content_overflows_viewport ... ok
[INFO] [stdout] test tui::tests::overview_screen_scrollbar_hidden_when_rows_fit_viewport ... ok
[INFO] [stdout] test tui::tests::scrollbar_thumb_sits_in_bottom_half_when_cursor_at_bottom ... ok
[INFO] [stdout] test tui::tests::scrollbar_renders_when_diff_overflows_viewport ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_returns_none_when_content_fits_viewport ... ok
[INFO] [stdout] test tui::tests::send_to_claude_in_stack_mode_includes_other_changes_comments ... ok
[INFO] [stdout] test tui::tests::scrollbar_thumb_sits_in_top_half_when_cursor_at_top ... ok
[INFO] [stdout] test tui::tests::render_at_80_cols_unified_has_no_gutter_glyph ... ok
[INFO] [stdout] test tui::tests::severity_histogram_excludes_orphaned ... ok
[INFO] [stdout] test tui::tests::send_to_claude_stack_with_one_entry_matches_single_change_shape ... ok
[INFO] [stdout] test tui::tests::scrollbar_state_for_view_returns_none_for_zero_line_buffer ... ok
[INFO] [stdout] test tui::tests::severity_histogram_counts_by_kind ... ok
[INFO] [stdout] test tui::tests::scrollbar_renders_for_long_description_view ... ok
[INFO] [stdout] test tui::tests::single_change_app_has_no_stack_context ... ok
[INFO] [stdout] test tui::tests::severity_filter_excludes_non_matching_comments ... ok
[INFO] [stdout] test tui::tests::send_to_claude_in_single_change_mode_uses_only_current_change ... ok
[INFO] [stdout] test tui::tests::severity_histogram_excludes_stale_and_orphaned_independently ... ok
[INFO] [stdout] test tui::tests::split_body_for_scrollbar_reserves_one_col_on_the_right ... ok
[INFO] [stdout] test tui::tests::scrollbar_resets_on_revision_navigation ... ok
[INFO] [stdout] test tui::tests::split_body_for_scrollbar_skips_when_not_requested ... ok
[INFO] [stdout] test tui::tests::side_by_side_focused_row_reverses_cells_only_keeping_gutter_calm ... ok
[INFO] [stdout] test tui::tests::split_body_for_scrollbar_handles_width_two_boundary ... ok
[INFO] [stdout] test tui::tests::split_body_for_scrollbar_skips_when_area_too_narrow ... ok
[INFO] [stdout] test tui::tests::stale_d_deletes_focused_comment_and_refreshes ... ok
[INFO] [stdout] test tui::tests::side_by_side_focused_row_strips_fg_color_to_match_unified_render ... ok
[INFO] [stdout] test tui::tests::stale_enter_navigates_to_file_in_main_view ... ok
[INFO] [stdout] test tui::tests::scrollbar_renders_at_bottom_after_refresh_shrinks_diff_below_scroll ... ok
[INFO] [stdout] test tui::tests::stale_screen_q_returns_to_main ... ok
[INFO] [stdout] test tui::tests::stale_enter_with_anchor_line_absent_falls_back_to_zero ... ok
[INFO] [stdout] test tui::tests::stale_screen_down_moves_selection ... ok
[INFO] [stdout] test tui::tests::toggle_current_file_reviewed_clears_when_currently_reviewed ... ok
[INFO] [stdout] test tui::tests::toggle_severity_filter_sets_and_clears ... ok
[INFO] [stdout] test tui::tests::toggle_current_file_reviewed_persists_to_disk ... ok
[INFO] [stdout] test tui::tests::toggle_current_file_reviewed_sets_when_currently_unreviewed ... ok
[INFO] [stdout] test tui::tests::toggle_severity_filter_switches_to_different_severity ... ok
[INFO] [stdout] test tui::tests::stale_enter_with_file_not_in_diff_stays_on_stale_screen ... ok
[INFO] [stdout] test tui::tests::toggle_current_file_reviewed_handles_description_view ... ok
[INFO] [stdout] test tui::tests::transition_enabled_always_always_true ... ok
[INFO] [stdout] test tui::tests::stale_e_enters_reanchor_mode_and_switches_to_main ... ok
[INFO] [stdout] test tui::tests::stale_screen_scrollbar_hidden_when_entries_fit_viewport ... ok
[INFO] [stdout] test tui::tests::transition_enabled_auto_below_threshold_is_false ... ok
[INFO] [stdout] test tui::tests::transition_enabled_auto_at_threshold_is_true ... ok
[INFO] [stdout] test tui::tests::transition_enabled_never_always_false ... ok
[INFO] [stdout] test tui::tests::u_key_from_main_toggles_current_file_reviewed ... ok
[INFO] [stdout] test tui::tests::transition_footer_fits_inside_modal ... ok
[INFO] [stdout] test tui::tests::transition_enabled_auto_above_threshold_is_true ... ok
[INFO] [stdout] test util::tests::clamp_with_delta_moves_forward ... ok
[INFO] [stdout] test util::tests::clamp_with_delta_clamps_at_zero ... ok
[INFO] [stdout] test util::tests::clamp_with_delta_exact_zero ... ok
[INFO] [stdout] test util::tests::atomic_write_bytes_writes_payload_and_creates_dir ... ok
[INFO] [stdout] test util::tests::atomic_write_bytes_leaves_no_temp_files_behind ... ok
[INFO] [stdout] test util::tests::atomic_write_bytes_replaces_existing_file ... ok
[INFO] [stdout] test util::tests::confirm_response_accepts_y ... ok
[INFO] [stdout] test util::tests::clamp_with_delta_stays_at_zero ... ok
[INFO] [stdout] test util::tests::confirm_response_accepts_yes ... ok
[INFO] [stdout] test util::tests::confirm_response_rejects_empty ... ok
[INFO] [stdout] test util::tests::confirm_response_trims_surrounding_whitespace ... ok
[INFO] [stdout] test util::tests::find_repo_root_returns_dir_with_dot_jj ... ok
[INFO] [stdout] test util::tests::confirm_response_rejects_no ... ok
[INFO] [stdout] test tui::tests::scrollbar_resets_on_file_navigation ... ok
[INFO] [stdout] test util::tests::clamp_with_delta_clamps_at_max ... ok
[INFO] [stdout] test util::tests::find_repo_root_returns_error_when_no_jj_found ... ok
[INFO] [stdout] test util::tests::find_repo_root_uses_dot_jj_directory_not_file ... ok
[INFO] [stdout] test util::tests::find_repo_root_walks_up_from_subdirectory ... ok
[INFO] [stdout] test util::tests::global_config_path_falls_back_to_dot_config_when_xdg_unset ... ok
[INFO] [stdout] test util::tests::global_config_path_returns_none_when_no_home_or_xdg ... ok
[INFO] [stdout] test util::tests::global_config_path_uses_jjr_config_path_override_first ... ok
[INFO] [stdout] test util::tests::find_repo_root_walks_up_through_multiple_levels ... ok
[INFO] [stdout] test util::tests::global_config_path_treats_empty_xdg_as_unset ... ok
[INFO] [stdout] test util::tests::page_size_minimum_one ... ok
[INFO] [stdout] test util::tests::global_config_path_uses_xdg_when_set ... ok
[INFO] [stdout] test util::tests::page_size_normal ... ok
[INFO] [stdout] test util::tests::pluralize_count_one_is_singular ... ok
[INFO] [stdout] test util::tests::pluralize_count_two_is_plural ... ok
[INFO] [stdout] test util::tests::pluralize_count_zero_is_plural ... ok
[INFO] [stdout] test util::tests::truncate_empty_string_unchanged ... ok
[INFO] [stdout] test util::tests::truncate_exact_length_unchanged ... ok
[INFO] [stdout] test util::tests::truncate_long_string_adds_ellipsis ... ok
[INFO] [stdout] test util::tests::truncate_max_zero_returns_empty ... ok
[INFO] [stdout] test util::tests::truncate_short_string_unchanged ... ok
[INFO] [stdout] test util::tests::confirm_response_rejects_anything_else ... ok
[INFO] [stdout] test working_copy_guard::tests::guard_enter_and_drop_restores_at ... ok
[INFO] [stdout] test working_copy_guard::tests::guard_enter_moves_at_to_target_and_drop_restores ... ok
[INFO] [stdout] test working_copy_guard::tests::guard_drop_on_panic_restores_at ... ok
[INFO] [stdout] test working_copy_guard::tests::guard_enter_same_change_still_works ... ok
[INFO] [stdout] test working_copy_guard::tests::guard_enter_invalid_target_returns_error_at_unchanged ... ok
[INFO] [stdout] test tui::tests::is_view_reviewed_returns_false_initially ... FAILED
[INFO] [stdout] test tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none ... FAILED
[INFO] [stdout] test tui::tests::render_file_header_omits_check_glyph_when_unreviewed ... FAILED
[INFO] [stdout] test tui::tests::overview_screen_scrollbar_renders_when_rows_overflow_viewport ... ok
[INFO] [stdout] test tui::tests::column_layout_thresholds_do_not_flicker_with_scrollbar_visibility ... ok
[INFO] [stdout] test tui::tests::stale_screen_scrollbar_thumb_position_reflects_scroll_offset ... ok
[INFO] [stdout] test tui::tests::overview_screen_scrollbar_thumb_position_reflects_scroll_offset ... ok
[INFO] [stdout] test tui::tests::stale_screen_scrollbar_renders_when_entries_overflow_viewport ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tui::tests::is_view_reviewed_returns_false_initially stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tui::tests::is_view_reviewed_returns_false_initially' (2071) panicked at src/tui.rs:10283:9:
[INFO] [stdout] assertion failed: !app.is_view_reviewed(0)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5ba828c17021 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5ba828c17021 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5ba828c2e69a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5ba828c2e69a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5ba828c1b83c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5ba828c1b83c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5ba828bf24c6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5ba828bf24c6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5ba828c0d9b9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5ba828812d30 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5ba828812d30 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5ba828c0db72 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5ba828c0db72 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5ba828bf25a4 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x5ba828be9989 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5ba828bf353d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5ba828c2ef1c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5ba828c2eee2 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5ba828516cb1 - jjr[e8b05a0de2f55250]::tui::tests::is_view_reviewed_returns_false_initially
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10283:9
[INFO] [stdout]   21:     0x5ba828500287 - jjr[e8b05a0de2f55250]::tui::tests::is_view_reviewed_returns_false_initially::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10281:50
[INFO] [stdout]   22:     0x5ba8285d3636 - <jjr[e8b05a0de2f55250]::tui::tests::is_view_reviewed_returns_false_initially::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5ba82880606b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5ba82880606b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5ba8288136b5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5ba8288136b5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5ba82880e164 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5ba82880e164 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5ba828816802 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5ba828816802 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5ba828816802 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5ba828c1600f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x5ba828c1600f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x7b9ab7aa8aa4 - <unknown>
[INFO] [stdout]   44:     0x7b9ab7b35a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none' (2087) panicked at src/tui.rs:10472:9:
[INFO] [stdout] save failure must surface when nothing else has claimed status; got: None
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5ba828c17021 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5ba828c17021 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5ba828c2e69a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5ba828c2e69a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5ba828c1b83c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5ba828c1b83c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5ba828bf24c6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5ba828bf24c6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5ba828c0d9b9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5ba828812d30 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5ba828812d30 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5ba828c0db72 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5ba828c0db72 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5ba828bf2572 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5ba828be9989 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5ba828bf353d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5ba828c2ef1c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5ba8285528b9 - jjr[e8b05a0de2f55250]::tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10472:9
[INFO] [stdout]   20:     0x5ba828502177 - jjr[e8b05a0de2f55250]::tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10462:78
[INFO] [stdout]   21:     0x5ba8285d5f76 - <jjr[e8b05a0de2f55250]::tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5ba82880606b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5ba82880606b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5ba8288136b5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   27:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5ba8288136b5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5ba82880e164 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5ba82880e164 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5ba828816802 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   36:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5ba828816802 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5ba828816802 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5ba828c1600f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   41:     0x5ba828c1600f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   42:     0x7b9ab7aa8aa4 - <unknown>
[INFO] [stdout]   43:     0x7b9ab7b35a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tui::tests::render_file_header_omits_check_glyph_when_unreviewed stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tui::tests::render_file_header_omits_check_glyph_when_unreviewed' (2139) panicked at src/tui.rs:10394:9:
[INFO] [stdout] assertion failed: !app.is_view_reviewed(app.file_index)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5ba828c17021 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5ba828c17021 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5ba828c17021 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5ba828c2e69a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5ba828c2e69a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5ba828c1b83c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5ba828c1b83c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5ba828bf24c6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5ba828bf24c6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5ba828c0d9b9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5ba828812d30 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5ba828812d30 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5ba828c0db72 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5ba828c0db72 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5ba828bf25a4 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x5ba828be9989 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5ba828bf353d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5ba828c2ef1c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5ba828c2eee2 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5ba82852f62d - jjr[e8b05a0de2f55250]::tui::tests::render_file_header_omits_check_glyph_when_unreviewed
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10394:9
[INFO] [stdout]   21:     0x5ba828501127 - jjr[e8b05a0de2f55250]::tui::tests::render_file_header_omits_check_glyph_when_unreviewed::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui.rs:10390:62
[INFO] [stdout]   22:     0x5ba8285d49b6 - <jjr[e8b05a0de2f55250]::tui::tests::render_file_header_omits_check_glyph_when_unreviewed::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5ba82880606b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5ba82880606b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5ba8288136b5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x5ba8288136b5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5ba8288136b5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5ba8288136b5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5ba82880e164 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5ba82880e164 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5ba828816802 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x5ba828816802 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5ba828816802 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5ba828816802 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5ba828816802 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5ba828c1600f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x5ba828c1600f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x7b9ab7aa8aa4 - <unknown>
[INFO] [stdout]   44:     0x7b9ab7b35a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tui::tests::is_view_reviewed_returns_false_initially
[INFO] [stdout]     tui::tests::mark_current_file_reviewed_surfaces_save_failure_when_status_is_none
[INFO] [stdout]     tui::tests::render_file_header_omits_check_glyph_when_unreviewed
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 692 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4", kill_on_drop: false }`
[INFO] [stdout] c79d19ea43b3a4d393c275649d3df76eee9e59e03339eb078815a171e54261d4
