[INFO] cloning repository https://github.com/agavra/tuicr
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/agavra/tuicr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9f1b4ec12bce28ce823eedc8f68b77bce7a0cbae
[INFO] testing agavra/tuicr against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/agavra/tuicr
[INFO] finished tweaking git repo https://github.com/agavra/tuicr
[INFO] tweaked toml for git repo https://github.com/agavra/tuicr written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/agavra/tuicr on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/agavra/tuicr 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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169
[INFO] running `Command { std: "docker" "start" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", 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" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169" "/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" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", 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" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling libz-sys v1.1.29
[INFO] [stderr]    Compiling onig_sys v69.9.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling time v0.3.49
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling libgit2-sys v0.18.5+1.9.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling lru v0.18.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling os_pipe v1.2.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling webpki-roots v1.0.8
[INFO] [stderr]    Compiling terminal-trx v0.2.6
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling edtui-jagged v0.1.13
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling xterm-color v1.0.2
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling terminal-colorsaurus v1.0.3
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling onig v6.5.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tree_magic_mini v3.2.2
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.26
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling wayland-client v0.31.14
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling wayland-protocols v0.32.13
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling plist v1.9.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling edtui v0.11.3
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling two-face v0.5.1
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.12
[INFO] [stderr]    Compiling wl-clipboard-rs v0.9.3
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling tuicr v0.18.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 09s
[INFO] running `Command { std: "docker" "inspect" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", 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" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169" "/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 tempfile v3.27.0
[INFO] [stderr]    Compiling tuicr v0.18.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 30.29s
[INFO] running `Command { std: "docker" "inspect" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", 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" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169" "/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.57s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tuicr-0a4c6ee85aba1cf7)
[INFO] [stdout] 
[INFO] [stdout] running 1068 tests
[INFO] [stdout] test app::commit_scoped_comment_tests::add_comment_to_session_stamps_commit_id_when_provided ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::add_comment_to_session_leaves_commit_id_none_when_not_provided ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_for_full_range ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::comment_scoped_to_selected_commit_is_visible ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_without_selector ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::commit_id_for_new_comment_is_sha_for_single_commit ... ok
[INFO] [stdout] test app::commit_selection_tests::special_commit_count_counts_leading_special_entries ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::full_range_shows_all_commit_scoped_comments ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::legacy_comment_with_no_commit_id_is_always_visible ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::comment_scoped_to_unselected_commit_is_hidden ... ok
[INFO] [stdout] test app::decoration_skip_tests::backward_skips_header_and_spacing_to_previous_content_line ... ok
[INFO] [stdout] test app::decoration_skip_tests::backward_stops_at_zero_when_top_is_decoration ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::no_selector_shows_all_comments ... ok
[INFO] [stdout] test app::decoration_skip_tests::forward_clamps_at_max_line_even_on_decoration ... ok
[INFO] [stdout] test app::commit_selection_tests::special_commit_count_ignores_non_leading_special_entries ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_for_multi_commit_subset ... ok
[INFO] [stdout] test app::decoration_skip_tests::forward_keeps_position_on_content_line ... ok
[INFO] [stdout] test app::commit_selection_tests::toggle_commit_selection_from_all_selected_selects_only_cursor ... ok
[INFO] [stdout] test app::commit_selection_tests::toggle_commit_selection_keeps_partial_range_shrink_behavior ... ok
[INFO] [stdout] test app::commit_scoped_comment_tests::legacy_session_json_deserializes_comment_without_commit_id ... ok
[INFO] [stdout] test app::decoration_skip_tests::forward_skips_spacing_and_header_to_next_content_line ... ok
[INFO] [stdout] test app::diff_source_tests::commit_range_source_does_not_include_worktree_changes ... ok
[INFO] [stdout] test app::diff_source_tests::unstaged_source_includes_worktree_changes ... ok
[INFO] [stdout] test app::expand_gap_tests::comment_navigator_items_follow_rendered_comment_order ... ok
[INFO] [stdout] test app::expand_gap_tests::should_append_on_subsequent_down_expand ... ok
[INFO] [stdout] test app::expand_gap_tests::jump_to_selected_comment_uses_comment_annotation_target ... ok
[INFO] [stdout] test app::expand_gap_tests::comment_navigator_includes_remote_review_summary ... ok
[INFO] [stdout] test app::expand_gap_tests::should_cap_at_gap_boundaries ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_gap_in_correct_file_not_adjacent_file ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_old_side_gap_when_jumping_with_o_prefix ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_only_up_to_target_line_not_full_gap ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_down_at_end_of_file ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_down_from_upper_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_small_gap_fully_even_with_large_limit ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_all_lines_with_both_direction ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_collapsed_gap_when_jumping_into_it ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_first_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_lower_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_up_when_cursor_is_below_the_gap ... ok
[INFO] [stdout] test app::expand_gap_tests::should_fold_reviewed_hunk_body ... ok
[INFO] [stdout] test app::expand_gap_tests::should_handle_subsequent_eof_expansions ... ok
[INFO] [stdout] test app::expand_gap_tests::should_keep_file_and_hunk_reviewed_state_independent ... ok
[INFO] [stdout] test app::expand_gap_tests::should_merge_to_both_when_remaining_drops_below_batch ... ok
[INFO] [stdout] test app::expand_gap_tests::should_noop_when_already_fully_expanded ... ok
[INFO] [stdout] test app::expand_gap_tests::should_not_expand_when_line_is_already_in_a_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_not_show_eof_gap_for_deleted_files ... ok
[INFO] [stdout] test app::expand_gap_tests::should_not_show_eof_gap_when_hunk_ends_at_file_end ... ok
[INFO] [stdout] test app::expand_gap_tests::should_not_show_expander_when_fully_expanded ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_end_of_file_expander ... ok
[INFO] [stdout] test app::expand_gap_tests::should_prepend_on_subsequent_up_expand ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_merged_expander_for_small_between_hunk_gap ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_split_expanders_for_large_between_hunk_gap ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_small_eof_gap_expander_without_hidden_lines ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_up_expander_for_top_of_file_partial ... ok
[INFO] [stdout] test app::find_source_line_tests::should_find_exact_match ... ok
[INFO] [stdout] test app::find_source_line_tests::should_find_nearest_above_target ... ok
[INFO] [stdout] test app::find_source_line_tests::should_find_nearest_when_no_exact_match ... ok
[INFO] [stdout] test app::find_source_line_tests::should_return_not_found_for_empty_annotations ... ok
[INFO] [stdout] test app::expand_gap_tests::should_toggle_hunk_reviewed_from_header ... ok
[INFO] [stdout] test app::expand_gap_tests::total_lines_must_match_annotations_with_eof_gaps ... ok
[INFO] [stdout] test app::expand_gap_tests::total_lines_must_match_annotations_with_remote_threads ... ok
[INFO] [stdout] test app::expand_gap_tests::should_warn_when_toggling_hunk_outside_hunk ... ok
[INFO] [stdout] test app::find_source_line_tests::should_match_old_lineno_when_side_is_old ... ok
[INFO] [stdout] test app::find_source_line_tests::should_return_not_found_when_only_non_line_annotations ... ok
[INFO] [stdout] test app::find_source_line_tests::should_find_nearest_for_target_zero ... ok
[INFO] [stdout] test app::expand_gap_tests::should_toggle_hunk_reviewed_from_diff_line ... ok
[INFO] [stdout] test app::find_source_line_tests::should_skip_diff_lines_with_no_new_lineno ... ok
[INFO] [stdout] test app::find_source_line_tests::should_skip_lines_from_other_files ... ok
[INFO] [stdout] test app::find_source_line_tests::should_prefer_exact_match_over_earlier_nearest ... ok
[INFO] [stdout] test app::find_source_line_tests::should_skip_non_diff_line_annotations ... ok
[INFO] [stdout] test app::find_source_line_tests::should_tie_break_nearest_by_iteration_order ... ok
[INFO] [stdout] test app::expand_gap_tests::total_lines_must_match_annotations_when_commit_scoped_comment_is_hidden ... ok
[INFO] [stdout] test app::find_source_line_tests::should_not_match_new_lineno_when_side_is_old ... ok
[INFO] [stdout] test app::find_source_line_tests::should_work_with_side_by_side_lines ... ok
[INFO] [stdout] test app::find_source_line_tests::should_handle_mixed_diff_and_sbs_lines ... ok
[INFO] [stdout] test app::persistence_merge_tests::should_apply_external_edit_when_comment_is_unchanged_locally ... ok
[INFO] [stdout] test app::persistence_merge_tests::should_not_resurrect_locally_deleted_comment_when_disk_is_unchanged ... ok
[INFO] [stdout] test app::persistence_merge_tests::should_merge_external_comment_without_losing_local_comment ... ok
[INFO] [stdout] test app::scroll_behavior_tests::after_zz_on_last_line_j_does_not_change_scroll ... ok
[INFO] [stdout] test app::scroll_behavior_tests::after_zz_on_last_line_k_does_not_change_scroll ... ok
[INFO] [stdout] test app::scroll_behavior_tests::j_on_last_line_near_bottom_does_not_scroll ... ok
[INFO] [stdout] test app::scroll_behavior_tests::j_on_last_line_centered_does_not_scroll ... ok
[INFO] [stdout] test app::scroll_behavior_tests::after_zz_no_oscillation_with_k_then_j ... ok
[INFO] [stdout] test app::scroll_behavior_tests::j_scrolls_one_line_at_a_time ... ok
[INFO] [stdout] test app::scroll_behavior_tests::cursor_cannot_go_past_last_content_line ... ok
[INFO] [stdout] test app::scroll_behavior_tests::effective_scroll_margin_prevents_oscillation ... ok
[INFO] [stdout] test app::scroll_behavior_tests::scroll_offset_zero_means_no_margin ... ok
[INFO] [stdout] test app::scroll_behavior_tests::no_scroll_when_last_line_visible ... ok
[INFO] [stdout] test app::scroll_behavior_tests::zz_on_last_line_centers_cursor ... ok
[INFO] [stdout] test app::scroll_behavior_tests::max_scroll_allows_last_line_at_top ... ok
[INFO] [stdout] test app::scroll_behavior_tests::smooth_scroll_to_end_no_jumps ... ok
[INFO] [stdout] test app::scroll_behavior_tests::k_below_midpoint_only_moves_cursor ... ok
[INFO] [stdout] test app::scroll_behavior_tests::k_reclaims_empty_space_below ... ok
[INFO] [stdout] test app::scroll_tests::should_calculate_max_scroll ... ok
[INFO] [stdout] test app::single_file_view_tests::next_hunk_crosses_into_next_file_in_single_file_view ... ok
[INFO] [stdout] test app::single_file_view_tests::held_key_does_not_walk_when_keyboard_enhancement_supported ... ok
[INFO] [stdout] test app::single_file_view_tests::cursor_up_requires_two_presses_to_walk_to_prev_file ... ok
[INFO] [stdout] test app::single_file_view_tests::effective_file_height_is_zero_for_non_current_in_single_file_view ... ok
[INFO] [stdout] test app::single_file_view_tests::editor_target_uses_diff_cursor_line ... ok
[INFO] [stdout] test app::single_file_view_tests::prev_hunk_crosses_into_prev_file_in_single_file_view ... ok
[INFO] [stdout] test app::single_file_view_tests::edit_command_uses_selected_file_list_row ... ok
[INFO] [stdout] test app::scroll_tests::should_handle_empty_content ... ok
[INFO] [stdout] test app::scroll_tests::should_handle_small_content ... ok
[INFO] [stdout] test app::single_file_view_tests::cursor_down_requires_two_presses_to_walk_to_next_file ... ok
[INFO] [stdout] test app::single_file_view_tests::primed_walk_clears_on_non_overflow_cursor_move ... ok
[INFO] [stdout] test app::submit_flow_tests::should_advance_from_resolver_to_confirm ... ok
[INFO] [stdout] test app::single_file_view_tests::release_then_press_walks_when_keyboard_enhancement_supported ... ok
[INFO] [stdout] test app::single_file_view_tests::toggle_preserves_file_position ... ok
[INFO] [stdout] test app::submit_flow_tests::should_anchor_line_comments_via_hashmap_key_when_line_context_missing ... ok
[INFO] [stdout] test app::submit_flow_tests::should_detect_locked_comment_under_cursor_for_dd_path ... ok
[INFO] [stdout] test app::submit_flow_tests::should_discard_stale_submit_result_when_head_sha_changed ... ok
[INFO] [stdout] test app::submit_flow_tests::should_apply_result_via_poll_when_head_sha_matches ... ok
[INFO] [stdout] test app::submit_flow_tests::should_cancel_submit_clears_state_and_returns_to_normal ... ok
[INFO] [stdout] test app::submit_flow_tests::should_flip_review_level_comments_on_submit_success ... ok
[INFO] [stdout] test app::submit_flow_tests::should_flip_comments_to_submitted_and_stamp_review_id_on_success ... ok
[INFO] [stdout] test app::submit_flow_tests::should_allow_bare_approve_through_action_picker_with_no_comments ... ok
[INFO] [stdout] test app::submit_flow_tests::should_flip_comments_to_pushed_draft_for_draft_submission ... ok
[INFO] [stdout] test app::submit_flow_tests::should_dispatch_async_submit_on_confirm_and_clear_modal_state ... ok
[INFO] [stdout] test app::submit_flow_tests::should_emit_draft_message_with_pr_url_for_draft_submit ... ok
[INFO] [stdout] test app::submit_flow_tests::should_flip_summary_bound_unmappable_comments_on_submit_success ... ok
[INFO] [stdout] test app::find_source_line_tests::should_return_not_found_when_no_lines_in_current_file ... ok
[INFO] [stdout] test app::submit_flow_tests::should_allow_bare_approve_without_any_comments ... ok
[INFO] [stdout] test app::single_file_view_tests::editor_target_uses_selected_file_list_row ... ok
[INFO] [stdout] test app::submit_flow_tests::should_emit_success_message_with_review_id_and_counts_for_published_submit ... ok
[INFO] [stdout] test app::single_file_view_tests::editor_target_warns_for_missing_local_file ... ok
[INFO] [stdout] test app::submit_flow_tests::should_keep_locked_line_comments_when_remote_thread_refetch_fails ... ok
[INFO] [stdout] test app::submit_flow_tests::should_lock_file_level_comment_via_submit_success ... ok
[INFO] [stdout] test app::submit_flow_tests::should_keep_locked_review_comments_when_remote_summary_refetch_fails ... ok
[INFO] [stdout] test app::submit_flow_tests::should_open_confirm_directly_when_all_comments_map ... ok
[INFO] [stdout] test app::submit_flow_tests::should_prune_locked_comments_across_all_buckets ... ok
[INFO] [stdout] test app::submit_flow_tests::should_report_head_not_stale_when_current_matches_session_head ... ok
[INFO] [stdout] test app::submit_flow_tests::should_report_stale_head_when_current_differs_from_session_head ... ok
[INFO] [stdout] test app::submit_flow_tests::should_open_resolver_when_any_comment_is_unmappable ... ok
[INFO] [stdout] test app::submit_flow_tests::should_only_flip_comments_whose_ids_were_submitted ... ok
[INFO] [stdout] test app::target_selector_tests::comment_block_start_finds_first_row_of_comment ... ok
[INFO] [stdout] test app::submit_flow_tests::should_skip_locked_comments_during_preflight ... ok
[INFO] [stdout] test app::submit_flow_tests::should_keep_comments_as_local_draft_on_submit_failure ... ok
[INFO] [stdout] test app::submit_flow_tests::should_not_mark_reviewed_commits_after_draft_submit ... ok
[INFO] [stdout] test app::submit_flow_tests::should_warn_when_no_local_drafts_exist ... ok
[INFO] [stdout] test app::submit_flow_tests::should_skip_confirm_modal_when_action_picker_dispatches_with_no_unmappable ... ok
[INFO] [stdout] test app::submit_flow_tests::should_route_picker_through_resolver_then_skip_confirm ... ok
[INFO] [stdout] test app::submit_flow_tests::should_use_pr_head_sha_as_commit_id_when_full_commit_range_selected ... ok
[INFO] [stdout] test app::submit_flow_tests::should_mark_reviewed_commits_after_successful_submit ... ok
[INFO] [stdout] test app::submit_flow_tests::should_warn_when_pr_is_closed_or_merged ... ok
[INFO] [stdout] test app::target_selector_tests::comment_vim_double_enter_saves ... ok
[INFO] [stdout] test app::submit_flow_tests::should_toggle_resolver_action_between_move_and_omit ... ok
[INFO] [stdout] test app::target_selector_tests::comment_current_line_cursor_targets_the_cursor_line ... ok
[INFO] [stdout] test app::submit_flow_tests::should_warn_when_submitting_without_pr_mode ... ok
[INFO] [stdout] test app::target_selector_tests::comment_vim_command_backspace_past_colon_closes ... ok
[INFO] [stdout] test app::target_selector_tests::comment_vim_command_line_q_cancels_w_saves ... ok
[INFO] [stdout] test app::target_selector_tests::comment_vim_double_esc_cancels ... ok
[INFO] [stdout] test app::target_selector_tests::comment_vim_soft_tab_inserts_configured_spaces ... ok
[INFO] [stdout] test app::target_selector_tests::should_be_a_noop_when_pressing_enter_during_an_in_flight_open ... ok
[INFO] [stdout] test app::target_selector_tests::should_block_q_when_unsaved_comments_exist ... ok
[INFO] [stdout] test app::target_selector_tests::should_cancel_in_flight_open_when_pressing_esc_in_selector ... ok
[INFO] [stdout] test app::target_selector_tests::should_apply_initial_load_event_to_pr_tab ... ok
[INFO] [stdout] test app::target_selector_tests::should_complete_command_when_only_one_candidate_matches ... ok
[INFO] [stdout] test app::target_selector_tests::should_clear_pr_open_state_on_cancel ... ok
[INFO] [stdout] test app::target_selector_tests::should_cycle_backward_through_command_matches ... ok
[INFO] [stdout] test app::target_selector_tests::should_clear_command_completion_state_after_manual_edit ... ok
[INFO] [stdout] test app::target_selector_tests::should_cycle_between_local_and_pull_requests_on_tab_keypress ... ok
[INFO] [stdout] test app::target_selector_tests::should_cycle_forward_through_command_matches ... ok
[INFO] [stdout] test app::target_selector_tests::should_default_to_local_tab_after_build ... ok
[INFO] [stdout] test app::submit_flow_tests::should_use_subset_head_sha_as_commit_id_when_inline_selector_is_strict_subset ... ok
[INFO] [stdout] test app::target_selector_tests::should_discard_filter_draft_on_cancel ... ok
[INFO] [stdout] test app::target_selector_tests::should_extend_to_common_command_prefix_before_cycling ... ok
[INFO] [stdout] test app::target_selector_tests::should_cycle_comment_type_on_tab_action ... ok
[INFO] [stdout] test app::change_status_tests::list_changed_paths_used_to_verify_ignore_rules ... ok
[INFO] [stdout] test app::target_selector_tests::should_ignore_stale_done_event_after_cancel ... ok
[INFO] [stdout] test app::change_status_tests::status_probe_does_not_load_diffs_without_ignore_rules ... ok
[INFO] [stdout] test app::change_status_tests::status_probe_rechecks_positive_rows_when_ignore_rules_exist ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_pr_tab_disabled_when_no_forge_remote ... ok
[INFO] [stdout] test app::target_selector_tests::should_build_new_head_session_by_carrying_only_unchanged_reviewed_state ... ok
[INFO] [stdout] test app::target_selector_tests::should_enter_pr_mode_when_opening_pr_via_fake_backend ... ok
[INFO] [stdout] test app::target_selector_tests::should_carry_reviewed_state_through_finish_pr_reload_when_head_advances ... ok
[INFO] [stdout] test app::target_selector_tests::should_hide_inline_selector_for_single_commit_pr ... ok
[INFO] [stdout] test app::target_selector_tests::should_apply_remote_threads_event_when_relevant ... ok
[INFO] [stdout] test app::target_selector_tests::should_leave_unknown_command_completion_unchanged ... ok
[INFO] [stdout] test app::target_selector_tests::should_discard_stale_remote_threads_event_after_switching_pr ... ok
[INFO] [stdout] test app::target_selector_tests::should_clear_remote_threads_without_refetch_when_setting_visibility_hide ... ok
[INFO] [stdout] test app::target_selector_tests::should_mark_pr_commits_covered_by_viewers_last_review ... ok
[INFO] [stdout] test app::target_selector_tests::should_carry_unchanged_hunk_marks_inside_changed_file_when_pr_head_advances ... ok
[INFO] [stdout] test app::target_selector_tests::should_carry_draft_comments_for_unchanged_files_when_pr_head_advances ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_old_head_session_when_saving_before_head_switch_fails ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_old_head_session_when_new_head_session_file_is_corrupt ... ok
[INFO] [stdout] test app::target_selector_tests::should_preserve_persisted_commit_range_over_since_last_review_default ... ok
[INFO] [stdout] test app::target_selector_tests::should_promote_app_forge_repository_to_canonical_on_initial_load ... ok
[INFO] [stdout] test app::target_selector_tests::should_report_no_new_commits_when_viewers_last_review_is_at_head ... ok
[INFO] [stdout] test app::target_selector_tests::should_quit_on_q_when_only_reviewed_files_dirty ... ok
[INFO] [stdout] test app::target_selector_tests::should_ignore_manifest_session_when_pr_session_key_does_not_match ... ok
[INFO] [stdout] test app::target_selector_tests::should_return_false_when_cancelling_with_no_in_flight_open ... ok
[INFO] [stdout] test app::target_selector_tests::should_carry_reviewed_marks_for_unchanged_files_when_pr_head_advances ... ok
[INFO] [stdout] test app::target_selector_tests::should_ignore_exact_session_file_when_pr_session_key_does_not_match ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_reviewed_state_through_finish_pr_reload_when_head_unchanged ... ok
[INFO] [stdout] test app::target_selector_tests::should_select_commits_since_viewers_last_review ... ok
[INFO] [stdout] test app::target_selector_tests::should_set_filter_after_typing_and_committing ... ok
[INFO] [stdout] test app::target_selector_tests::should_set_pr_open_state_and_spawn_when_pressing_enter_on_a_pr_row ... ok
[INFO] [stdout] test app::target_selector_tests::should_skip_since_last_review_selection_when_commit_is_missing ... ok
[INFO] [stdout] test app::target_selector_tests::should_surface_pr_open_error_to_message_bar_when_done_event_carries_error ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_session_when_pr_head_unchanged_on_reload ... ok
[INFO] [stdout] test app::target_selector_tests::should_transition_pr_tab_to_loading_on_first_visit ... ok
[INFO] [stdout] test app::target_selector_tests::should_error_on_corrupt_exact_session_file_when_reopening_pr ... ok
[INFO] [stdout] test app::target_selector_tests::should_open_local_selector_on_targets_command ... ok
[INFO] [stdout] test app::target_selector_tests::should_warn_when_comments_command_used_outside_pr_mode ... ok
[INFO] [stdout] test app::target_selector_tests::should_open_pr_selector_on_prs_command ... ok
[INFO] [stdout] test app::target_selector_tests::should_resolve_pr_range_to_parent_sha_and_head_sha ... ok
[INFO] [stdout] test app::tree_tests::test_collapse_parent_hides_nested_dirs ... ok
[INFO] [stdout] test app::tree_tests::test_expand_all_shows_all_files ... ok
[INFO] [stdout] test app::tree_tests::test_collapse_all_hides_all_files ... ok
[INFO] [stdout] test app::tree_tests::test_root_files_always_visible ... ok
[INFO] [stdout] test app::tree_tests::test_toggle_expands_collapsed_dir ... ok
[INFO] [stdout] test app::tree_tests::test_tree_depth_correct ... ok
[INFO] [stdout] test app::visual_selection_tests::collapsed_starts_at_point ... ok
[INFO] [stdout] test app::visual_selection_tests::ordered_breaks_ties_on_idx_by_char_offset ... ok
[INFO] [stdout] test app::tree_tests::test_sibling_dirs_independent ... ok
[INFO] [stdout] test app::visual_selection_tests::ordered_returns_anchor_head_when_already_in_order ... ok
[INFO] [stdout] test app::visual_selection_tests::ordered_swaps_when_head_before_anchor_by_idx ... ok
[INFO] [stdout] test cli::tests::should_allow_custom_theme_name_in_equals_arg ... ok
[INFO] [stdout] test cli::tests::should_allow_root_tui_options_before_legacy_pr_subcommand ... ok
[INFO] [stdout] test cli::tests::should_combine_pr_target_with_theme_flag ... ok
[INFO] [stdout] test cli::tests::should_allow_custom_theme_name_in_separate_arg ... ok
[INFO] [stdout] test cli::tests::should_default_working_tree_to_false ... ok
[INFO] [stdout] test cli::tests::should_error_for_invalid_appearance ... ok
[INFO] [stdout] test cli::tests::should_error_when_path_equals_empty ... ok
[INFO] [stdout] test cli::tests::should_error_when_path_value_missing ... ok
[INFO] [stdout] test cli::tests::should_error_when_pr_target_is_missing ... ok
[INFO] [stdout] test app::target_selector_tests::should_leave_next_session_unchanged_when_carry_forward_has_no_matching_file ... ok
[INFO] [stdout] test cli::tests::should_error_when_repo_url_unparseable ... ok
[INFO] [stdout] test cli::tests::should_error_when_repo_url_equals_empty ... ok
[INFO] [stdout] test cli::tests::should_error_when_theme_value_missing ... ok
[INFO] [stdout] test cli::tests::should_leave_pr_target_none_when_no_pr_subcommand ... ok
[INFO] [stdout] test cli::tests::should_leave_repo_url_none_when_not_provided ... ok
[INFO] [stdout] test app::target_selector_tests::should_populate_inline_selector_when_pr_has_multiple_commits ... ok
[INFO] [stdout] test cli::tests::should_leave_theme_none_when_not_provided ... ok
[INFO] [stdout] test cli::tests::should_parse_all_files_short_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_all_files_long_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_appearance_when_provided ... ok
[INFO] [stdout] test cli::tests::should_parse_ayu_light_theme ... ok
[INFO] [stdout] test cli::tests::should_parse_everforest_themes ... ok
[INFO] [stdout] test cli::tests::should_parse_catppuccin_themes ... ok
[INFO] [stdout] test cli::tests::should_parse_explicit_tui_pr_command ... ok
[INFO] [stdout] test cli::tests::should_parse_gruvbox_themes ... ok
[INFO] [stdout] test cli::tests::should_parse_explicit_tui_command ... ok
[INFO] [stdout] test cli::tests::should_parse_no_update_check_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_onedark_theme ... ok
[INFO] [stdout] test cli::tests::should_parse_path_equals_syntax ... ok
[INFO] [stdout] test cli::tests::should_parse_path_long_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_path_short_flag ... ok
[INFO] [stdout] test cli::tests::should_default_path_filter_to_none ... ok
[INFO] [stdout] test cli::tests::should_parse_mr_alias_like_pr ... ok
[INFO] [stdout] test cli::tests::should_parse_path_with_revisions ... ok
[INFO] [stdout] test cli::tests::should_parse_path_with_working_tree ... ok
[INFO] [stdout] test cli::tests::should_error_when_repo_url_value_missing ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_bare_number ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_owner_repo_hash ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_equals_form ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_ssh_scheme ... ok
[INFO] [stdout] test cli::tests::should_parse_review_add_json_input ... ok
[INFO] [stdout] test cli::tests::should_parse_review_comments_command ... ok
[INFO] [stdout] test cli::tests::should_parse_review_comments_get_alias ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_all_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_review_add_line_comment ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_full_url ... ok
[INFO] [stdout] test cli::tests::should_parse_stdout_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_theme_when_provided ... ok
[INFO] [stdout] test cli::tests::should_parse_tui_mr_alias_like_pr ... ok
[INFO] [stdout] test app::target_selector_tests::should_surface_pr_open_error_into_selector_state ... ok
[INFO] [stdout] test cli::tests::should_parse_working_tree_long_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_command ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_by_coordinate ... ok
[INFO] [stdout] test cli::tests::should_parse_working_tree_short_flag ... ok
[INFO] [stdout] test cli::tests::should_reject_all_files_combined_with_path ... ok
[INFO] [stdout] test cli::tests::should_parse_working_tree_with_revisions ... ok
[INFO] [stdout] test app::target_selector_tests::should_preserve_hunk_marks_hidden_by_pr_range_diff ... ok
[INFO] [stdout] test app::target_selector_tests::should_populate_remote_threads_when_opening_pr_through_test_seam ... ok
[INFO] [stdout] test cli::tests::should_reject_all_files_combined_with_file ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_path ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_working_tree ... ok
[INFO] [stdout] test cli::tests::should_reject_review_json_flag_because_output_is_always_json ... ok
[INFO] [stdout] test cli::tests::should_reject_root_tui_options_before_subcommands ... ok
[INFO] [stdout] test cli::tests::should_require_file_for_review_add_line ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_https ... ok
[INFO] [stdout] test comment_vim::tests::byte_to_index2_on_second_line ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_revisions ... ok
[INFO] [stdout] test comment_vim::tests::normal_mode_dd_deletes_line ... ok
[INFO] [stdout] test comment_vim::tests::esc_switches_to_normal_mode ... ok
[INFO] [stdout] test comment_vim::tests::index2_clamps_past_line_and_buffer ... ok
[INFO] [stdout] test comment_vim::tests::roundtrip_ascii_multiline ... ok
[INFO] [stdout] test config::tests::should_append_tuicr_config_toml_suffix ... ok
[INFO] [stdout] test comment_vim::tests::roundtrip_multibyte ... ok
[INFO] [stdout] test config::tests::forge_defaults_enable_comment_type_prefix ... ok
[INFO] [stdout] test comment_vim::tests::normal_mode_x_deletes_char_under_cursor ... ok
[INFO] [stdout] test config::tests::should_default_export_legend_to_none ... ok
[INFO] [stdout] test config::tests::should_default_forge_to_none_when_section_missing ... ok
[INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_themes_dir_when_xdg_unset ... ok
[INFO] [stdout] test config::tests::should_error_on_invalid_toml ... ok
[INFO] [stdout] test config::tests::should_default_mouse_to_none ... ok
[INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_when_xdg_unset ... ok
[INFO] [stdout] test config::tests::should_default_no_update_check_to_none ... ok
[INFO] [stdout] test config::tests::should_ignore_empty_xdg_config_home ... ok
[INFO] [stdout] test comment_vim::tests::insert_mode_typing_syncs_buffer ... ok
[INFO] [stdout] test config::tests::should_parse_comment_types_from_array_of_objects ... ok
[INFO] [stdout] test config::tests::should_load_theme_variants_and_appearance_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_load_theme_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_side_by_side ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_unified ... ok
[INFO] [stdout] test config::tests::should_parse_backend_option ... ok
[INFO] [stdout] test config::tests::should_parse_export_legend_false ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_false ... ok
[INFO] [stdout] test config::tests::should_parse_no_update_check_true ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_true ... ok
[INFO] [stdout] test config::tests::should_parse_mouse_true ... ok
[INFO] [stdout] test config::tests::should_parse_forge_section_overriding_defaults ... ok
[INFO] [stdout] test config::tests::should_parse_show_file_list_false ... ok
[INFO] [stdout] test config::tests::should_parse_no_update_check_false ... ok
[INFO] [stdout] test config::tests::should_parse_scroll_offset ... ok
[INFO] [stdout] test config::tests::should_parse_single_character_leader ... ok
[INFO] [stdout] test config::tests::should_parse_review_watch_interval_ms ... ok
[INFO] [stdout] test config::tests::should_parse_wrap_false ... ok
[INFO] [stdout] test config::tests::should_parse_wrap_true ... ok
[INFO] [stdout] test config::tests::should_return_none_when_config_file_missing ... ok
[INFO] [stdout] test config::tests::should_parse_zero_review_watch_interval_ms_to_allow_disable ... ok
[INFO] [stdout] test config::tests::should_use_xdg_config_home_when_set ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_backend_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_use_xdg_themes_dir_when_set ... ok
[INFO] [stdout] test config::tests::should_default_forge_to_none_when_section_is_empty_table ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_backend_option ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_entries ... ok
[INFO] [stdout] test config::tests::should_parse_empty_config_as_defaults ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_leader_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_color ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_ignore_whitespace_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_multi_character_leader ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_no_update_check_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_scroll_offset_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_negative_review_watch_interval_ms ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_dark_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_wrap_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_forge_keys ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_with_invalid_type ... ok
[INFO] [stdout] test editor::tests::editor_args_are_preserved ... ok
[INFO] [stdout] test editor::tests::empty_editor_falls_back_to_vi ... ok
[INFO] [stdout] test editor::tests::plus_line_editors_receive_line_before_path ... ok
[INFO] [stdout] test editor::tests::unknown_editor_opens_file_without_line ... ok
[INFO] [stdout] test editor::tests::vscode_family_receives_goto_arg ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_file_list_with_invalid_type ... ok
[INFO] [stdout] test forge::canonical::tests::should_fall_back_to_origin_when_parent_full_name_is_malformed ... ok
[INFO] [stdout] test forge::canonical::tests::should_fall_back_to_origin_when_repo_is_not_a_fork ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_only_and_use_defaults ... ok
[INFO] [stdout] test forge::canonical::tests::should_preserve_origin_host_on_enterprise ... ok
[INFO] [stdout] test forge::canonical::tests::should_fall_back_to_origin_when_response_is_malformed ... ok
[INFO] [stdout] test forge::canonical::tests::should_return_override_without_calling_gh ... ok
[INFO] [stdout] test forge::context::tests::should_pick_old_path_for_rename_base_side ... ok
[INFO] [stdout] test forge::context::tests::should_short_circuit_when_path_missing ... ok
[INFO] [stdout] test forge::context::tests::should_use_base_side_for_deleted_file ... ok
[INFO] [stdout] test forge::context::tests::should_use_head_side_for_modified_file ... ok
[INFO] [stdout] test forge::github::gh::tests::constructs_system_runner_backend ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_diff_returns_patch_text ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_requires_repository ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_uses_default_repository_for_numeric_target ... ok
[INFO] [stdout] test app::target_selector_tests::should_route_context_expansion_to_forge_provider_in_pr_mode ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_can_filter_to_review_requested ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_can_load_next_slice ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_uses_host_qualified_repo_for_enterprise ... ok
[INFO] [stdout] test forge::github::gh::tests::maps_auth_failure_to_login_message ... ok
[INFO] [stdout] test forge::github::gh::tests::maps_missing_gh_to_install_message ... ok
[INFO] [stdout] test config::tests::should_warn_when_forge_is_not_a_table ... ok
[INFO] [stdout] test forge::github::gh::tests::normalizes_github_ssh_over_443_transport_host ... ok
[INFO] [stdout] test forge::github::gh::tests::parse_scp_url_with_ssh_alias_resolves_via_config ... ok
[INFO] [stdout] test forge::canonical::tests::should_return_parent_when_gh_reports_fork ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_enterprise_owner_repo_pull_request_target ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_full_pull_request_url ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_uses_gh_json_output ... ok
[INFO] [stdout] test app::target_selector_tests::should_switch_session_when_pr_head_advances_on_reload ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_enterprise_pull_url_as_github_even_when_host_contains_gitlab ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_https_remote_url ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_numeric_pull_request_target ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_scp_like_ssh_remote_url ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_scp_url_with_ssh_over_443_hostname_rewrite ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_ssh_remote_url ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_owner_repo_pull_request_target ... ok
[INFO] [stdout] test forge::github::gh::tests::rejects_malformed_pull_request_target ... ok
[INFO] [stdout] test forge::github::gh::tests::repository_display_name_omits_github_com ... ok
[INFO] [stdout] test forge::github::gh::tests::resolve_ssh_hostname_falls_back_to_alias_when_unresolved ... ok
[INFO] [stdout] test forge::github::gh::tests::resolve_ssh_hostname_resolves_alias_to_configured_hostname ... ok
[INFO] [stdout] test forge::github::gh::tests::should_error_when_create_review_response_is_missing_id ... ok
[INFO] [stdout] test forge::github::gh::tests::should_list_pull_request_commits_via_api_pagination_endpoint ... ok
[INFO] [stdout] test forge::github::gh::tests::should_list_pull_request_review_metadata_via_graphql_api_call ... ok
[INFO] [stdout] test forge::github::gh::tests::should_list_review_summaries_via_graphql_api_call ... ok
[INFO] [stdout] test forge::github::gh::tests::should_map_missing_gh_during_create_review ... ok
[INFO] [stdout] test forge::github::gh::tests::should_list_review_threads_via_graphql_api_call ... ok
[INFO] [stdout] test forge::github::gh::tests::should_map_auth_failure_during_create_review ... ok
[INFO] [stdout] test forge::github::gh::tests::should_map_pending_review_conflict_to_finish_or_discard_message ... ok
[INFO] [stdout] test forge::github::gh::tests::should_map_permission_failure_to_pull_request_write_message ... ok
[INFO] [stdout] test forge::github::gh::tests::should_map_unknown_commit_to_force_push_hint ... ok
[INFO] [stdout] test forge::github::gh::tests::should_not_pass_patch_flag_to_gh_pr_diff ... ok
[INFO] [stdout] test forge::github::gh::tests::should_omit_event_field_for_draft_submission ... ok
[INFO] [stdout] test forge::github::gh::tests::should_recognize_must_have_pull_request_write_as_permission_failure ... ok
[INFO] [stdout] test forge::github::gh::tests::should_post_create_review_to_reviews_endpoint_with_stdin_payload ... ok
[INFO] [stdout] test forge::github::gh::tests::should_request_compare_endpoint_for_range_diff_when_no_local_checkout ... ok
[INFO] [stdout] test forge::github::gh::tests::should_send_hostname_argument_for_enterprise_host ... ok
[INFO] [stdout] test forge::github::review_metadata::tests::should_build_query_with_cursor_for_subsequent_pages ... ok
[INFO] [stdout] test forge::github::review_metadata::tests::should_parse_viewer_and_reviews_with_commit_oids ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_build_query_with_cursor_for_subsequent_pages ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_build_query_without_cursor_for_first_page ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_drop_reviews_with_empty_or_whitespace_body ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_parse_two_reviews_with_state_and_author ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_tolerate_missing_repository_object ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_build_query_with_cursor_for_subsequent_pages ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_error_on_malformed_json ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_build_query_without_cursor_for_first_page ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_empty_threads_array_without_error ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_cross_file_threads_preserving_paths ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_tolerate_missing_repository_object ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_multi_comment_thread_with_replies ... ok
[INFO] [stdout] test forge::github::submit::tests::should_emit_commit_id_body_event_and_comments_for_comment_event ... ok
[INFO] [stdout] test forge::github::submit::tests::should_emit_empty_comments_array_when_none_supplied ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_outdated_thread_flag_and_fall_back_to_original_line ... ok
[INFO] [stdout] test forge::github::submit::tests::should_emit_event_approve_for_approve_submission ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_resolved_thread_flag ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_single_thread_with_one_comment ... ok
[INFO] [stdout] test forge::github::submit::tests::should_emit_event_request_changes_for_request_changes_submission ... ok
[INFO] [stdout] test forge::github::submit::tests::should_use_left_side_when_inline_targets_old_side ... ok
[INFO] [stdout] test forge::github::submit::tests::should_include_start_line_and_start_side_for_multi_line_comment ... ok
[INFO] [stdout] test forge::github::submit::tests::should_omit_event_for_draft_submission ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::check_graphql_errors_extracts_message_from_top_level_error_objects ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::check_graphql_errors_ok_on_empty_errors_and_non_json ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::list_pull_requests_can_filter_to_review_requested ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::repo_arg_uses_slug_for_default_host ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::normalizes_gitlab_ssh_over_443_transport_host ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_call_approve_endpoint_for_approve ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_error_when_request_changes_mutation_returns_errors ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::repo_arg_uses_full_url_for_non_default_host ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_list_pull_request_review_metadata_for_gitlab ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_not_publish_draft_notes ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_https_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_numeric_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_nested_group_url_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_mr_url_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_repo_hash_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_self_hosted_https ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_nested_group_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_ssh_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_ignore_github_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_post_draft_notes_for_draft_submission ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_post_comments_then_request_changes_mutation ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_reject_empty_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_send_both_line_numbers_for_context_line ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_send_distinct_old_and_new_path_for_renamed_file ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_send_left_side_inline_comment_with_old_line ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_send_inline_comment_as_json_with_integer_line_number ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_post_comment_submission_to_notes_and_discussions ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_send_line_range_for_multi_line_range_comment ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_convert_glab_discussion_to_review_thread ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_convert_individual_note_discussion_to_review_level_thread ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_deserialize_glab_mr_summary ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_deserialize_glab_mr_details_with_diff_refs ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_skip_discussion_without_position ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_skip_individual_note_system_events ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_default_visibility_to_unresolved ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_filter_threads_preserving_order ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_group_threads_by_file_preserving_order ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_parse_remote_comment_side ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_round_trip_visibility_via_serde ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_show_all_threads_with_muted_for_inactive_when_all ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_show_no_threads_when_hidden ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_show_only_active_threads_when_unresolved ... ok
[INFO] [stdout] test forge::selector::tests::should_append_rows_on_load_more_success ... ok
[INFO] [stdout] test forge::selector::tests::should_be_noop_when_apply_canonical_called_outside_loading ... ok
[INFO] [stdout] test forge::selector::tests::should_clamp_cursor_after_filter_narrows_list ... ok
[INFO] [stdout] test forge::selector::tests::should_filter_rows_by_number_title_author_head_and_base ... ok
[INFO] [stdout] test forge::selector::tests::should_keep_loaded_rows_when_load_more_fails ... ok
[INFO] [stdout] test forge::selector::tests::should_not_show_load_more_row_when_filter_active ... ok
[INFO] [stdout] test forge::selector::tests::should_not_start_load_more_when_already_loading_more ... ok
[INFO] [stdout] test forge::selector::tests::should_position_cursor_on_load_more_row_when_at_bottom ... ok
[INFO] [stdout] test forge::selector::tests::should_preserve_scope_for_load_more ... ok
[INFO] [stdout] test forge::selector::tests::should_promote_loading_repository_via_apply_canonical ... ok
[INFO] [stdout] test forge::selector::tests::should_start_disabled_when_no_repository_present ... ok
[INFO] [stdout] test forge::selector::tests::should_start_idle_when_repository_present ... ok
[INFO] [stdout] test forge::selector::tests::should_toggle_scope_and_reload_from_page_one ... ok
[INFO] [stdout] test forge::selector::tests::should_transition_idle_to_loading_on_initial_load ... ok
[INFO] [stdout] test forge::selector::tests::should_transition_loading_to_error_on_failure ... ok
[INFO] [stdout] test forge::selector::tests::should_transition_loading_to_loaded_on_success ... ok
[INFO] [stdout] test forge::submit::tests::should_anchor_file_level_to_first_valid_new_line ... ok
[INFO] [stdout] test forge::submit::tests::should_flatten_single_line_range_to_inline_without_start_fields ... ok
[INFO] [stdout] test forge::submit::tests::should_map_each_event_to_correct_github_field ... ok
[INFO] [stdout] test forge::submit::tests::should_map_old_side_range_to_left_start_and_end ... ok
[INFO] [stdout] test forge::submit::tests::should_map_single_addition_line_to_right_side ... ok
[INFO] [stdout] test forge::submit::tests::should_map_single_context_line_to_right_side ... ok
[INFO] [stdout] test forge::submit::tests::should_map_single_deletion_line_to_left_side ... ok
[INFO] [stdout] test forge::submit::tests::should_map_new_side_range_to_right_start_and_end ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_binary_file_comment_as_unmappable ... ok
[INFO] [stdout] test app::target_selector_tests::should_resolve_pr_range_to_pr_base_when_oldest_commit_selected ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_too_large_file_comment_as_unmappable ... ok
[INFO] [stdout] test forge::submit::tests::should_not_populate_counterpart_line_for_addition_line ... ok
[INFO] [stdout] test forge::submit::tests::should_omit_type_prefix_in_body_when_disabled ... ok
[INFO] [stdout] test forge::submit::tests::should_omit_type_prefix_when_config_disables_it ... ok
[INFO] [stdout] test forge::submit::tests::should_populate_counterpart_line_for_context_line ... ok
[INFO] [stdout] test forge::submit::tests::should_render_review_level_above_unplaced_section ... ok
[INFO] [stdout] test forge::submit::tests::should_render_review_level_comments_with_type_prefix ... ok
[INFO] [stdout] test forge::submit::tests::should_render_unplaced_comments_section ... ok
[INFO] [stdout] test forge::submit::tests::should_return_empty_body_when_no_inputs ... ok
[INFO] [stdout] test forge::submit::tests::should_return_first_addition_line_on_new_side ... ok
[INFO] [stdout] test forge::submit::tests::should_return_first_deletion_line_on_old_side ... ok
[INFO] [stdout] test forge::submit::tests::should_return_none_for_binary_file_first_valid_line ... ok
[INFO] [stdout] test forge::submit::tests::should_return_none_for_too_large_file_first_valid_line ... ok
[INFO] [stdout] test forge::traits::tests::should_handle_short_head_sha_gracefully ... ok
[INFO] [stdout] test forge::traits::tests::should_pick_base_side_for_deleted_files ... ok
[INFO] [stdout] test forge::traits::tests::should_pick_head_side_for_added_modified_renamed_copied ... ok
[INFO] [stdout] test forge::traits::tests::should_round_trip_pr_session_key_via_serde ... ok
[INFO] [stdout] test forge::traits::tests::should_truncate_long_head_sha_for_short_head ... ok
[INFO] [stdout] test hash::tests::should_handle_empty_input ... ok
[INFO] [stdout] test hash::tests::should_produce_deterministic_hash ... ok
[INFO] [stdout] test hash::tests::should_produce_different_hashes_for_different_inputs ... ok
[INFO] [stdout] test input::keybindings::tests::no_key_should_produce_mouse_scroll_actions ... ok
[INFO] [stdout] test input::keybindings::tests::should_keep_ctrl_e_as_scroll_down_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_keep_semicolon_as_default_leader ... ok
[INFO] [stdout] test input::keybindings::tests::should_leave_lowercase_e_unbound_in_normal_mode ... ok
[INFO] [stdout] test forge::canonical::tests::should_fall_back_to_origin_when_gh_fails ... ok
[INFO] [stdout] test input::keybindings::tests::should_leave_semicolon_unbound_when_another_leader_is_configured ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_back_tab_to_target_selector_tab_prev_in_commit_select_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_command_completion_in_command_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_comment_type_in_comment_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_alt_backspace_to_delete_word_in_text_input_modes ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_mouse_with_invalid_type ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_configured_leader_to_pending_leader_action ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_digit_keys_to_digit_action_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_enter_to_submit_in_target_filter_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_esc_to_exit_in_target_filter_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_i_and_shift_a_to_edit_comment_actions ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_r_to_review_requested_filter_in_commit_select_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_slash_to_begin_target_filter_in_commit_select_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_tab_to_command_completion_in_command_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_tab_to_cycle_comment_type_in_comment_mode ... ok
[INFO] [stdout] test app::target_selector_tests::should_load_persisted_pr_session_when_reopening_same_head ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_uppercase_g_to_go_to_bottom_in_normal_mode ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_mixed_side_range_as_unmappable ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_file_level_without_new_anchor_as_unmappable ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_command_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_shifted_digits_to_digit_action ... ok
[INFO] [stdout] test input::keybindings::tests::should_preserve_modified_shortcuts_when_character_is_leader ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_focus_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_lowercase_g_to_go_to_top_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_tab_to_target_selector_tab_next_in_commit_select_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_uppercase_r_to_toggle_hunk_reviewed_in_normal_mode ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_serializes_custom_type_as_string ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_deserializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_without_line_range_deserializes_with_none ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::new_creates_comment_without_line_range ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_serializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::new_with_range_creates_comment_with_line_range ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::should_default_lifecycle_fields_for_pre_pr5_comment_json ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::should_roundtrip_lifecycle_fields_via_serde ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::should_report_pushed_and_submitted_comments_as_locked ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_false_for_line_after_range ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_false_for_line_before_range ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_end_line ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_middle_line ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_start_line ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::is_single_returns_false_for_multi_line ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::is_single_returns_true_for_single_line ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::line_range_deserializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::line_range_serializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::new_creates_range_with_correct_bounds ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::single_creates_single_line_range ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::single_line_range_contains_only_that_line ... ok
[INFO] [stdout] test model::review::tests::should_clear_both_comments_and_reviewed_status ... ok
[INFO] [stdout] test model::review::tests::should_clear_file_and_line_comments ... ok
[INFO] [stdout] test model::review::tests::should_clear_hunk_reviewed_status ... ok
[INFO] [stdout] test model::review::tests::should_clear_review_level_comments ... ok
[INFO] [stdout] test model::review::tests::should_default_commit_id_to_none_for_legacy_comment_json ... ok
[INFO] [stdout] test model::review::tests::should_default_commit_selection_range_to_none_for_legacy_session ... ok
[INFO] [stdout] test model::review::tests::should_default_reviewed_hunks_for_legacy_file_review ... ok
[INFO] [stdout] test model::review::tests::should_deserialize_pre_pr3_session_without_breakage ... ok
[INFO] [stdout] test model::review::tests::should_keep_reviewed_when_hash_unchanged ... ok
[INFO] [stdout] test model::review::tests::should_not_move_reviewed_status_between_identical_hunks ... ok
[INFO] [stdout] test model::review::tests::should_not_report_invalidated_for_unreviewed_file_with_changed_hash ... ok
[INFO] [stdout] test model::review::tests::should_only_count_reviewed_files_as_unreviewed ... ok
[INFO] [stdout] test model::review::tests::should_preserve_reviewed_hunk_when_only_line_numbers_shift ... ok
[INFO] [stdout] test model::review::tests::should_preserve_reviewed_hunks_for_transient_diff_views ... ok
[INFO] [stdout] test model::review::tests::should_preserve_reviewed_status_when_requested ... ok
[INFO] [stdout] test input::keybindings::tests::should_route_typed_chars_to_insert_in_target_filter_mode ... ok
[INFO] [stdout] test model::review::tests::should_prune_reviewed_hunks_that_no_longer_exist ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::should_default_lifecycle_state_to_local_draft_for_new_comment ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_deserializes_custom_type_from_string ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_when_legacy_session_has_no_hash ... ok
[INFO] [stdout] test model::review::tests::should_return_zero_when_clearing_empty_session ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_status_on_all_files ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_when_hash_changes ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_commit_selection_range_on_pr_session ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_remote_comments_visibility_on_session ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_pr_session_via_serde ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_comment_commit_id_on_session ... ok
[INFO] [stdout] test model::review::tests::should_roundtrip_reviewed_hunks ... ok
[INFO] [stdout] test model::review::tests::should_store_content_hash_on_new_file ... ok
[INFO] [stdout] test model::review::tests::should_update_hash_even_when_not_reviewed ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_markdown_content_in_osc52 ... ok
[INFO] [stdout] test model::review::tests::should_use_line_aware_keys_for_repeated_identical_hunks ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_empty_string_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_unicode_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_export_line_range_with_start_and_end ... ok
[INFO] [stdout] test output::markdown::tests::should_export_old_side_line_range_with_tilde ... ok
[INFO] [stdout] test output::markdown::tests::should_export_pr_remote_threads_even_when_no_local_drafts ... ok
[INFO] [stdout] test output::markdown::tests::should_export_single_line_range_as_single_line ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_export_when_no_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_export_single_old_side_line_with_tilde ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_generate_export_content_when_no_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_generate_export_content_with_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_generate_valid_markdown ... ok
[INFO] [stdout] test output::markdown::tests::should_handle_comment_without_line_range_field ... ok
[INFO] [stdout] test output::markdown::tests::should_include_commit_range_scope_for_review_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_include_commit_range_in_markdown ... ok
[INFO] [stdout] test output::markdown::tests::should_include_commit_sha_in_export_for_commit_scoped_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_include_review_comments_in_export ... ok
[INFO] [stdout] test output::markdown::tests::should_include_unresolved_remote_threads_grouped_by_file_in_pr_export ... ok
[INFO] [stdout] test output::markdown::tests::should_include_single_commit_in_markdown ... ok
[INFO] [stdout] test output::markdown::tests::should_include_session_slug_header_when_provided ... ok
[INFO] [stdout] test output::markdown::tests::should_keep_commit_identity_for_commit_message_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_indent_multiline_comments_under_double_digit_list_marker ... ok
[INFO] [stdout] test output::markdown::tests::should_not_include_remote_comments_outside_pr_mode_in_export ... ok
[INFO] [stdout] test output::markdown::tests::should_indent_multiline_comments_under_single_digit_list_marker ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_commit_suffix_for_unscoped_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_number_comments_sequentially ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_legend_when_show_legend_is_false ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_custom_types_in_legend ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_session_slug_header_when_absent ... ok
[INFO] [stdout] test output::markdown::tests::should_use_configured_label_and_definition_in_export ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_comment_types_in_legend ... ok
[INFO] [stdout] test output::markdown::tests::should_write_osc52_escape_sequence ... ok
[INFO] [stdout] test persistence::manifest::tests::should_insert_and_retrieve_local_entry ... ok
[INFO] [stdout] test persistence::manifest::tests::should_extract_metadata_from_local_session ... ok
[INFO] [stdout] test persistence::manifest::tests::should_extract_metadata_from_pr_session ... ok
[INFO] [stdout] test persistence::manifest::tests::should_rebuild_empty_manifest_when_dir_missing ... ok
[INFO] [stdout] test persistence::manifest::tests::should_rebuild_manifest_via_extractor ... ok
[INFO] [stdout] test persistence::manifest::tests::should_remove_all_entries_for_slug ... ok
[INFO] [stdout] test persistence::manifest::tests::should_replace_pr_entry_when_head_advances ... ok
[INFO] [stdout] test persistence::manifest::tests::should_replace_local_entry_with_same_canonical_path ... ok
[INFO] [stdout] test persistence::manifest::tests::should_start_empty ... ok
[INFO] [stdout] test persistence::manifest::tests::should_store_multiple_local_entries_for_same_slug_different_checkouts ... ok
[INFO] [stdout] test persistence::manifest::tests::should_surface_corrupted_manifest_as_error ... ok
[INFO] [stdout] test persistence::manifest::tests::should_return_empty_manifest_when_file_missing ... ok
[INFO] [stdout] test persistence::manifest::tests::should_overwrite_manifest_atomically ... ok
[INFO] [stdout] test persistence::manifest::tests::should_roundtrip_manifest_through_disk ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_forge_value_with_wrong_type ... ok
[INFO] [stdout] test persistence::manifest::tests::should_walk_only_json_files_excluding_manifest ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::new_normalizes_reversed_bounds ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_search_mode ... ok
[INFO] [stdout] test persistence::storage::tests::should_delete_reviewed_only_session_unconditionally ... ok
[INFO] [stdout] test persistence::storage::tests::should_ignore_sessions_with_different_diff_source ... ok
[INFO] [stdout] test persistence::storage::tests::should_keep_session_with_comments_when_deleting_if_empty ... ok
[INFO] [stdout] test persistence::storage::tests::should_keep_session_with_reviewed_files_when_deleting_if_empty ... ok
[INFO] [stdout] test persistence::storage::tests::should_delete_empty_session_and_manifest_entry ... ok
[INFO] [stdout] test persistence::storage::tests::should_disambiguate_two_checkouts_with_same_repo_name ... ok
[INFO] [stdout] test persistence::storage::tests::should_load_session_when_head_matches_on_branched_worktree ... ok
[INFO] [stdout] test persistence::storage::tests::should_keep_session_with_reviewed_hunks_when_deleting_if_empty ... ok
[INFO] [stdout] test persistence::storage::tests::should_match_local_session_by_canonical_path_in_path_mode ... ok
[INFO] [stdout] test persistence::storage::tests::should_mark_and_clear_active_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_match_pr_session_for_unrelated_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_match_local_and_pr_sessions_sharing_repo_name_by_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_find_pr_session_by_repo_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_recover_stale_reviews_dir_lock ... ok
[INFO] [stdout] test persistence::storage::tests::should_produce_distinct_paths_for_different_pr_heads ... ok
[INFO] [stdout] test persistence::storage::tests::should_return_none_for_unknown_context ... ok
[INFO] [stdout] test persistence::storage::tests::should_return_none_when_head_changes_for_pr ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_local_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_require_commit_range_match ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_pr_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_sanitize_branch_slashes_in_slug ... ok
[INFO] [stdout] test persistence::storage::tests::should_save_under_flat_sessions_dir_for_local ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_and_keep_known_values ... ok
[INFO] [stdout] test persistence::storage::tests::should_save_under_flat_sessions_dir_for_pr ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_migrate_when_reviews_dir_is_empty ... ok
[INFO] [stdout] test profile::tests::default_profile_filename_includes_start_timestamp ... ok
[INFO] [stdout] test review_cli::tests::should_build_add_request_from_flat_json_payload ... ok
[INFO] [stdout] test review_cli::tests::should_build_add_request_from_nested_json_payload ... ok
[INFO] [stdout] test review_cli::tests::should_build_line_range_comment_target ... ok
[INFO] [stdout] test review_cli::tests::should_build_review_comment_target_by_default ... ok
[INFO] [stdout] test persistence::storage::tests::should_report_false_when_deleting_missing_session ... ok
[INFO] [stdout] test review_cli::tests::should_error_for_unknown_pr_slug ... ok
[INFO] [stdout] test persistence::storage::tests::should_skip_pr_files_in_local_context_lookup ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_load_worktree_session_after_head_advances ... ok
[INFO] [stdout] test persistence::storage::tests::should_separate_pr_sessions_by_number ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_migrate_when_sessions_dir_already_present ... ok
[INFO] [stdout] test review_cli::tests::should_reject_zero_line ... ok
[INFO] [stdout] test persistence::storage::tests::should_update_manifest_on_save ... ok
[INFO] [stdout] test review_store::tests::should_add_file_comment_to_session ... ok
[INFO] [stdout] test review_store::tests::should_add_line_range_comment_by_range_end ... ok
[INFO] [stdout] test review_cli::tests::should_list_pr_session_in_list_all ... ok
[INFO] [stdout] test persistence::storage::tests::should_migrate_pre_flat_layout_on_first_run ... ok
[INFO] [stdout] test review_store::tests::should_add_review_level_comment_to_session ... ok
[INFO] [stdout] test review_store::tests::should_reject_unknown_file ... ok
[INFO] [stdout] test slug::tests::should_build_commits_slug_from_range ... ok
[INFO] [stdout] test slug::tests::should_build_worktree_slug_from_branch ... ok
[INFO] [stdout] test slug::tests::should_change_slug_when_head_advances_for_live_source ... ok
[INFO] [stdout] test slug::tests::should_derive_slug_from_pr_session_key ... ok
[INFO] [stdout] test slug::tests::should_derive_coordinate_from_local_and_pr_slugs ... ok
[INFO] [stdout] test slug::tests::should_match_coordinate_case_insensitively ... ok
[INFO] [stdout] test slug::tests::should_match_when_either_side_has_no_owner ... ok
[INFO] [stdout] test slug::tests::should_not_match_different_owner_or_repo ... ok
[INFO] [stdout] test slug::tests::should_parse_https_remote_url ... ok
[INFO] [stdout] test slug::tests::should_parse_https_remote_url_without_dot_git_suffix ... ok
[INFO] [stdout] test slug::tests::should_parse_repo_coordinate_forms ... ok
[INFO] [stdout] test slug::tests::should_parse_scp_like_ssh_remote_url ... ok
[INFO] [stdout] test slug::tests::should_parse_ssh_scheme_remote_url ... ok
[INFO] [stdout] test slug::tests::should_pick_last_two_segments_for_nested_subgroups ... ok
[INFO] [stdout] test slug::tests::should_reject_build_for_commit_range_without_range ... ok
[INFO] [stdout] test slug::tests::should_reject_build_for_pull_request_diff_source ... ok
[INFO] [stdout] test slug::tests::should_reject_commits_source_missing_range ... ok
[INFO] [stdout] test slug::tests::should_reject_empty_anchor ... ok
[INFO] [stdout] test slug::tests::should_reject_empty_anonymous_anchor ... ok
[INFO] [stdout] test slug::tests::should_reject_empty_repo_coordinate ... ok
[INFO] [stdout] test slug::tests::should_reject_empty_slug ... ok
[INFO] [stdout] test slug::tests::should_reject_live_source_without_head ... ok
[INFO] [stdout] test slug::tests::should_reject_local_slug_without_at_separator ... ok
[INFO] [stdout] test slug::tests::should_reject_pr_slug_missing_pr_keyword ... ok
[INFO] [stdout] test slug::tests::should_reject_pr_slug_with_non_numeric_number ... ok
[INFO] [stdout] test slug::tests::should_reject_unknown_diff_source ... ok
[INFO] [stdout] test slug::tests::should_reject_unknown_forge_prefix ... ok
[INFO] [stdout] test review_cli::tests::should_list_add_and_show_comments ... ok
[INFO] [stdout] test slug::tests::should_render_anonymous_anchor ... ok
[INFO] [stdout] test slug::tests::should_render_commits_source ... ok
[INFO] [stdout] test slug::tests::should_render_local_slug_with_owner ... ok
[INFO] [stdout] test slug::tests::should_render_local_slug_without_owner ... ok
[INFO] [stdout] test slug::tests::should_render_pr_slug_github ... ok
[INFO] [stdout] test slug::tests::should_replace_slashes_in_branch_with_dashes ... ok
[INFO] [stdout] test slug::tests::should_return_none_for_unparseable_remote ... ok
[INFO] [stdout] test slug::tests::should_roundtrip_local_slug_variants ... ok
[INFO] [stdout] test slug::tests::should_roundtrip_pr_slug ... ok
[INFO] [stdout] test slug::tests::should_sanitize_branch_at_build_time ... ok
[INFO] [stdout] test slug::tests::should_take_last_two_segments_for_nested_groups ... ok
[INFO] [stdout] test slug::tests::should_truncate_to_short_sha_length ... ok
[INFO] [stdout] test slug::tests::should_use_anonymous_anchor_when_branch_is_none ... ok
[INFO] [stdout] test slug::tests::should_use_none_token_for_unborn_head_in_live_source ... ok
[INFO] [stdout] test review_cli::tests::should_resolve_pr_session_by_slug_without_repo ... ok
[INFO] [stdout] test review_cli::tests::should_find_pr_session_by_repo_coordinate ... ok
[INFO] [stdout] test review_cli::tests::should_match_pr_session_via_forge_repo_path_coordinate ... ok
[INFO] [stdout] test review_cli::tests::should_not_match_pr_session_for_unrelated_repo ... ok
[INFO] [stdout] test slug::tests::should_parse_bare_repo_name_without_owner ... ok
[INFO] [stdout] test review_store::tests::should_list_and_update_sessions_through_store ... ok
[INFO] [stdout] test app::target_selector_tests::should_use_persisted_new_head_session_instead_of_carrying_old_head_state ... ok
[INFO] [stdout] test app::target_selector_tests::should_route_comments_unresolved_command_through_command_handler ... ok
[INFO] [stdout] test forge::pr_open::tests::should_surface_empty_pr_as_forge_error ... ok
[INFO] [stdout] test syntax::tests::should_keep_file_highlighting_when_one_line_fails ... ok
[INFO] [stdout] test app::target_selector_tests::should_warn_when_opening_closed_pr ... ok
[INFO] [stdout] test syntax::tests::should_not_use_weak_fallback_mappings ... ok
[INFO] [stdout] test syntax::tests::should_preserve_empty_line_highlight_results ... ok
[INFO] [stdout] test syntax::tests::should_translate_base16_placeholder_colors_to_ansi_palette ... ok
[INFO] [stdout] test syntax::tests::split_diff_lines_for_highlighting_should_build_old_and_new_sequences ... ok
[INFO] [stdout] test text_edit::tests::should_delete_ascii_char ... ok
[INFO] [stdout] test text_edit::tests::should_delete_ascii_word ... ok
[INFO] [stdout] test text_edit::tests::should_delete_emoji ... ok
[INFO] [stdout] test app::target_selector_tests::should_keep_saved_pr_session_through_quit_reopen_and_same_head_reload ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_char_from_middle ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_word ... ok
[INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_ascii ... ok
[INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_emoji ... ok
[INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_multibyte_char ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_ascii ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_emoji ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_mixed_content ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_char ... ok
[INFO] [stdout] test text_edit::tests::should_handle_insert_delete_roundtrip ... ok
[INFO] [stdout] test text_edit::tests::should_navigate_multibyte_string_correctly ... ok
[INFO] [stdout] test text_edit::tests::should_not_delete_when_at_start ... ok
[INFO] [stdout] test text_edit::tests::should_not_delete_word_when_at_start ... ok
[INFO] [stdout] test text_edit::tests::should_return_len_when_at_end ... ok
[INFO] [stdout] test text_edit::tests::should_return_zero_when_at_start ... ok
[INFO] [stdout] test text_edit::tests::should_skip_trailing_whitespace_when_deleting_word ... ok
[INFO] [stdout] test theme::tests::should_blend_midpoint_with_integer_rounding ... ok
[INFO] [stdout] test theme::tests::should_blend_to_accent_at_hundred_percent ... ok
[INFO] [stdout] test theme::tests::should_blend_to_base_at_zero_percent ... ok
[INFO] [stdout] test theme::tests::should_boost_fg_primary_for_nord_dark_high_contrast ... ok
[INFO] [stdout] test theme::tests::should_deepen_fg_dim_for_nord_light_high_contrast ... ok
[INFO] [stdout] test theme::tests::should_default_to_system_appearance_when_not_set ... ok
[INFO] [stdout] test theme::tests::should_fallback_to_appearance_and_warn_for_invalid_config_theme ... ok
[INFO] [stdout] test theme::tests::should_fallback_to_appearance_when_no_theme_is_set ... ok
[INFO] [stdout] test theme::tests::should_have_unique_theme_names_and_variants ... ok
[INFO] [stdout] test theme::tests::should_ignore_appearance_when_only_dark_variant_configured ... ok
[INFO] [stdout] test theme::tests::should_load_checked_in_tuicr_teal_example ... ok
[INFO] [stdout] test theme::tests::should_reject_invalid_local_theme_color ... ok
[INFO] [stdout] test theme::tests::should_resolve_ayu_light_to_onehalf_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_catppuccin_latte_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_catppuccin_mocha_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_everforest_dark_to_gruvbox_dark_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_everforest_light_to_gruvbox_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_gruvbox_dark_to_dark_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_gruvbox_light_to_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_local_theme_name_from_directory ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_dark_high_contrast_to_nord_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_dark_to_nord_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_light_high_contrast_to_ocean_light_syntect_theme ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_multibyte_char ... ok
[INFO] [stdout] test theme::tests::should_resolve_onedark_to_onehalf_dark_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_return_accent_for_non_rgb_blend_inputs ... ok
[INFO] [stdout] test theme::tests::should_roundtrip_all_canonical_theme_values ... ok
[INFO] [stdout] test theme::tests::should_select_variant_theme_by_appearance_when_both_variants_configured ... ok
[INFO] [stdout] test theme::tests::should_use_appearance_when_theme_is_not_set ... ok
[INFO] [stdout] test theme::tests::should_use_bundled_syntax_theme_for_tokyo_night_day ... ok
[INFO] [stdout] test theme::tests::should_use_catppuccin_theme_from_config_when_cli_missing ... ok
[INFO] [stdout] test theme::tests::should_use_cli_theme_over_config_theme ... ok
[INFO] [stdout] test theme::tests::should_use_config_theme_when_cli_missing ... ok
[INFO] [stdout] test theme::tests::should_use_dark_bg_for_nord_dark_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_dark_fg_on_bright_accents_for_everforest_light ... ok
[INFO] [stdout] test theme::tests::should_use_dark_flavor_base_for_catppuccin_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_fg1_for_nord_light_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_light_flavor_crust_for_catppuccin_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_medium_variant_bg0_for_everforest_dark ... ok
[INFO] [stdout] test theme::tests::should_warn_on_unknown_local_theme_key ... ok
[INFO] [stdout] test app::target_selector_tests::should_treat_commits_as_alias_for_local_target_selector ... ok
[INFO] [stdout] test tuicrignore::tests::filters_matching_files ... ok
[INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_apply_background_on_success ... ok
[INFO] [stdout] test tuicrignore::tests::handles_deleted_file_paths ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_light_to_ocean_light_syntect_theme ... ok
[INFO] [stdout] test tuicrignore::tests::keeps_all_files_when_tuicrignore_is_missing ... ok
[INFO] [stdout] test tuicrignore::tests::respects_gitignore ... ok
[INFO] [stdout] test tuicrignore::tests::gitignore_alone_filters_without_tuicrignore ... ok
[INFO] [stdout] test tuicrignore::tests::tuicrignore_overrides_gitignore ... ok
[INFO] [stdout] test tuicrignore::tests::supports_unignore_rules ... ok
[INFO] [stdout] test forge::pr_open::tests::should_parse_multi_status_pr_patch_into_correct_diff_files ... ok
[INFO] [stdout] test tuicrignore::tests::detects_ignore_rule_files ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_at_start_for_empty_buffer ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_build_filename_token ... ok
[INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_handle_none_per_line ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_typescript ... ok
[INFO] [stdout] test syntax::tests::should_detect_syntax_from_shebang_when_extensionless ... ok
[INFO] [stdout] test syntax::tests::should_not_include_trailing_newline_in_highlighted_spans ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_emits_oversized_char_to_avoid_infinite_loop ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_handles_exact_width_boundary ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_handles_mixed_ascii_and_cjk ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_respects_cjk_display_width ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_returns_single_segment_for_empty_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_returns_single_segment_when_text_fits ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_returns_text_unchanged_when_content_area_is_zero ... ok
[INFO] [stdout] test ui::comment_panel::tests::wrap_segments_splits_long_ascii_at_content_area ... ok
[INFO] [stdout] test ui::commit_row::tests::should_format_short_relative_time_buckets ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_branch_chip_when_present ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_cursor_arrow_when_is_cursor ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_empty_box_when_not_selected ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_pseudo_commit_with_tag_and_drop_metadata ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_range_bar_when_selected ... ok
[INFO] [stdout] test ui::commit_row::tests::should_render_reviewed_marker_when_commit_was_already_reviewed ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_align_divider_on_wrapped_rows_in_side_by_side ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_uppercase_extension ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_filenames ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_not_wrap_when_wrap_disabled_in_side_by_side ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_hide_remote_comments_under_comments_hide_in_side_by_side ... ok
[INFO] [stdout] test syntax::tests::highlighted_spans_should_have_color ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_render_remote_comment_inline_in_side_by_side_diff ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_wrap_long_line_in_side_by_side_view_when_wrap_enabled ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_pad_shorter_column_on_wrapped_rows_in_side_by_side ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_render_full_file_header_for_revision_diff ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_hide_all_remote_comments_when_comments_hide ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_not_render_review_level_thread_when_comments_hidden ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_render_outdated_marker_for_outdated_thread_under_all ... ok
[INFO] [stdout] test forge::pr_open::tests::should_parse_pr_diff_and_build_session_keyed_by_head_sha ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_wrap_long_line_in_unified_view_when_wrap_enabled ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_render_resolved_remote_comment_only_under_comments_all ... ok
[INFO] [stdout] test ui::diff_view::tests::should_handle_box_partially_below_viewport ... ok
[INFO] [stdout] test ui::diff_view::tests::should_not_scroll_past_end_of_content ... ok
[INFO] [stdout] test ui::diff_view::tests::should_not_scroll_when_comment_box_already_visible ... ok
[INFO] [stdout] test ui::diff_view::tests::should_not_scroll_when_no_comment_box ... ok
[INFO] [stdout] test ui::diff_view::tests::should_scroll_down_when_comment_box_below_viewport ... ok
[INFO] [stdout] test ui::diff_view::tests::should_scroll_up_when_comment_box_above_viewport ... ok
[INFO] [stdout] test ui::selector::pr_open_spinner_tests::should_advance_braille_frame_every_100ms ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_render_unresolved_remote_comment_inline_in_unified_diff ... ok
[INFO] [stdout] test ui::diff_view::tests::should_scroll_to_cursor_when_box_taller_than_viewport ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_extensions ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_bold_pr_tab_label_when_pr_tab_active ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_hide_load_more_row_when_filter_active ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_filter_draft_input_in_footer_when_editing ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_error_state_in_tab_strip_status_slot_when_pr_load_failed ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_both_tab_labels_with_active_chip_bg_when_local_active ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_keep_cursor_pointer_on_other_rows_during_loading ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_loading_state_in_tab_strip_status_slot_when_pr_load_in_flight ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_spinner_glyph_in_place_of_cursor_for_loading_pr_row ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_loaded_pr_rows_with_number_title_author ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_show_disabled_hint_in_status_slot_when_pr_tab_active_without_forge ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_not_panic_on_long_multibyte_title ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_not_show_read_only_badge_for_closed_pr ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_show_load_more_row_when_has_more_and_no_filter ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_show_loaded_count_in_tab_strip_status_slot_when_ready ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_show_requested_scope_in_tab_strip_status_slot ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_omit_commits_label_for_single_commit_pr ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_omit_commits_label_when_full_range_selected ... ok
[INFO] [stdout] test syntax::tests::should_highlight_each_line_independently ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_render_pr_mode_header_with_slug_number_and_title ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_not_show_read_only_badge_for_merged_pr ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_render_review_level_remote_thread_in_review_comments_section ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_render_n_of_m_commits_when_subset_selected ... ok
[INFO] [stdout] test ui::status_bar::pr_header_snapshot_tests::should_omit_read_only_badge_for_open_pr ... ok
[INFO] [stdout] test ui::status_bar::tests::should_center_completion_window_when_possible ... ok
[INFO] [stdout] test ui::status_bar::tests::should_pin_completion_window_to_bottom_near_end ... ok
[INFO] [stdout] test ui::status_bar::tests::should_pin_completion_window_to_top_near_start ... ok
[INFO] [stdout] test ui::status_bar::tests::should_return_empty_span_when_message_is_none ... ok
[INFO] [stdout] test ui::status_bar::tests::should_show_all_completion_rows_when_they_fit ... ok
[INFO] [stdout] test ui::status_bar::tests::should_style_error_message_using_theme_fields ... ok
[INFO] [stdout] test ui::status_bar::tests::should_style_info_message_using_theme_fields ... ok
[INFO] [stdout] test ui::status_bar::tests::should_style_warning_message_using_theme_fields ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_reflects_moved_to_summary_counts ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_shows_pending_review_title_and_no_event_line_for_draft ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_mixed_content ... ok
[INFO] [stdout] test ui::submit_modals::tests::picker_cursor_moves_with_marker ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_shows_stale_head_warning_with_reload_option ... ok
[INFO] [stdout] test ui::submit_modals::tests::resolver_renders_each_row_with_cursor_marker ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_uses_gitlab_label_for_gitlab_draft ... ok
[INFO] [stdout] test ui::submit_modals::tests::picker_renders_all_events_and_cursor_marker ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_renders_event_and_counts_for_comment_submission ... ok
[INFO] [stdout] test ui::text_utils::tests::should_emit_oversized_char_alone_when_width_is_one_and_char_is_wide ... ok
[INFO] [stdout] test ui::text_utils::tests::should_handle_multibyte_utf8_char_boundaries_safely ... ok
[INFO] [stdout] test ui::text_utils::tests::should_hard_split_a_word_longer_than_width ... ok
[INFO] [stdout] test ui::text_utils::tests::should_merge_same_style_spans_into_one_when_wrapping ... ok
[INFO] [stdout] test ui::text_utils::tests::should_preserve_leading_whitespace_on_continuation_rows ... ok
[INFO] [stdout] test ui::text_utils::tests::should_preserve_styles_across_wrap_boundary ... ok
[INFO] [stdout] test ui::text_utils::tests::should_return_input_unchanged_when_width_is_zero ... ok
[INFO] [stdout] test ui::text_utils::tests::should_return_single_empty_row_for_all_empty_span_contents ... ok
[INFO] [stdout] test ui::text_utils::tests::should_return_single_empty_row_for_empty_input ... ok
[INFO] [stdout] test ui::text_utils::tests::should_return_single_row_when_input_fits ... ok
[INFO] [stdout] test ui::text_utils::tests::should_return_string_unchanged_when_within_max_len ... ok
[INFO] [stdout] test ui::text_utils::tests::should_treat_tab_as_whitespace_break ... ok
[INFO] [stdout] test ui::text_utils::tests::should_truncate_ascii_string_with_ellipsis ... ok
[INFO] [stdout] test ui::text_utils::tests::should_wrap_cjk_chars_by_display_width ... ok
[INFO] [stdout] test ui::text_utils::tests::should_truncate_without_panicking_on_multibyte_chars ... ok
[INFO] [stdout] test ui::text_utils::tests::should_wrap_at_whitespace_word_boundary ... ok
[INFO] [stdout] test update::tests::test_ahead_of_release_detection ... ok
[INFO] [stdout] test ui::text_utils::tests::should_split_a_span_that_crosses_a_wrap_point ... ok
[INFO] [stdout] test ui::text_utils::tests::should_handle_string_of_only_multibyte_chars ... ok
[INFO] [stdout] test update::tests::test_is_newer_version ... ok
[INFO] [stdout] test ui::submit_modals::tests::resolver_marks_omit_rows_with_empty_brackets ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_at_end_of_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_ascii_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_highlighting_splits_line_into_runs ... ok
[INFO] [stdout] test ui::comment_panel::tests::displayed_comment_is_markdown_highlighted_and_preserves_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_multibyte_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_on_second_line ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_render_preserves_all_text ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_extend_comment_bar_over_wrapped_rows_when_wrap_enabled ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_copied_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_expand_tabs_to_spaces_in_hunk_lines ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_copied_file_with_content_changes ... ok
[INFO] [stdout] test ui::text_utils::tests::should_pad_highlighted_spans_to_exact_width ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_binary_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::git_should_parse_binary_patch_as_binary_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_deleted_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_handle_no_newline_marker ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_new_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_multiple_files ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_line_numbers_correctly ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_multiple_hunks ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_expand_tabs_to_spaces_in_hunk_lines ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_calculate_line_numbers ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_simple_diff ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_with_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_deleted_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_new_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_added ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_parse_range_without_comma ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_reject_invalid_hunk_header ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_handle_invalid_range ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_modified ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_parse_hunk_header_without_count ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_parse_range_with_comma ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_parse_hunk_header ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_skips_binary_files ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_multiple_files ... ok
[INFO] [stdout] test vcs::file::tests::pristine_fetch_context_rejects_path_escape ... ok
[INFO] [stdout] test vcs::file::tests::pristine_fetch_context_resolves_per_file ... ok
[INFO] [stdout] test vcs::file::tests::is_probably_binary_detects_any_null_in_sniff_window ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_deleted ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_keep_highlighting_for_interleaved_typescript_hunk ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_simple_diff ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_empty_new_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_renamed_file_with_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_mode_only_change ... ok
[INFO] [stdout] test vcs::git::cli::tests::detects_change_status_without_loading_diff ... ok
[INFO] [stdout] test vcs::file::tests::pristine_filters_binary_files ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_render_preserves_multibyte_text ... ok
[INFO] [stdout] test vcs::git::cli::tests::parses_runtime_flags_from_single_config_read ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_parse_unified_diff_from_streamed_lines ... ok
[INFO] [stdout] test vcs::git::cli::tests::discovers_sparse_index_repo_mode ... ok
[INFO] [stdout] test vcs::git::cli::tests::detects_untracked_files_inside_sparse_cone_in_change_status ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_walks_and_respects_gitignore ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_still_uses_addition_origin ... ok
[INFO] [stdout] test vcs::git::cli::tests::treats_feature_many_files_as_untracked_cache_default ... ok
[INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_before_first_hunk ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_preserves_relative_paths_for_nested_files ... ok
[INFO] [stdout] test vcs::file::tests::pristine_diff_uses_context_origin_and_one_indexed_hunk ... ok
[INFO] [stdout] test vcs::git::context::tests::should_handle_overlapping_hunks ... ok
[INFO] [stdout] test vcs::git::context::tests::should_return_zero_for_adjacent_hunks ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::git::cli::tests::ignores_untracked_files_outside_sparse_cone_in_change_status ... ok
[INFO] [stdout] test vcs::git::cli::tests::gets_recent_commits_in_sparse_index ... ok
[INFO] [stdout] test vcs::file::tests::single_file_mode_returns_one_diff_file ... ok
[INFO] [stdout] test vcs::git::cli::tests::resolves_revisions_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_between_hunks ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_return_no_changes_for_empty_diff ... ok
[INFO] [stdout] test vcs::git::repository::tests::should_return_empty_recent_commits_for_unborn_head ... ok
[INFO] [stdout] test vcs::git::staging::tests::stage_file_adds_to_index ... ok
[INFO] [stdout] test vcs::git::cli::tests::commit_range_with_merge_excludes_changes_already_in_left_ref ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_keeps_standard_repo_on_libgit2 ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_commit_range_diff_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::cli::tests::cli_diff_outputs_match_libgit2_for_shared_git_operations ... ok
[INFO] [stdout] test vcs::git::tests::derives_backend_preference_from_config ... ok
[INFO] [stdout] test vcs::git::tests::derives_git_repo_mode_from_config ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_added ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_deleted ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_separate_staged_and_unstaged_diffs ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_diff_ignores_all_whitespace_when_configured ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_discover ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_copied_file ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_staged_diff_and_stages_files_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_keep_mode_only_changes_when_ignoring_whitespace ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_get_recent_commits ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_highlights_vue_script_hunk_using_full_file_context ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_working_tree_diff ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_surface_noop_file_when_whitespace_only_diff_is_empty ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_added ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_working_tree_with_commits_ignores_all_whitespace_when_configured ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_deleted ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_ancestor_revision ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_discover ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_diff_surfaces_noop_file_when_whitespace_only_diff_is_empty ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_recent_commits ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_fetch_context_lines ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_current_revision ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_no_bookmarks ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_return_no_changes_for_clean_repo ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_expand_tabs_to_spaces_in_git_hunks ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_fetch_context_lines ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_working_tree_diff ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_working_tree_with_commits_surfaces_noop_file_for_whitespace_only_diff ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_highlights_vue_script_hunk_using_full_file_context ... ok
[INFO] [stdout] test vcs::pr_noop::tests::should_return_empty_context_lines_from_noop_backend ... ok
[INFO] [stdout] test vcs::tests::bench_highlight_parallel_vs_serial ... ignored
[INFO] [stdout] test vcs::pristine::tests::errors_when_not_a_git_repo ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_routes_sparse_index_repo_to_cli_with_warning ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_highlight_vue_script_hunk_using_full_file_context ... ok
[INFO] [stdout] test vcs::tests::exports_are_accessible ... ok
[INFO] [stdout] test vcs::git::cli::tests::returns_no_changes_for_clean_sparse_index ... ok
[INFO] [stdout] test vcs::traits::tests::commit_info_clone ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_info_clone ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_type_display_git ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_type_display_jujutsu ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_type_display_mercurial ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_type_equality ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_info_without_branch ... ok
[INFO] [stdout] test vcs::tests::detect_vcs_outside_repo_returns_error ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_surface_staged_files_on_unborn_head ... ok
[INFO] [stdout] test vcs::pristine::tests::errors_when_repo_has_no_tracked_files ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_routes_split_index_repo_to_cli ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_working_tree_diff_and_untracked_files_in_sparse_index ... ok
[INFO] [stdout] test vcs::pristine::tests::drops_deleted_but_tracked_entries ... ok
[INFO] [stdout] test vcs::git::cli::tests::cli_diff_ignores_all_whitespace_when_configured ... ok
[INFO] [stdout] test vcs::pristine::tests::lists_only_tracked_files ... ok
[INFO] [stdout] test vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension ... FAILED
[INFO] [stdout] test vcs::git::tests::default_preference_routes_reftable_repo_to_cli ... FAILED
[INFO] [stdout] test vcs::pr_noop::tests::should_reject_working_tree_diff_on_noop_backend ... ok
[INFO] [stdout] test vcs::tests::enhance_full_file_highlight_serial_path_one_file ... ok
[INFO] [stdout] test vcs::tests::enhance_full_file_highlight_results_match_input_order ... ok
[INFO] [stdout] test vcs::tests::enhance_full_file_highlight_parallel_path_many_files ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension' (4651) panicked at src/vcs/git/libgit2.rs:224:9:
[INFO] [stdout] git worktree add -q /tmp/.tmptXfs8b/wt failed: fatal: unknown repository extension found:
[INFO] [stdout] 	relativeworktrees
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d3a039960b1 - 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:     0x5d3a039960b1 - 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:     0x5d3a039960b1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d3a039960b1 - <<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:     0x5d3a039afe0a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d3a039afe0a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5d3a0399bf3c - 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:     0x5d3a0399bf3c - <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:     0x5d3a0396e896 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d3a0396e896 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d3a0398bf39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d3a02c17f90 - <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:     0x5d3a02c17f90 - 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:     0x5d3a0398c262 - <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:     0x5d3a0398c262 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5d3a0396e942 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5d3a03965699 - 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:     0x5d3a0396fbed - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5d3a039b06bc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d3a026af552 - tuicr[b972ea092ee4defd]::vcs::git::libgit2::tests::git
[INFO] [stdout]                                at /opt/rustwide/workdir/src/vcs/git/libgit2.rs:224:9
[INFO] [stdout]   20:     0x5d3a026affa9 - tuicr[b972ea092ee4defd]::vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension
[INFO] [stdout]                                at /opt/rustwide/workdir/src/vcs/git/libgit2.rs:269:9
[INFO] [stdout]   21:     0x5d3a0268c017 - tuicr[b972ea092ee4defd]::vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/vcs/git/libgit2.rs:233:67
[INFO] [stdout]   22:     0x5d3a02ab0f46 - <tuicr[b972ea092ee4defd]::vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension::{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:     0x5d3a02c0b2cb - <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:     0x5d3a02c0b2cb - 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:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5d3a02c18915 - <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:     0x5d3a02c18915 - 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:     0x5d3a02c18915 - 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:     0x5d3a02c18915 - 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:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5d3a02c133c4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5d3a02c133c4 - 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:     0x5d3a02c1ba62 - 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:     0x5d3a02c1ba62 - <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:     0x5d3a02c1ba62 - 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:     0x5d3a02c1ba62 - 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:     0x5d3a02c1ba62 - 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:     0x5d3a02c1ba62 - 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:     0x5d3a02c1ba62 - <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:     0x5d3a03994b3f - <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:     0x5d3a03994b3f - <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:     0x7e15b8e47aa4 - <unknown>
[INFO] [stdout]   44:     0x7e15b8ed4a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- vcs::git::tests::default_preference_routes_reftable_repo_to_cli stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'vcs::git::tests::default_preference_routes_reftable_repo_to_cli' (4686) panicked at src/vcs/git/mod.rs:486:10:
[INFO] [stdout] reftable repo should open via CLI fallback: NotARepository
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d3a039960b1 - 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:     0x5d3a039960b1 - 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:     0x5d3a039960b1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d3a039960b1 - <<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:     0x5d3a039afe0a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d3a039afe0a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5d3a0399bf3c - 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:     0x5d3a0399bf3c - <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:     0x5d3a0396e896 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d3a0396e896 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d3a0398bf39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d3a02c17f90 - <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:     0x5d3a02c17f90 - 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:     0x5d3a0398c262 - <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:     0x5d3a0398c262 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5d3a0396e942 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5d3a03965699 - 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:     0x5d3a0396fbed - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5d3a039b06bc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d3a039b0402 - core[6883ba1bc0fe4ed1]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x5d3a0263df2c - <core[6883ba1bc0fe4ed1]::result::Result<tuicr[b972ea092ee4defd]::vcs::git::GitBackend, tuicr[b972ea092ee4defd]::error::TuicrError>>::expect
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1183:23
[INFO] [stdout]   21:     0x5d3a028818bc - tuicr[b972ea092ee4defd]::vcs::git::tests::default_preference_routes_reftable_repo_to_cli
[INFO] [stdout]                                at /opt/rustwide/workdir/src/vcs/git/mod.rs:486:10
[INFO] [stdout]   22:     0x5d3a0283e697 - tuicr[b972ea092ee4defd]::vcs::git::tests::default_preference_routes_reftable_repo_to_cli::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/vcs/git/mod.rs:472:56
[INFO] [stdout]   23:     0x5d3a02aadb06 - <tuicr[b972ea092ee4defd]::vcs::git::tests::default_preference_routes_reftable_repo_to_cli::{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]   24:     0x5d3a02c0b2cb - <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]   25:     0x5d3a02c0b2cb - 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]   26:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5d3a02c18915 - <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]   28:     0x5d3a02c18915 - 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]   29:     0x5d3a02c18915 - 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]   30:     0x5d3a02c18915 - 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]   31:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5d3a02c18915 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5d3a02c133c4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5d3a02c133c4 - 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]   35:     0x5d3a02c1ba62 - 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]   36:     0x5d3a02c1ba62 - <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]   37:     0x5d3a02c1ba62 - 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]   38:     0x5d3a02c1ba62 - 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]   39:     0x5d3a02c1ba62 - 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]   40:     0x5d3a02c1ba62 - 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]   41:     0x5d3a02c1ba62 - <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]   42:     0x5d3a03994b3f - <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]   43:     0x5d3a03994b3f - <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]   44:     0x7e15b8e47aa4 - <unknown>
[INFO] [stdout]   45:     0x7e15b8ed4a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension
[INFO] [stdout]     vcs::git::tests::default_preference_routes_reftable_repo_to_cli
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1065 passed; 2 failed; 1 ignored; 0 measured; 0 filtered out; finished in 6.72s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169", kill_on_drop: false }`
[INFO] [stdout] c07c64131a9344cca964c20b78203b862152e8d34929079bf0b5b75e52926169
