[INFO] fetching crate tuicr 0.27.0...
[INFO] testing tuicr-0.27.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate tuicr 0.27.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate tuicr 0.27.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate tuicr 0.27.0
[INFO] tweaked toml for crates.io crate tuicr 0.27.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tuicr 0.27.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tuicr 0.27.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ureq v3.4.2
[INFO] [stderr]   Downloaded yoke-derive v0.8.3
[INFO] [stderr]   Downloaded ureq-proto v0.6.4
[INFO] [stderr]   Downloaded cookie v0.18.2
[INFO] [stderr]   Downloaded zip v4.6.1
[INFO] [stderr]   Downloaded terminal-trx v0.2.6
[INFO] [stderr]   Downloaded xterm-color v1.0.2
[INFO] [stderr]   Downloaded terminal-colorsaurus v1.0.3
[INFO] [stderr]   Downloaded self-replace v1.5.0
[INFO] [stderr]   Downloaded lru v0.18.5
[INFO] [stderr]   Downloaded instability v0.3.14
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.2
[INFO] [stderr]   Downloaded pest_derive v2.9.2
[INFO] [stderr]   Downloaded ratatui-termina v0.1.0
[INFO] [stderr]   Downloaded ratatui-macros v0.7.2
[INFO] [stderr]   Downloaded edtui-jagged v0.1.13
[INFO] [stderr]   Downloaded pest_meta v2.9.2
[INFO] [stderr]   Downloaded pest_generator v2.9.2
[INFO] [stderr]   Downloaded redox_users v0.5.3
[INFO] [stderr]   Downloaded finl_unicode v1.5.0
[INFO] [stderr]   Downloaded termina v0.3.3
[INFO] [stderr]   Downloaded pest v2.9.2
[INFO] [stderr]   Downloaded git2 v0.20.4
[INFO] [stderr]   Downloaded libssh2-sys v0.3.3
[INFO] [stderr]   Downloaded libgit2-sys v0.18.8+1.9.7
[INFO] [stderr]   Downloaded two-face v0.5.2+bat-0.26.1
[INFO] [stderr]   Downloaded edtui v0.11.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b
[INFO] running `Command { std: "docker" "start" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", 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" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", 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" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling find-msvc-tools v0.1.13
[INFO] [stderr]    Compiling smallvec v1.16.1
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[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 cc v1.4.7
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling wayland-backend v0.3.17
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling lru v0.18.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling quick-xml v0.41.0
[INFO] [stderr]    Compiling wayland-client v0.31.15
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling libz-sys v1.1.29
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling wayland-scanner v0.31.11
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling onig_sys v69.9.3
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling line-clipping v0.3.8
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling instability v0.3.14
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling wayland-protocols v0.32.13
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling libgit2-sys v0.18.8+1.9.7
[INFO] [stderr]    Compiling quick-xml v0.42.0
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling plist v1.10.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling onig v6.5.3
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling tree_magic_mini v3.2.2
[INFO] [stderr]    Compiling os_pipe v1.2.3
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.12
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling clap_lex v1.1.1
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling wl-clipboard-rs v0.9.3
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling globset v0.4.20
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ureq-proto v0.6.4
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling terminal-trx v0.2.6
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling edtui-jagged v0.1.13
[INFO] [stderr]    Compiling xterm-color v1.0.2
[INFO] [stderr]    Compiling ureq v3.4.2
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling terminal-colorsaurus v1.0.3
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling edtui v0.11.7
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling two-face v0.5.2+bat-0.26.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling self-replace v1.5.0
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling zip v4.6.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling tuicr v0.27.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 25s
[INFO] running `Command { std: "docker" "inspect" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", 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" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tuicr v0.27.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 56.50s
[INFO] running `Command { std: "docker" "inspect" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", 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" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.66s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tuicr-cd2f5e90b807a496)
[INFO] [stdout] 
[INFO] [stdout] running 1832 tests
[INFO] [stdout] test app::diff_load::tests::should_differ_when_a_file_is_removed ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_a_file_is_added ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_binary_flag_flips_despite_equal_content_hash ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_content_hash_changes ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_status_changes ... ok
[INFO] [stdout] test app::diff_load::tests::should_match_for_identical_input ... ok
[INFO] [stdout] test app::diff_load::tests::should_match_when_same_files_arrive_in_a_different_order ... ok
[INFO] [stdout] test app::editor_target::tests::snapshot_path_joins_a_relative_path ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_paths_are_split_differently_across_files ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_path_changes ... ok
[INFO] [stdout] test app::editor_target::tests::materialize_keeps_an_existing_snapshot ... ok
[INFO] [stdout] test app::diff_load::tests::watch_worker_open_options_retain_whitespace_overrides ... ok
[INFO] [stdout] test app::editor_target::tests::materialize_writes_a_read_only_file ... ok
[INFO] [stdout] test app::diff_load::tests::should_differ_when_too_large_flag_flips_despite_equal_content_hash ... ok
[INFO] [stdout] test app::search::tests::should_move_to_next_and_previous_help_matches ... ok
[INFO] [stdout] test app::search::tests::should_not_pan_help_when_every_line_fits ... ok
[INFO] [stdout] test app::editor_target::tests::snapshot_path_rejects_paths_that_escape_the_root ... ok
[INFO] [stdout] test app::editor_target::tests::snapshot_root_names_the_repo_pr_and_revision ... ok
[INFO] [stdout] test app::search::tests::should_pan_help_right_only_until_the_widest_line_ends ... ok
[INFO] [stdout] test app::file_filter::tests::should_flatten_errors_that_carry_no_reason_line ... ok
[INFO] [stdout] test app::file_filter::tests::should_take_the_trailing_reason_line_over_the_header ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_apply_rows_and_select_first ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_clamp_cursor_at_both_ends ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_scroll_viewport_to_follow_cursor ... ok
[INFO] [stdout] test app::search::tests::should_pan_help_back_to_the_left_edge ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_start_empty ... ok
[INFO] [stdout] test app::search::tests::should_keep_the_current_help_position_when_no_match_exists ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_not_move_cursor_when_empty ... ok
[INFO] [stdout] test app::sessions_tab::tests::should_record_error_and_drop_rows ... ok
[INFO] [stdout] test app::search::tests::should_find_help_text_case_insensitively_and_center_it_in_the_viewport ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::add_comment_to_session_leaves_commit_id_none_when_not_provided ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::add_comment_to_session_stamps_commit_id_when_provided ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_for_full_range ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::comment_scoped_to_selected_commit_is_visible ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::comment_scoped_to_unselected_commit_is_hidden ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_for_multi_commit_subset ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::commit_id_for_new_comment_is_sha_for_single_commit ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::commit_id_for_new_comment_is_none_without_selector ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::legacy_session_json_deserializes_comment_without_commit_id ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::legacy_comment_with_no_commit_id_is_always_visible ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::commit_data_index_is_identity_when_descending ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::no_selector_shows_all_comments ... ok
[INFO] [stdout] test app::tests::commit_scoped_comment_tests::full_range_shows_all_commit_scoped_comments ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::commit_data_index_mirrors_and_round_trips_when_ascending ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::initial_commit_range_all_selects_full_span ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::initial_commit_range_empty_is_none ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::has_review_commits_ignores_visibility_but_requires_multiple_non_worktree ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::initial_commit_range_oldest_selects_last_index ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::is_diff_sole_pane_only_when_no_other_panes_visible ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::review_comments_header_hidden_while_empty ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::commit_selection_summary_shows_position_for_single_and_count_for_range ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_add_and_drop_the_commit_message_as_the_inline_pane_narrows_and_widens ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_mark_a_commit_only_file_reviewed_after_narrowing_the_commit_pane ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_mark_a_commit_only_file_reviewed_when_every_commit_is_selected ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_mark_a_hunk_reviewed_in_a_commit_only_file_after_narrowing_the_commit_pane ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_comment_on_a_commit_only_file_after_narrowing_the_commit_pane ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_not_show_a_commit_message_for_the_unstaged_row ... ok
[INFO] [stdout] test app::tests::change_status_tests::jj_status_never_creates_git_staging_rows ... ok
[INFO] [stdout] test app::tests::change_status_tests::status_probe_rechecks_positive_rows_when_ignore_rules_exist ... ok
[INFO] [stdout] test app::tests::change_status_tests::status_probe_does_not_load_diffs_without_ignore_rules ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::special_commit_count_counts_leading_special_entries ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::special_commit_count_ignores_non_leading_special_entries ... ok
[INFO] [stdout] test app::tests::change_status_tests::list_changed_paths_used_to_verify_ignore_rules ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::toggle_commit_selection_from_all_selected_selects_only_cursor ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::toggle_commit_selection_keeps_partial_range_shrink_behavior ... ok
[INFO] [stdout] test app::tests::decoration_skip_tests::backward_skips_header_and_spacing_to_previous_content_line ... ok
[INFO] [stdout] test app::tests::decoration_skip_tests::backward_stops_at_zero_when_top_is_decoration ... ok
[INFO] [stdout] test app::tests::decoration_skip_tests::forward_clamps_at_max_line_even_on_decoration ... ok
[INFO] [stdout] test app::tests::decoration_skip_tests::forward_keeps_position_on_content_line ... ok
[INFO] [stdout] test app::tests::decoration_skip_tests::forward_skips_spacing_and_header_to_next_content_line ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::toggle_commit_selector_flips_visibility_and_drops_focus ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_comment_on_the_commit_message_of_a_commit_chosen_from_the_target_selector ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_preserve_commit_message_and_comments_on_manual_reload ... ok
[INFO] [stdout] test app::diff_load::tests::watch_reload_mixed_file_diff_matches_initial_auto_load ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_keep_pre_reconciliation_session_as_persisted_snapshot ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_not_treat_commit_message_as_a_watched_diff_change ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_observe_externally_reloaded_session ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_observe_successfully_saved_session ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_preserve_commit_message_when_watched_diff_changes ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_fetch_twice_when_probe_finds_a_change ... ok
[INFO] [stdout] test app::tests::commit_selection_tests::should_show_the_commit_message_when_one_commit_is_chosen_in_the_target_selector ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_propagate_corrupt_session_when_resetting_tracking ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_fetch_once_when_probe_finds_no_change ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_leave_displayed_diff_unchanged_when_manual_reload_cannot_persist ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_not_persist_strict_subset_reload ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_persist_full_local_reload_invalidation ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_fetch_changed_diff_files_keeping_narrowed_commit_selection ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_reload_persisted_snapshot_when_resetting_tracking ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_preserve_dirty_state_and_external_comment_during_manual_reload ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_clamp_counter_to_one_when_cursor_is_above_the_first_match ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_clear_highlight_but_keep_pattern_for_n ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_reload_diff_files_installing_fetched_files ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_reload_diff_files_keeping_narrowed_commit_selection ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_defer_recompute_to_n_while_highlight_is_cleared ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_not_expose_a_needle_when_highlighting_is_disabled_in_config ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_propagate_no_changes_when_backend_reports_no_changes ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_recompute_matches_when_annotations_are_rebuilt ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_report_no_matches_and_keep_cursor_still ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_not_leave_highlight_active_after_a_failed_search ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_suppress_highlighting_while_typing_a_comment ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_match_case_insensitively ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_wrap_to_top_when_cycling_past_the_last_match ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_wrap_to_bottom_when_cycling_before_the_first_match ... ok
[INFO] [stdout] test app::tests::diff_source_tests::commit_range_source_does_not_include_worktree_changes ... ok
[INFO] [stdout] test app::tests::diff_source_tests::unstaged_source_includes_worktree_changes ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_add_the_staged_row_when_a_file_is_staged_mid_review ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_arm_the_next_deadline_when_an_interval_is_set ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_apply_fresh_commits_and_a_new_synthetic_row_from_one_tick ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_apply_and_report_a_changed_result ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_be_stale_when_diff_source_changed ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_be_stale_when_input_mode_left_normal ... ok
[INFO] [stdout] test app::tests::diff_search_tests::should_collect_matches_and_move_to_first_match_at_or_after_cursor ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_clear_the_selection_when_the_rebuilt_pane_is_empty ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_be_clear_to_fetch_when_due_and_none_in_flight ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_be_stale_when_commit_selection_changed ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_defer_outside_normal_mode_then_resume ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_clear_in_flight_state_when_the_worker_dies_without_answering ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_discard_result_that_matches_what_is_already_on_screen ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_discard_result_delivered_outside_normal_mode ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_disable_diff_watch_when_interval_is_zero ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_discard_result_when_commit_selection_changed_since_spawn ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_probe_with_a_grammar_free_highlighter_then_fetch_with_the_real_one ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_follow_the_same_commit_when_rows_shift_beneath_the_cursor ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_install_fresh_commits_from_a_watch_result_when_nothing_is_narrowed ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_install_fresh_commits_when_only_staged_and_unstaged_are_selected ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_drop_the_cached_selection_diffs_when_the_pane_shifts ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_keep_the_pane_order_when_a_synthetic_row_appears ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_keep_the_selection_inside_a_pane_that_shrank ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_drop_the_unstaged_row_when_the_last_unstaged_change_is_staged ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_discard_result_when_diff_source_changed_since_spawn ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_keep_a_reviewed_file_marked_when_a_watch_tick_changes_a_different_file ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_keep_the_cursor_inside_a_pane_that_shrank ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_move_a_narrowed_selection_onto_the_same_commits_after_a_rebuild ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_normalize_other_errors_to_their_display_text ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_be_stale_when_nothing_changed_since_spawn ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_normalize_no_changes_error_to_silent_none ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_empty_the_pane_when_the_fetch_returns_no_commits ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_disturb_view_on_unchanged_result ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_leave_the_synthetic_rows_alone_when_no_change_status_arrives ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_keep_the_staged_and_unstaged_rows_when_installing_fresh_commits ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_redraw_when_a_second_tick_reports_the_same_change_status ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_for_pull_request_source ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_a_second_reload_while_one_is_in_flight ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_leave_the_commit_pane_alone_when_the_narrowed_commit_is_gone ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_for_file_backed_vcs ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_pass_through_a_successful_fetch ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_when_deadline_not_reached ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_when_interval_unset ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_report_a_narrowed_selection_lost_when_its_commit_is_gone ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_restore_a_cleared_reviewed_mark_when_the_session_watcher_runs_after ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_not_spawn_in_pristine_mode ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_report_no_change_when_the_fetched_commits_match_the_pane ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_unmark_only_the_edited_hunk_when_a_watch_tick_changes_it ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_report_a_failure_when_the_worker_panics ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_widen_a_full_cover_selection_to_the_whole_rebuilt_pane ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_unmark_a_reviewed_file_when_a_watch_tick_changes_it ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_widen_an_absent_selection_to_the_whole_rebuilt_pane ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_warn_once_on_repeated_identical_failure ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_widen_a_whole_pane_selection_when_commits_arrive ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_refresh_the_commit_pane_and_move_a_narrowing_with_it ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::comment_navigator_includes_remote_review_summary ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::comment_navigator_items_follow_rendered_comment_order ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::hunk_navigation_crosses_asymmetric_files_with_hidden_middle_file ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::jump_to_selected_comment_uses_comment_annotation_target ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_append_on_subsequent_down_expand ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::hunk_navigation_counts_paired_changes_and_wrapped_comments ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_cap_at_gap_boundaries ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_cycle_backward_and_skip_current_multiline_comment ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_all_lines_with_both_direction ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_cycle_forward_through_review_file_and_line_comments ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::hunk_navigation_tracks_expanded_and_collapsed_context ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::hunk_navigation_renders_the_target_after_scrolling_expanded_context ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_down_at_end_of_file ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_collapsed_gap_when_jumping_into_it ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_down_from_upper_hunk ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_gap_in_correct_file_not_adjacent_file ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_only_up_to_target_line_not_full_gap ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_small_gap_fully_even_with_large_limit ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_up_from_first_hunk ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_up_from_lower_hunk ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_handle_subsequent_eof_expansions ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_keep_file_and_hunk_reviewed_state_independent ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_up_when_cursor_is_below_the_gap ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_fold_reviewed_hunk_body ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_noop_when_already_fully_expanded ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_merge_to_both_when_remaining_drops_below_batch ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_expand_old_side_gap_when_jumping_with_o_prefix ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_not_expand_when_line_is_already_in_a_hunk ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_prepend_on_subsequent_up_expand ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_not_show_eof_gap_for_deleted_files ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_not_show_expander_when_fully_expanded ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_rebuild_single_file_annotations_when_navigating_to_outdated_remote_comment ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_show_end_of_file_expander ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_not_show_eof_gap_when_hunk_ends_at_file_end ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_report_when_no_comments_exist ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_show_split_expanders_for_large_between_hunk_gap ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_show_up_expander_for_top_of_file_partial ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_show_small_eof_gap_expander_without_hidden_lines ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_show_merged_expander_for_small_between_hunk_gap ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_toggle_hunk_reviewed_from_diff_line ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_warn_when_toggling_hunk_outside_hunk ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_wrap_backward_to_last_comment ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::total_lines_must_match_annotations_when_commit_scoped_comment_is_hidden ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::total_lines_must_match_annotations_with_eof_gaps ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_advance_to_the_next_unreviewed_file_when_marking_hides_the_current_one ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::total_lines_must_match_annotations_with_remote_threads ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_toggle_hunk_reviewed_from_header ... ok
[INFO] [stdout] test app::tests::expand_gap_tests::should_update_current_file_when_navigating_to_remote_comment ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_bring_reviewed_files_back_when_toggled_on_again ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_burn_down_through_the_file_list_handler_while_hiding ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_drop_files_matching_the_exclude_pattern ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_exclude_filtered_files_from_counts_and_stats ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_clear_only_the_requested_filter ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_hide_reviewed_files_from_the_tree ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_discard_the_draft_when_the_prompt_is_cancelled ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_expand_collapsed_parents_to_reveal_a_search_match ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_hide_directories_whose_children_are_all_filtered_out ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_keep_hunk_positions_aligned_with_the_rendered_rows_while_hiding ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_keep_only_files_matching_the_include_pattern ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_return_none_when_fetched_diff_is_unchanged ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_keep_the_prompt_open_and_apply_nothing_on_an_invalid_regex ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_keep_the_progress_fraction_over_the_whole_population_while_hiding ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_intersect_include_and_exclude_patterns ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_hide_reviewed_files_via_the_set_noreviewed_command ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_leave_the_cursor_alone_when_marking_reviewed_while_showing_everything ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_leave_no_stale_annotations_when_the_startup_default_hides_reviewed_files ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_match_patterns_case_insensitively ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_match_against_the_full_relative_path_not_just_the_file_name ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_not_hide_a_file_whose_hunks_are_merely_all_hunk_reviewed ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_not_search_into_hidden_reviewed_files ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_move_the_current_file_off_a_row_the_filter_just_hid ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_park_at_the_overview_when_the_last_unreviewed_file_is_marked ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_remove_hidden_reviewed_files_from_the_diff_render_height ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_remove_filtered_files_from_the_diff_render_height ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_report_when_no_file_matches_the_search ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_seed_the_prompt_with_the_pattern_already_applied ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_mark_the_selected_tree_row_reviewed_through_the_file_list_handler ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_select_the_matching_file_on_search_without_moving_the_diff ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_step_and_wrap_through_search_matches ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_show_reviewed_files_via_the_set_reviewed_command ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_toggle_reviewed_visibility_via_the_bare_reviewed_command ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_park_at_the_overview_when_nothing_matches ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_find_exact_match ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_find_nearest_above_target ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_find_nearest_for_target_zero ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_find_nearest_when_no_exact_match ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_treat_an_empty_pattern_as_clearing_the_filter ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_handle_mixed_diff_and_sbs_lines ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_match_old_lineno_when_side_is_old ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_not_search_into_files_hidden_by_a_filter ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_not_match_new_lineno_when_side_is_old ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_prefer_exact_match_over_earlier_nearest ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_return_fetched_files_when_diff_changed ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_still_scope_the_progress_fraction_to_the_include_exclude_filters ... ok
[INFO] [stdout] test app::tests::file_filter_tests::should_wrap_to_the_first_remaining_file_when_marking_the_last_one ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_return_not_found_for_empty_annotations ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_return_not_found_when_only_non_line_annotations ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_skip_diff_lines_with_no_new_lineno ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_return_not_found_when_no_lines_in_current_file ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_tie_break_nearest_by_iteration_order ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_work_with_side_by_side_lines ... ok
[INFO] [stdout] test app::tests::persistence_merge_tests::should_merge_external_comment_without_losing_local_comment ... ok
[INFO] [stdout] test app::tests::persistence_merge_tests::should_apply_external_edit_when_comment_is_unchanged_locally ... ok
[INFO] [stdout] test app::tests::persistence_merge_tests::should_not_resurrect_locally_deleted_comment_when_disk_is_unchanged ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_skip_non_diff_line_annotations ... ok
[INFO] [stdout] test app::tests::find_source_line_tests::should_skip_lines_from_other_files ... ok
[INFO] [stdout] test app::tests::diff_reload_tests::should_surface_persistence_failure_after_staging ... ok
[INFO] [stdout] test app::tests::render_perf_tests::render_perf_scaling ... ignored, timing measurement, run explicitly
[INFO] [stdout] test app::tests::render_perf_tests::render_perf_with_comments ... ignored, timing measurement, run explicitly
[INFO] [stdout] test app::tests::sbs_comment_side_tests::addition_line_clamps_to_new_even_when_old_preferred ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_build_pr_info_panel_lines ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::context_line_honors_cursor_side_in_side_by_side ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::deletion_line_clamps_to_old_even_when_new_preferred ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::horizontal_keys_scroll_in_unified_and_leave_side_unchanged ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::leader_walk_ignores_the_sides_in_unified_view ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::horizontal_keys_scroll_in_side_by_side_and_leave_side_unchanged ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::leader_walk_steps_through_the_side_by_side_panes ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::line_comment_preserves_horizontal_scroll ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::range_comment_preserves_horizontal_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::after_zz_no_oscillation_with_k_then_j ... ok
[INFO] [stdout] test app::tests::sbs_comment_side_tests::unified_view_ignores_cursor_side_and_prefers_new ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::after_zz_on_last_line_j_does_not_change_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::after_zz_on_last_line_k_does_not_change_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::center_cursor_wrap_on_walks_maximally ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::cursor_cannot_go_past_last_content_line ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::cursor_down_with_stale_cursor_past_end_does_not_underflow ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::effective_scroll_margin_prevents_oscillation ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::j_on_last_line_centered_does_not_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::cursor_to_bottom_wrap_on_walks_maximally ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::j_on_last_line_near_bottom_does_not_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::j_scrolls_one_line_at_a_time ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::k_below_midpoint_only_moves_cursor ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::k_reclaims_empty_space_below ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::max_scroll_allows_last_line_at_top ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::jump_to_bottom_wrap_on_keeps_last_line_fully_visible ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::move_cursor_to_annotation_wrap_on_scrolls_target_fully_into_view ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::no_scroll_when_last_line_visible ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::page_down_uses_viewport_relative_row_heights ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::page_lines_down_wrap_on_counts_visual_rows ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::page_lines_return_at_least_one ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::page_lines_wrap_off_equals_row_budget ... ok
[INFO] [stdout] test app::tests::diff_watch_tests::should_spawn_a_worker_when_the_tick_says_fetch ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::scroll_offset_for_rows_above_wrap_off_matches_saturating_sub ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::scroll_offset_for_rows_above_wrap_on_heterogeneous_heights ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::scroll_offset_zero_means_no_margin ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::page_up_uses_viewport_relative_row_heights ... ok
[INFO] [stdout] test app::tests::scroll_tests::should_calculate_max_scroll ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::zz_on_last_line_centers_cursor ... ok
[INFO] [stdout] test app::tests::scroll_tests::should_handle_empty_content ... ok
[INFO] [stdout] test app::tests::scroll_tests::should_handle_small_content ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_hide_sessions_with_no_review_progress ... ok
[INFO] [stdout] test app::tests::scroll_behavior_tests::smooth_scroll_to_end_no_jumps ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_point_pristine_sessions_at_the_flag_that_opens_them ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_report_a_pr_session_with_no_saved_pull_request ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_report_a_range_whose_commits_are_gone ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_not_add_pr_info_to_file_tree ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_resume_a_pr_session_through_the_forge_open_path ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_walk_from_overview_to_first_file_with_next_file ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_start_overview_at_top_of_main_view ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_keep_pr_info_annotations_in_sync_with_rendered_lines_at_wrap_boundary ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::cursor_down_requires_two_presses_to_walk_to_next_file ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::collapsing_selected_directory_keeps_tree_selection ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::cursor_up_requires_two_presses_to_walk_to_prev_file ... ok
[INFO] [stdout] test app::tests::pr_info_tests::should_order_overview_sections_before_file_diffs ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::editor_target_uses_selected_file_list_row ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::editor_target_warns_when_a_synthetic_root_has_no_checkout ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::editor_target_uses_diff_cursor_line ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::edit_command_uses_selected_file_list_row ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::held_key_does_not_walk_when_keyboard_enhancement_supported ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::effective_file_height_is_zero_for_non_current_in_single_file_view ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::editor_target_warns_for_missing_local_file ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::pr_editor_target_warns_when_a_binary_file_is_not_in_the_checkout ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::prev_hunk_crosses_into_prev_file_in_single_file_view ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::next_hunk_crosses_into_next_file_in_single_file_view ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::pr_editor_target_warns_with_the_forge_error ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_install_the_selected_session_not_one_matching_current_head ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::pr_editor_target_prefers_a_worktree_copy_of_the_pr_revision ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_advance_from_resolver_to_confirm ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::toggle_preserves_file_position ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::primed_walk_clears_on_non_overflow_cursor_move ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_allow_bare_approve_through_action_picker_with_no_comments ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_allow_bare_approve_without_any_comments ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::release_then_press_walks_when_keyboard_enhancement_supported ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_apply_result_via_poll_when_head_sha_matches ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_detect_locked_comment_under_cursor_for_dd_path ... ok
[INFO] [stdout] test app::tests::single_file_view_tests::reviewed_banner_keeps_annotations_aligned_with_rendered_rows ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_cancel_submit_clears_state_and_returns_to_normal ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_anchor_line_comments_via_hashmap_key_when_line_context_missing ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_emit_draft_message_with_pr_url_for_draft_submit ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_emit_success_message_with_review_id_and_counts_for_published_submit ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_dispatch_async_submit_on_confirm_and_clear_modal_state ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_discard_stale_submit_result_when_head_sha_changed ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_flip_comments_to_submitted_and_stamp_review_id_on_success ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_flip_summary_bound_unmappable_comments_on_submit_success ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_keep_locked_line_comments_when_remote_thread_refetch_fails ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_keep_locked_review_comments_when_remote_summary_refetch_fails ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_lock_file_level_comment_via_submit_success ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_mark_reviewed_commits_after_successful_submit ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_not_mark_reviewed_commits_after_draft_submit ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_flip_comments_to_pushed_draft_for_draft_submission ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_open_resolver_when_any_comment_is_unmappable ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_flip_review_level_comments_on_submit_success ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_open_confirm_directly_when_all_comments_map ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_prune_locked_comments_across_all_buckets ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_report_stale_head_when_current_differs_from_session_head ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_keep_comments_as_local_draft_on_submit_failure ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_only_flip_comments_whose_ids_were_submitted ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_skip_locked_comments_during_preflight ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_route_picker_through_resolver_then_skip_confirm ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_use_pr_head_sha_as_commit_id_when_full_commit_range_selected ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_warn_when_no_local_drafts_exist ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_skip_confirm_modal_when_action_picker_dispatches_with_no_unmappable ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_toggle_resolver_action_between_move_and_omit ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_report_head_not_stale_when_current_matches_session_head ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_warn_when_pr_is_closed_or_merged ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_use_subset_head_sha_as_commit_id_when_inline_selector_is_strict_subset ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_only_the_comment_under_the_cursor ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_remote_comment_from_its_anchor_line_or_thread ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_reply_from_multiline_review_level_thread_footer ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_nothing_when_cursor_is_not_on_a_comment ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_rendered_remote_thread_when_hidden_thread_shares_its_anchor ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_remote_review_summary ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_warn_when_submitting_without_pr_mode ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_vim_command_backspace_past_colon_closes ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_block_start_finds_first_row_of_comment ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_vim_command_line_q_cancels_w_saves ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_current_line_cursor_targets_the_cursor_line ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_vim_double_esc_cancels ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_vim_soft_tab_inserts_configured_spaces ... ok
[INFO] [stdout] test app::tests::target_selector_tests::comment_vim_double_enter_saves ... ok
[INFO] [stdout] test app::tests::target_selector_tests::default_comment_type_is_none_without_config ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_apply_initial_load_event_to_pr_tab ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_pass_stored_commit_order_through_unchanged_when_resuming ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_be_a_noop_when_pressing_enter_during_an_in_flight_open ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_resume_working_tree_session_through_the_working_tree_loader ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_block_q_when_unsaved_comments_exist ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_cancel_in_flight_open_when_pressing_esc_in_selector ... ok
[INFO] [stdout] test app::tests::sessions_resume_tests::should_resolve_commits_outside_the_recent_history_page ... ok
[INFO] [stdout] test app::tests::submit_flow_tests::should_yank_top_level_pr_comment ... ok
[INFO] [stdout] test app::tests::target_selector_tests::configured_comments_visibility_seeds_a_fresh_pr_session ... ok
[INFO] [stdout] test app::tests::target_selector_tests::configured_comments_visibility_seeds_the_async_pr_open_path ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_clear_command_completion_state_after_manual_edit ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_clear_pr_open_state_on_cancel ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_apply_remote_threads_event_when_relevant ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_complete_command_when_only_one_candidate_matches ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_complete_summary_command ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_cycle_backward_through_command_matches ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_cycle_between_local_and_pull_requests_on_tab_keypress ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_cycle_comment_type_on_tab_action ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_cycle_forward_through_command_matches ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_default_to_local_tab_after_build ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_discard_filter_draft_on_cancel ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_carry_draft_comments_for_unchanged_files_when_pr_head_advances ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_build_new_head_session_by_carrying_only_unchanged_reviewed_state ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_carry_reviewed_marks_for_unchanged_files_when_pr_head_advances ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_extend_to_common_command_prefix_before_cycling ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_clear_remote_threads_without_refetch_when_setting_visibility_hide ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_enter_pr_mode_when_opening_pr_via_fake_backend ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_carry_unchanged_hunk_marks_inside_changed_file_when_pr_head_advances ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_ignore_stale_done_event_after_cancel ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_carry_reviewed_state_through_finish_pr_reload_when_head_advances ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_discard_stale_remote_threads_event_after_switching_pr ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_pr_tab_disabled_when_no_forge_remote ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_hide_inline_selector_for_single_commit_pr ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_reviewed_state_through_finish_pr_reload_when_head_unchanged ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_old_head_session_when_new_head_session_file_is_corrupt ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_old_head_session_when_saving_before_head_switch_fails ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_leave_unknown_command_completion_unchanged ... ok
[INFO] [stdout] test app::tests::target_selector_tests::configured_comments_default_does_not_override_a_persisted_visibility ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_mark_pr_commits_covered_by_viewers_last_review ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_error_on_corrupt_exact_session_file_when_reopening_pr ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_open_pending_comment_summary_from_command_mode ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_ignore_exact_session_file_when_pr_session_key_does_not_match ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_session_when_pr_head_unchanged_on_reload ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_populate_inline_selector_when_pr_has_multiple_commits ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_leave_next_session_unchanged_when_carry_forward_has_no_matching_file ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_preserve_persisted_commit_range_over_since_last_review_default ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_promote_app_forge_repository_to_canonical_on_initial_load ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_ignore_manifest_session_when_pr_session_key_does_not_match ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_quit_on_q_when_only_reviewed_files_dirty ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_report_no_new_commits_when_viewers_last_review_is_at_head ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_open_pr_selector_on_prs_command ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_open_local_selector_on_targets_command ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_return_false_when_cancelling_with_no_in_flight_open ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_keep_saved_pr_session_through_quit_reopen_and_same_head_reload ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_resolve_pr_range_to_parent_sha_and_head_sha ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_populate_remote_threads_when_opening_pr_through_test_seam ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_select_commits_since_viewers_last_review ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_preserve_hunk_marks_hidden_by_pr_range_diff ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_set_filter_after_typing_and_committing ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_set_pr_open_state_and_spawn_when_pressing_enter_on_a_pr_row ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_skip_since_last_review_selection_when_commit_is_missing ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_show_quit_hint_message_without_quitting_in_commit_select_mode ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_resolve_pr_range_to_pr_base_when_oldest_commit_selected ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_surface_initial_pr_list_error_to_message_bar ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_surface_pr_open_error_to_message_bar_when_done_event_carries_error ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_load_persisted_pr_session_when_reopening_same_head ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_transition_pr_tab_to_loading_on_first_visit ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_reindex_recovered_pr_session ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_warn_when_comments_command_used_outside_pr_mode ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_route_comments_unresolved_command_through_command_handler ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_route_context_expansion_to_forge_provider_in_pr_mode ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_surface_pr_open_error_into_selector_state ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_still_resolve_local_checkout_for_a_second_pr_open ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::committing_filter_narrows_candidates_and_previews_first_match ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_treat_commits_as_alias_for_local_target_selector ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::entering_picker_populates_all_built_in_candidates_and_snapshots_original ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::confirm_rehighlights_every_loaded_file_not_just_the_visible_one ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_switch_session_when_pr_head_advances_on_reload ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_route_pr_inline_selection_reload_through_forge_not_vcs ... ok
[INFO] [stdout] test app::tests::target_selector_tests::should_warn_when_opening_closed_pr ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::cursor_up_at_top_clamps_instead_of_wrapping ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::slash_opens_filter_draft_and_typing_does_not_move_selection_until_committed ... ok
[INFO] [stdout] test app::tests::tree_tests::compact_folders_are_disabled_by_default ... ok
[INFO] [stdout] test app::tests::tree_tests::compact_folders_join_deep_chains_and_toggle_as_one_row ... ok
[INFO] [stdout] test app::tests::tree_tests::compact_folders_recompute_after_filter_and_search_reveals_full_path ... ok
[INFO] [stdout] test app::tests::tree_tests::compact_folders_startup_keeps_selection_on_current_file ... ok
[INFO] [stdout] test app::tests::tree_tests::compact_folders_stop_at_files_and_branches ... ok
[INFO] [stdout] test app::tests::tree_tests::test_collapse_all_hides_all_files ... ok
[INFO] [stdout] test app::tests::tree_tests::test_collapse_parent_hides_nested_dirs ... ok
[INFO] [stdout] test app::tests::tree_tests::test_expand_all_shows_all_files ... ok
[INFO] [stdout] test app::tests::tree_tests::test_interleaved_paths_stay_under_own_directory ... ok
[INFO] [stdout] test app::tests::tree_tests::test_root_files_always_visible ... ok
[INFO] [stdout] test app::tests::tree_tests::test_sibling_dirs_independent ... ok
[INFO] [stdout] test app::tests::tree_tests::test_toggle_expands_collapsed_dir ... ok
[INFO] [stdout] test app::tests::tree_tests::test_tree_depth_correct ... ok
[INFO] [stdout] test app::tests::visual_selection_tests::collapsed_starts_at_point ... ok
[INFO] [stdout] test app::tests::visual_selection_tests::ordered_breaks_ties_on_idx_by_char_offset ... ok
[INFO] [stdout] test app::tests::visual_selection_tests::ordered_returns_anchor_head_when_already_in_order ... ok
[INFO] [stdout] test app::tests::visual_selection_tests::ordered_swaps_when_head_before_anchor_by_idx ... ok
[INFO] [stdout] test cli::tests::should_accept_repo_url_for_every_supported_forge ... ok
[INFO] [stdout] test cli::tests::should_allow_custom_theme_name_in_equals_arg ... ok
[INFO] [stdout] test cli::tests::should_allow_custom_theme_name_in_separate_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_default_path_filter_to_none ... 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 cli::tests::should_error_when_repo_url_equals_empty ... ok
[INFO] [stdout] test cli::tests::should_error_when_repo_url_unparseable ... ok
[INFO] [stdout] test cli::tests::should_error_when_repo_url_value_missing ... 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 cli::tests::should_leave_theme_none_when_not_provided ... ok
[INFO] [stdout] test cli::tests::should_parse_all_files_long_flag ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::esc_while_filtering_discards_draft_without_changing_applied_filter ... ok
[INFO] [stdout] test cli::tests::should_parse_appearance_when_provided ... ok
[INFO] [stdout] test cli::tests::should_parse_all_files_short_flag ... 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_command ... ok
[INFO] [stdout] test cli::tests::should_parse_explicit_tui_pr_command ... ok
[INFO] [stdout] test cli::tests::should_parse_mr_alias_like_pr ... ok
[INFO] [stdout] test cli::tests::should_parse_gruvbox_themes ... 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_with_revisions ... ok
[INFO] [stdout] test cli::tests::should_parse_path_with_working_tree ... ok
[INFO] [stdout] test cli::tests::should_parse_path_short_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_bare_number ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_full_url ... ok
[INFO] [stdout] test cli::tests::should_parse_pr_target_as_owner_repo_hash ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::empty_filter_commit_clears_the_filter ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_equals_form ... ok
[INFO] [stdout] test cli::tests::should_parse_review_add_json_input ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_ssh_scheme ... ok
[INFO] [stdout] test cli::tests::should_parse_repo_url_https ... 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 app::tests::theme_picker_tests::esc_on_picker_reverts_preview_and_closes ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_by_coordinate ... ok
[INFO] [stdout] test cli::tests::should_parse_review_add_line_comment ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_all_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_review_list_command ... ok
[INFO] [stdout] test cli::tests::should_parse_specific_update_version ... ok
[INFO] [stdout] test cli::tests::should_parse_update_command_without_tui_options ... 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 cli::tests::should_parse_working_tree_short_flag ... ok
[INFO] [stdout] test cli::tests::should_parse_working_tree_with_revisions ... ok
[INFO] [stdout] test cli::tests::should_reject_all_files_combined_with_file ... ok
[INFO] [stdout] test cli::tests::should_parse_working_tree_long_flag ... ok
[INFO] [stdout] test cli::tests::should_reject_all_files_combined_with_path ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_path ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_revisions ... ok
[INFO] [stdout] test cli::tests::should_reject_file_combined_with_working_tree ... ok
[INFO] [stdout] test cli::tests::should_reject_invalid_update_version ... 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_reject_remote_for_non_tui_commands ... ok
[INFO] [stdout] test cli::tests::should_reject_tui_options_with_update_command ... ok
[INFO] [stdout] test comment_vim::tests::byte_to_index2_on_second_line ... ok
[INFO] [stdout] test cli::tests::should_use_innermost_remote_option ... ok
[INFO] [stdout] test comment_vim::tests::index2_clamps_past_line_and_buffer ... ok
[INFO] [stdout] test comment_vim::tests::normal_mode_dd_deletes_line ... ok
[INFO] [stdout] test comment_vim::tests::insert_mode_typing_syncs_buffer ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::preview_rehighlights_only_the_currently_visible_file ... ok
[INFO] [stdout] test comment_vim::tests::esc_switches_to_normal_mode ... ok
[INFO] [stdout] test cli::tests::should_reject_conflicting_remote_and_repo_url_across_command_levels ... ok
[INFO] [stdout] test config::tests::export_accessors_fall_back_to_shipped_defaults ... ok
[INFO] [stdout] test comment_vim::tests::normal_mode_x_deletes_char_under_cursor ... ok
[INFO] [stdout] test config::tests::should_append_tuicr_config_toml_suffix ... ok
[INFO] [stdout] test comment_vim::tests::roundtrip_ascii_multiline ... ok
[INFO] [stdout] test comment_vim::tests::roundtrip_multibyte ... ok
[INFO] [stdout] test config::tests::should_default_diff_watch_interval_ms_to_none_when_absent ... ok
[INFO] [stdout] test config::tests::should_default_export_legend_to_none ... ok
[INFO] [stdout] test config::tests::forge_defaults_enable_comment_type_prefix ... ok
[INFO] [stdout] test config::tests::should_default_export_to_none_when_section_is_empty_table ... ok
[INFO] [stdout] test config::tests::should_default_export_to_none_when_section_missing ... ok
[INFO] [stdout] test config::tests::should_default_forge_to_none_when_section_is_empty_table ... ok
[INFO] [stdout] test config::tests::should_default_forge_to_none_when_section_missing ... ok
[INFO] [stdout] test config::tests::should_default_no_update_check_to_none ... ok
[INFO] [stdout] test config::tests::should_default_mouse_to_none ... ok
[INFO] [stdout] test config::tests::should_default_q_quits_to_none ... ok
[INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_themes_dir_when_xdg_unset ... ok
[INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_when_xdg_unset ... ok
[INFO] [stdout] test config::tests::should_default_resolved_export_to_shipped_behavior ... ok
[INFO] [stdout] test config::tests::should_leave_unset_export_keys_as_none_for_legacy_precedence ... ok
[INFO] [stdout] test config::tests::should_let_export_section_override_the_legacy_legend_key ... ok
[INFO] [stdout] test config::tests::should_load_theme_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_ignore_empty_xdg_config_home ... ok
[INFO] [stdout] test config::tests::should_error_on_invalid_toml ... ok
[INFO] [stdout] test config::tests::should_keep_legacy_legend_when_export_section_omits_it ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::navigation_previews_theme_live ... ok
[INFO] [stdout] test config::tests::should_load_theme_variants_and_appearance_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_normalize_override_extension_case ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_unified ... ok
[INFO] [stdout] test config::tests::should_parse_commit_order_ascending ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_side_by_side ... ok
[INFO] [stdout] test config::tests::should_parse_compact_folders_and_reject_invalid_types ... ok
[INFO] [stdout] test config::tests::should_parse_comment_types_from_array_of_objects ... ok
[INFO] [stdout] test config::tests::should_parse_editor_command_with_args ... ok
[INFO] [stdout] test config::tests::should_parse_backend_option ... ok
[INFO] [stdout] test config::tests::should_parse_empty_ignore_whitespace_overrides_table ... ok
[INFO] [stdout] test config::tests::should_parse_diff_watch_interval_ms ... ok
[INFO] [stdout] test config::tests::should_parse_forge_section_overriding_defaults ... ok
[INFO] [stdout] test config::tests::should_parse_empty_config_as_defaults ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_auto ... ok
[INFO] [stdout] test config::tests::should_parse_export_legend_false ... ok
[INFO] [stdout] test config::tests::should_parse_export_section_overriding_defaults ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_false ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_auto_with_explicit_overrides ... ok
[INFO] [stdout] test config::tests::should_parse_ignore_whitespace_true ... ok
[INFO] [stdout] test config::tests::should_parse_initial_commit_selection_oldest ... ok
[INFO] [stdout] test config::tests::should_parse_mouse_true ... ok
[INFO] [stdout] test config::tests::should_parse_no_update_check_true ... ok
[INFO] [stdout] test config::tests::should_parse_q_quits_true ... ok
[INFO] [stdout] test config::tests::should_parse_relative_line_numbers ... ok
[INFO] [stdout] test config::tests::should_parse_no_update_check_false ... ok
[INFO] [stdout] test config::tests::should_parse_pr_comments_visibility_values ... ok
[INFO] [stdout] test config::tests::should_parse_review_watch_interval_ms ... ok
[INFO] [stdout] test config::tests::should_parse_scroll_offset ... ok
[INFO] [stdout] test config::tests::should_parse_show_commits_false ... ok
[INFO] [stdout] test config::tests::should_parse_show_pr_comments_false ... 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_parse_zero_diff_watch_interval_ms_to_allow_disable ... ok
[INFO] [stdout] test config::tests::should_parse_zero_review_watch_interval_ms_to_allow_disable ... ok
[INFO] [stdout] test config::tests::should_parse_show_file_list_false ... ok
[INFO] [stdout] test config::tests::should_return_none_when_config_file_missing ... ok
[INFO] [stdout] test config::tests::should_treat_empty_export_strings_as_explicit_overrides ... ok
[INFO] [stdout] test config::tests::should_use_xdg_config_home_when_set ... ok
[INFO] [stdout] test config::tests::should_parse_show_pr_checks_false ... ok
[INFO] [stdout] test config::tests::should_parse_single_character_leader ... ok
[INFO] [stdout] test config::tests::should_parse_show_reviewed_false ... ok
[INFO] [stdout] test config::tests::should_use_xdg_themes_dir_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_commit_order_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_resolve_export_legend_from_the_legacy_flat_key ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_export_bool_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_forge_value_with_wrong_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_export_string_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_editor_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_ignore_whitespace_with_invalid_string ... 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_initial_commit_selection_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_color ... 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_warn_and_ignore_malformed_override_keys ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_leader_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_mouse_with_invalid_type ... 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_negative_diff_watch_interval_ms ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_multi_character_leader ... 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_normalized_override_collisions ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_override_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_pr_comments_visibility_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_pr_comments_visibility_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_q_quits_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_commits_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_pr_comments_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_file_list_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_reviewed_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_show_pr_checks_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_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_export_keys ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_and_keep_known_values ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_only_and_use_defaults ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_dark_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_when_forge_is_not_a_table ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_forge_keys ... ok
[INFO] [stdout] test config::tests::should_warn_when_export_is_not_a_table ... ok
[INFO] [stdout] test config::tests::should_warn_when_ignore_whitespace_overrides_are_inactive ... ok
[INFO] [stdout] test editor::tests::blank_config_override_falls_back_to_env ... ok
[INFO] [stdout] test editor::tests::config_override_wins_over_env ... ok
[INFO] [stdout] test editor::tests::editor_args_are_preserved ... ok
[INFO] [stdout] test editor::tests::emacs_args_are_preserved ... ok
[INFO] [stdout] test editor::tests::emacs_receives_plus_line_before_path ... ok
[INFO] [stdout] test editor::tests::empty_editor_falls_back_to_vi ... ok
[INFO] [stdout] test editor::tests::env_is_used_without_config_override ... ok
[INFO] [stdout] test editor::tests::plus_line_editors_receive_line_before_path ... ok
[INFO] [stdout] test editor::tests::run_on_tty_runs_true_and_reports_success ... ok
[INFO] [stdout] test editor::tests::terminal_and_unknown_editors_claim_the_terminal ... 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 editor::tests::wait_flag_keeps_windowed_editors_blocking ... ok
[INFO] [stdout] test editor::tests::windowed_editors_do_not_claim_the_terminal ... ok
[INFO] [stdout] test forge::azure::az::tests::azure_coords_errors_without_project ... ok
[INFO] [stdout] test forge::azure::az::tests::backend_is_send_and_sync ... ok
[INFO] [stdout] test forge::azure::az::tests::create_review_approve_casts_positive_vote ... ok
[INFO] [stdout] test forge::azure::az::tests::create_review_left_side_uses_left_context ... ok
[INFO] [stdout] test forge::azure::az::tests::create_review_posts_inline_thread_with_right_context ... ok
[INFO] [stdout] test forge::azure::az::tests::get_pull_request_maps_active_pr ... ok
[INFO] [stdout] test forge::azure::az::tests::list_open_scope_has_no_reviewer_filter ... ok
[INFO] [stdout] test forge::azure::az::tests::list_requested_scope_filters_by_reviewer_and_calls_connectiondata_unversioned ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_https_dev_azure_remote ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_https_remote_with_org_userinfo_and_git_suffix ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_numeric_target ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_pr_web_url_target ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_ssh_remote ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_visualstudio_remote ... ok
[INFO] [stdout] test forge::azure::az::tests::parses_visualstudio_remote_with_default_collection ... ok
[INFO] [stdout] test forge::azure::az::tests::rejects_malformed_target ... ok
[INFO] [stdout] test editor::tests::missing_env_and_config_fall_back_to_vi ... ok
[INFO] [stdout] test forge::azure::az::tests::rejects_non_azure_host ... ok
[INFO] [stdout] test forge::azure::models::tests::should_map_active_pr_into_open_details ... ok
[INFO] [stdout] test forge::azure::models::tests::should_map_commit_into_pull_request_commit ... ok
[INFO] [stdout] test forge::azure::az::tests::azure_coords_splits_owner ... ok
[INFO] [stdout] test forge::azure::models::tests::should_map_pr_level_thread_without_file_context ... ok
[INFO] [stdout] test forge::azure::models::tests::should_mark_abandoned_pr_closed_and_read_only ... ok
[INFO] [stdout] test forge::azure::models::tests::should_mark_completed_pr_merged_and_read_only ... ok
[INFO] [stdout] test forge::azure::models::tests::should_parse_pr_list_envelope ... ok
[INFO] [stdout] test forge::azure::models::tests::should_prefer_web_link_when_present ... ok
[INFO] [stdout] test editor::tests::launching_a_missing_program_fails_immediately ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::bitbucket_live_read_path ... ignored, hits the live Bitbucket API; needs TUICR_BB_* env vars
[INFO] [stdout] test forge::azure::models::tests::should_map_file_anchored_thread_with_reply ... ok
[INFO] [stdout] test editor::tests::an_editor_that_dies_on_launch_reports_its_status ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_approve_after_posting_comments ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_anchor_left_side_comments_with_from ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_cap_the_pull_request_list_page_size ... ok
[INFO] [stdout] test forge::azure::models::tests::should_skip_deleted_thread ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_explain_how_to_authenticate_on_auth_failure ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_explain_missing_scope_when_a_comment_is_forbidden ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_fail_clearly_when_viewer_identity_is_unavailable ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_fetch_file_lines_from_the_src_endpoint ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_filter_by_reviewer_uuid_for_review_requested_scope ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_keep_short_sha_when_promotion_returns_a_different_commit ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_never_send_an_explicit_page_param_when_paginating ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_not_claim_ambiguous_or_foreign_targets ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_not_claim_bitbucket_data_center_remotes ... ok
[INFO] [stdout] test forge::azure::models::tests::should_skip_system_threads ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_not_claim_non_bitbucket_remotes ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_always_pass_workspace_and_repo_to_first_class_commands ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_not_promote_a_sha_that_is_already_full_length ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_omit_range_anchor_when_start_equals_end ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_parse_a_bare_number ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_parse_a_bitbucket_pull_request_url ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_parse_a_pull_request_url_with_trailing_segments ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_parse_a_host_qualified_repo_hash_target ... ok
[INFO] [stdout] test editor::tests::a_successful_editor_is_cleaned_up_without_a_message ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_parse_bitbucket_cloud_remote_urls ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_post_body_then_inline_comments_on_submit ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_promote_abbreviated_shas_to_full_length ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_reject_request_changes_and_draft_before_posting_anything ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_report_more_pages_when_next_link_present ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_request_the_page_containing_the_next_unseen_row ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_require_a_repository_for_a_bare_numeric_target ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_say_comments_survived_when_only_the_approval_fails ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_return_commits_oldest_first ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_reverse_the_diff_spec_for_a_commit_range ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_skip_the_general_comment_when_body_is_empty ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_split_comments_into_threads_and_summaries ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_stop_after_the_page_ceiling_even_if_next_keeps_coming ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_stop_paginating_when_no_next_link ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_use_the_standalone_state_param_for_the_open_scope ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_synthesize_a_response_when_the_comment_id_is_unparseable ... ok
[INFO] [stdout] test forge::bitbucket::bkt::tests::should_send_a_range_anchor_for_multi_line_comments ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_anchor_context_line_comment_to_head_side ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::diffstat_metadata_preserves_renamed_unicode_paths ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_anchor_to_left_side_when_only_from_is_set ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_build_details_from_pull_request_payload ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_deserialize_paged_pull_request_list ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_exclude_general_comments_from_threads ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_extract_review_records_from_participants ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_convert_commit_and_strip_email_from_author ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_attach_nested_replies_to_the_top_level_thread ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_fall_back_to_display_name_when_username_is_blank ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_group_root_and_reply_into_one_thread ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_mark_thread_resolved_when_a_reply_carries_the_resolution ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_preserve_api_order_across_threads ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_reject_pull_request_without_source_commit ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_report_no_more_pages_when_next_absent ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_normalize_declined_state_to_closed ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_prefer_linked_user_over_raw_commit_author ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_skip_deleted_comments_and_their_replies ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_skip_inline_comment_without_a_resolvable_anchor ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_surface_general_comments_as_review_summaries ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_treat_merged_pull_request_as_read_only ... ok
[INFO] [stdout] test forge::canonical::tests::should_fall_back_to_origin_when_gh_fails ... 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 forge::canonical::tests::should_fall_back_to_origin_when_response_is_malformed ... ok
[INFO] [stdout] test forge::canonical::tests::should_preserve_origin_host_on_enterprise ... ok
[INFO] [stdout] test forge::canonical::tests::should_return_override_without_calling_gh ... ok
[INFO] [stdout] test forge::canonical::tests::should_return_parent_when_gh_reports_fork ... 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::gerrit::api::tests::backend_is_send_and_sync ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_allow_credentials_over_https ... ok
[INFO] [stdout] test forge::bitbucket::models::tests::should_mark_thread_outdated_when_inline_says_so ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_allow_plaintext_when_there_are_no_credentials_to_leak ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_cap_error_detail_without_splitting_a_multi_byte_character ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_default_a_schemeless_gerrit_url_to_https ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_fall_back_to_the_host_as_owner_for_single_segment_projects ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_fetch_file_content_by_project_and_commit ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_keep_a_deliberate_port_on_a_schemeless_gerrit_url ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_keep_an_explicit_http_url_with_its_port_and_prefix ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_leave_short_detail_untrimmed_and_collapse_its_whitespace ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_name_how_many_drafts_landed_when_the_sequence_fails_part_way ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_normalize_an_ssh_gerrit_url_onto_https_without_its_port ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_omit_the_attention_filter_when_anonymous ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_parse_a_bare_change_number ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_parse_a_legacy_change_url_without_a_project ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_parse_a_modern_change_url_with_its_project ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_parse_https_remotes_on_a_gerrit_hostname ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_parse_ssh_remotes_on_the_canonical_gerrit_port ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_pass_through_a_failure_on_the_very_first_draft_untouched ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_post_one_review_carrying_the_message_vote_and_comments ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_prefix_authenticated_requests_with_the_gerrit_a_path ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_read_patch_set_numbers_off_the_change_ref ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_read_review_threads_from_the_change_level_comments_endpoint ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_rebuild_the_patch_set_ref_from_its_own_digits ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_recognize_a_configured_host_and_strip_its_path_prefix ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_refuse_to_send_credentials_over_plaintext_http ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_refuse_to_submit_without_credentials ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_reject_patch_set_refs_that_could_reach_git_as_options_or_refspecs ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_reject_remotes_that_do_not_look_like_gerrit ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_reject_targets_that_are_not_gerrit_changes ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_round_trip_multi_segment_projects_through_owner_packing ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_scope_the_requested_list_to_the_signed_in_users_attention_set ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_send_draft_reviews_to_the_gerrit_drafts_endpoint ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_strip_the_xssi_prefix_before_parsing_json ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_use_gerrit_url_when_the_web_host_differs_from_the_git_remote_host ... ok
[INFO] [stdout] test forge::gerrit::api::tests::should_vote_minus_one_rather_than_veto_when_requesting_changes ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_chain_replies_into_one_thread_per_root_comment ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_open_a_thread_for_a_reply_whose_parent_is_missing ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_expose_the_current_revision_as_the_only_commit ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_map_change_details_from_the_current_revision ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_mark_merged_and_abandoned_changes_read_only ... ok
[INFO] [stdout] test forge::gerrit::models::tests::should_parse_gerrit_timestamps_without_a_zone_suffix ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_convert_commits_using_the_first_message_line_as_the_summary ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_fall_back_to_the_first_login_when_none_is_default ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_fall_back_to_base_sha_when_merge_base_is_absent ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_error_when_the_pull_request_reports_no_shas ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_blank_a_deleted_head_branch_ref ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_fall_back_to_the_commit_author_name_when_no_account_matches ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_extract_gitea_error_message_from_the_body ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_fetch_a_commit_range_diff_from_the_compare_endpoint ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_group_comments_on_the_same_line_into_one_thread ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_ignore_remotes_belonging_to_other_forges ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_keep_paging_when_the_server_caps_the_page_below_the_requested_limit ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_map_unauthorized_to_an_actionable_message ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_mark_a_thread_resolved_when_any_comment_carries_a_resolver ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_mirror_giteas_body_requirement_for_every_event ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_not_claim_a_fork_host_by_name ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_not_claim_a_github_style_singular_pull_url ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_map_a_missing_tea_binary_to_install_guidance ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_list_open_pull_requests_with_paging_from_total_count ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_omit_the_event_field_for_a_draft_so_gitea_files_it_as_pending ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_keep_review_summaries_with_prose_and_drop_bare_approvals ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_leave_bare_owner_repo_hash_targets_to_github ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_pair_file_metadata_with_the_cumulative_diff ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_parse_gitea_request_changes_state_which_github_spells_differently ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_map_every_gitea_file_status ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_parse_a_gitea_pull_request_url ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_parse_a_host_qualified_repo_hash_target ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_parse_https_gitea_remote ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_parse_scp_style_gitea_remote ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_percent_encode_path_segments_but_keep_separators ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_prefer_merge_base_over_base_branch_tip_for_base_sha ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_read_status_from_the_last_http_status_line ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_read_total_count_header_case_insensitively ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_recover_metadata_for_a_mode_only_change ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_point_at_the_review_comment_key_when_a_summary_is_missing ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_prefer_the_default_login_when_a_host_has_several ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_refuse_to_request_changes_without_a_summary ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_reject_an_unknown_file_status_rather_than_guess ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_resolve_an_ssh_alias_to_its_real_hostname ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_return_no_status_when_tea_never_issued_a_request ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_return_pull_request_commits_oldest_first ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_refuse_an_empty_comment_review ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_send_a_left_side_comment_as_old_position_on_the_pre_rename_path ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_read_host_out_of_a_tea_login_url ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_reject_zero_and_empty_targets ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_report_an_actionable_error_for_an_unreadable_diff_header ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_recover_metadata_from_raw_diff_headers ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_send_a_right_side_comment_as_new_position ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_use_gitea_event_names_rather_than_githubs ... ok
[INFO] [stdout] test forge::github::gh::tests::can_skip_pull_request_check_rollup ... ok
[INFO] [stdout] test forge::github::gh::tests::can_skip_pull_request_conversation_comments ... ok
[INFO] [stdout] test forge::github::gh::tests::constructs_system_runner_backend ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_diff_pairs_metadata_with_patch_text ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_requires_repository ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_separate_threads_by_side_even_on_the_same_line_number ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_split_a_diff_git_line_whose_paths_contain_spaces ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_stop_paging_when_total_count_is_reached ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_can_filter_to_review_requested ... ok
[INFO] [stdout] test forge::github::gh::tests::get_pull_request_uses_default_repository_for_numeric_target ... ok
[INFO] [stdout] test forge::gitea::tea::tests::should_strip_ssh_port_from_self_hosted_remote ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_can_load_next_slice ... ok
[INFO] [stdout] test forge::github::gh::tests::parse_scp_url_with_ssh_alias_resolves_via_config ... ok
[INFO] [stdout] test forge::github::gh::tests::normalizes_github_ssh_over_443_transport_host ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_enterprise_owner_repo_pull_request_target ... 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_full_pull_request_url ... 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::maps_auth_failure_to_login_message ... ok
[INFO] [stdout] test forge::github::gh::tests::list_pull_requests_uses_gh_json_output ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_owner_repo_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::list_pull_requests_uses_host_qualified_repo_for_enterprise ... ok
[INFO] [stdout] test forge::github::gh::tests::parses_ssh_remote_url_with_custom_port ... ok
[INFO] [stdout] test forge::github::gh::tests::maps_missing_gh_to_install_message ... 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::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::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::should_list_pull_request_commits_via_api_pagination_endpoint ... 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_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_permission_failure_to_pull_request_write_message ... 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_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_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::models::tests::file_metadata_uses_json_paths_verbatim ... ok
[INFO] [stdout] test forge::github::models::tests::renamed_file_requires_previous_filename ... ok
[INFO] [stdout] test forge::github::pr_info::tests::should_parse_gh_flat_export_shapes ... ok
[INFO] [stdout] test forge::github::pr_info::tests::should_parse_issue_comments_and_check_urls ... ok
[INFO] [stdout] test forge::github::pr_info::tests::should_parse_wrapped_graphql_shapes ... ok
[INFO] [stdout] test forge::github::gh::tests::should_recognize_must_have_pull_request_write_as_permission_failure ... ok
[INFO] [stdout] test forge::github::pr_info::tests::should_tolerate_empty_optional_sections ... 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::gh::tests::should_omit_event_field_for_draft_submission ... ok
[INFO] [stdout] test forge::github::gh::tests::should_post_create_review_to_reviews_endpoint_with_stdin_payload ... 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_build_query_with_cursor_for_subsequent_pages ... ok
[INFO] [stdout] test forge::github::review_summaries::tests::should_drop_reviews_with_empty_or_whitespace_body ... 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_parse_two_reviews_with_state_and_author ... 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_multi_comment_thread_with_replies ... 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_parse_outdated_thread_flag_and_fall_back_to_original_line ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_error_on_malformed_json ... 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::review_threads::tests::should_parse_cross_file_threads_preserving_paths ... 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::submit::tests::should_emit_event_approve_for_approve_submission ... ok
[INFO] [stdout] test forge::github::submit::tests::should_omit_event_for_draft_submission ... 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_include_start_line_and_start_side_for_multi_line_comment ... ok
[INFO] [stdout] test forge::github::submit::tests::should_use_left_side_when_inline_targets_old_side ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_parse_resolved_thread_flag ... 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::github::review_threads::tests::should_parse_single_thread_with_one_comment ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::get_pull_request_uses_version_compatible_api_endpoint ... 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::should_error_when_request_changes_mutation_returns_errors ... ok
[INFO] [stdout] test forge::github::review_threads::tests::should_tolerate_missing_repository_object ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_list_pull_request_review_metadata_for_gitlab ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::normalizes_gitlab_ssh_over_443_transport_host ... 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_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_mr_url_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_omit_endpoint_type_for_context_line_in_range ... 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_nested_group_url_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_ignore_github_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_call_approve_endpoint_for_approve ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_fetch_structured_merge_request_diffs_instead_of_injecting_headers ... 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_post_comments_then_request_changes_mutation ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_post_draft_notes_for_draft_submission ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_reject_empty_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_numeric_target ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_repo_hash_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_parse_gitlab_ssh_remote_url ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_return_commits_oldest_first ... 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_inline_comment_as_json_with_integer_line_number ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_strip_ssh_port_from_self_hosted_ssh_scheme_remote ... ok
[INFO] [stdout] test forge::gitlab::models::tests::collapsed_diff_is_marked_too_large ... 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_details_with_diff_refs ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_deserialize_glab_mr_summary ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_skip_individual_note_system_events ... ok
[INFO] [stdout] test forge::gitlab::glab::tests::should_parse_gitlab_self_hosted_https ... 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_line_range_for_multi_line_range_comment ... ok
[INFO] [stdout] test forge::gitlab::models::tests::should_skip_discussion_without_position ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::esc_reverts_the_rehighlighted_file_back_to_the_original_theme ... ok
[INFO] [stdout] test forge::local_git::tests::reads_a_blob_at_a_commit ... ok
[INFO] [stdout] test forge::remote_comments::tests::should_dedupe_threads_by_forge_id_preserving_order ... 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::build_inline_body_omits_tag_for_none_but_keeps_file_level_marker ... ok
[INFO] [stdout] test forge::submit::tests::should_anchor_file_level_to_first_valid_new_line ... ok
[INFO] [stdout] test forge::submit::tests::should_anchor_range_endpoints_in_both_line_counters ... ok
[INFO] [stdout] test forge::submit::tests::should_fall_back_to_uppercased_id_for_unconfigured_type ... 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_new_side_range_to_right_start_and_end ... 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_mark_binary_file_comment_as_unmappable ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_file_level_without_new_anchor_as_unmappable ... ok
[INFO] [stdout] test forge::submit::tests::should_mark_mixed_side_range_as_unmappable ... 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_for_none_typed_comments_even_when_enabled ... 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_populate_counterpart_line_for_range_ending_on_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::submit::tests::should_use_configured_label_for_type_prefix_on_submit ... ok
[INFO] [stdout] test forge::submit::tests::should_use_configured_label_in_review_body_and_unplaced_summary ... ok
[INFO] [stdout] test forge::tests::detects_gerrit_repository_from_a_canonical_ssh_port_remote ... ok
[INFO] [stdout] test forge::tests::detects_github_repository_from_origin ... ok
[INFO] [stdout] test forge::tests::hostname_only_parser_claims_azure_but_leaves_other_hosts_alone ... ok
[INFO] [stdout] test forge::pr_open::tests::should_surface_empty_pr_as_forge_error ... ok
[INFO] [stdout] test forge::tests::leaves_github_enterprise_remotes_to_the_github_catch_all ... ok
[INFO] [stdout] test forge::tests::local_checkout_matches_upstream_remote_in_fork_workflow ... ok
[INFO] [stdout] test forge::tests::local_checkout_matches_when_origin_equals_target ... ok
[INFO] [stdout] test forge::tests::local_checkout_rejects_mismatched_repo ... 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 handler::command_tests::parses_copy_url_command ... ok
[INFO] [stdout] test handler::command_tests::parses_every_reviewed_visibility_command_form ... ok
[INFO] [stdout] test handler::command_tests::parses_relative_line_number_commands ... 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_delegate_unclaimed_keys_to_normal_mode_in_file_tree_mode ... 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_ctrl_editing_chords_out_of_the_altgr_arm ... ok
[INFO] [stdout] test input::keybindings::tests::should_keep_lowercase_h_panning_when_the_file_tree_is_focused ... ok
[INFO] [stdout] test input::keybindings::tests::should_keep_semicolon_as_default_leader ... ok
[INFO] [stdout] test input::keybindings::tests::should_leave_diff_bindings_alone_when_the_tree_is_not_focused ... ok
[INFO] [stdout] test input::keybindings::tests::should_leave_semicolon_unbound_when_another_leader_is_configured ... ok
[INFO] [stdout] test input::keybindings::tests::should_leave_shift_h_unbound_for_vim_motions ... ok
[INFO] [stdout] test input::keybindings::tests::should_let_the_leader_key_win_over_a_filter_binding ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_alt_backspace_to_delete_word_in_text_input_modes ... 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 forge::pr_open::tests::should_parse_pr_diff_and_build_session_keyed_by_head_sha ... 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_backtab_to_reverse_focus_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_colon_to_command_mode_in_commit_select_mode ... 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_esc_to_exit_in_target_filter_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_escape_to_clear_search_highlight_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_filter_keys_when_the_file_tree_is_focused ... 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_lowercase_and_uppercase_y_to_separate_yank_actions ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_lowercase_e_to_edit_file_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 forge::gitlab::models::tests::diff_api_keeps_structured_paths_and_header_like_hunk_content ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_q_to_quit_hint_instead_of_quitting ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_q_to_quit_when_q_quits_is_enabled ... 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_and_match_navigation_in_help_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_summary_navigation_and_escape ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_m_to_comment_navigation_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_tab_to_cycle_comment_type_in_comment_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_uppercase_g_to_go_to_bottom_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_uppercase_r_to_toggle_hunk_reviewed_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_command_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_search_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_shifted_digits_to_digit_action ... 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_pan_the_help_popup_with_h_and_l ... ok
[INFO] [stdout] test input::keybindings::tests::should_preserve_modified_shortcuts_when_character_is_leader ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_enter_to_submit_in_target_filter_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_reuse_help_navigation_without_search_for_message_details ... ok
[INFO] [stdout] test input::keybindings::tests::should_route_typed_chars_to_insert_in_file_tree_prompt_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_route_typed_chars_to_insert_in_target_filter_mode ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_defaults_to_none ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_from_id_maps_none_and_empty_to_none ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_none_roundtrips_via_serde ... ok
[INFO] [stdout] test forge::tests::local_checkout_returns_none_outside_a_repo ... ok
[INFO] [stdout] test input::keybindings::tests::should_type_altgr_composed_characters_in_every_text_prompt ... 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_with_line_range_serializes_correctly ... 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_without_line_range_deserializes_with_none ... 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_report_pushed_and_submitted_comments_as_locked ... 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_default_lifecycle_state_to_local_draft_for_new_comment ... 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::new_creates_range_with_correct_bounds ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_deserializes_custom_type_from_string ... 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::line_range_tests::line_range_serializes_correctly ... 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::comment::tests::line_range_tests::new_normalizes_reversed_bounds ... ok
[INFO] [stdout] test model::review::tests::should_count_review_level_and_file_and_line_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_find_file_level_comment_by_id ... ok
[INFO] [stdout] test model::review::tests::should_find_line_level_comment_by_id_with_side ... ok
[INFO] [stdout] test model::review::tests::should_find_review_level_comment_by_id ... ok
[INFO] [stdout] test model::review::tests::should_keep_reviewed_when_hash_unchanged ... 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_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 model::review::tests::should_not_move_reviewed_status_between_identical_hunks ... ok
[INFO] [stdout] test model::review::tests::should_prune_reviewed_hunks_that_no_longer_exist ... 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_legacy_session_has_no_hash ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_when_hash_changes ... ok
[INFO] [stdout] test model::review::tests::should_return_none_for_unknown_comment_id ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_commit_selection_range_on_pr_session ... ok
[INFO] [stdout] test forge::pr_open::tests::should_open_an_empty_review_when_every_pr_patch_is_ignored ... 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_round_trip_pr_session_via_serde ... ok
[INFO] [stdout] test model::review::tests::should_use_line_aware_keys_for_repeated_identical_hunks ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_remote_comments_visibility_on_session ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_empty_string_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_markdown_content_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_unicode_in_osc52 ... ok
[INFO] [stdout] test model::review::tests::should_return_zero_when_clearing_empty_session ... ok
[INFO] [stdout] test output::markdown::tests::should_export_old_side_line_range_with_tilde ... ok
[INFO] [stdout] test model::review::tests::should_round_trip_comment_commit_id_on_session ... ok
[INFO] [stdout] test model::review::tests::should_update_hash_even_when_not_reviewed ... 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_export_single_old_side_line_with_tilde ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_export_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_in_markdown ... 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_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_export_line_range_with_start_and_end ... ok
[INFO] [stdout] test output::markdown::tests::should_export_none_typed_comments_without_marker_or_legend ... ok
[INFO] [stdout] test output::markdown::tests::should_include_session_slug_header_when_provided ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_generate_export_content_when_no_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_include_single_commit_in_markdown ... ok
[INFO] [stdout] test output::markdown::tests::should_indent_multiline_comments_under_single_digit_list_marker ... ok
[INFO] [stdout] test output::markdown::tests::should_keep_remote_separator_when_comments_header_is_empty ... 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_indent_multiline_comments_under_double_digit_list_marker ... ok
[INFO] [stdout] test output::markdown::tests::should_number_comments_sequentially ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_commit_suffix_for_unscoped_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_keep_commit_identity_for_commit_message_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_export_intro_and_its_spacer_when_empty ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_legend_when_legend_is_disabled ... ok
[INFO] [stdout] test output::markdown::tests::should_keep_pr_metadata_when_scope_line_disabled ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_pr_banner_and_spacer_when_scope_and_metadata_disabled ... 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_omit_pr_metadata_when_disabled_but_keep_scope_line ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_session_slug_header_when_disabled_by_config ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_comment_types_in_legend ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_scope_line_when_disabled ... ok
[INFO] [stdout] test output::markdown::tests::should_use_configured_label_and_definition_in_export ... ok
[INFO] [stdout] test output::markdown::tests::should_omit_session_slug_header_when_absent ... ok
[INFO] [stdout] test output::markdown::tests::should_use_custom_comment_headers ... ok
[INFO] [stdout] test persistence::manifest::tests::should_extract_metadata_from_local_session ... ok
[INFO] [stdout] test persistence::manifest::tests::should_insert_and_retrieve_local_entry ... ok
[INFO] [stdout] test persistence::manifest::tests::should_extract_metadata_from_pr_session ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_custom_types_in_legend ... ok
[INFO] [stdout] test forge::pr_open::tests::should_parse_multi_status_pr_patch_into_correct_diff_files ... ok
[INFO] [stdout] test persistence::manifest::tests::should_remove_all_entries_for_slug ... ok
[INFO] [stdout] test output::markdown::tests::should_use_custom_export_intro ... ok
[INFO] [stdout] test output::markdown::tests::should_write_osc52_escape_sequence ... ok
[INFO] [stdout] test persistence::manifest::tests::should_replace_local_entry_with_same_canonical_path ... ok
[INFO] [stdout] test persistence::manifest::tests::should_rebuild_empty_manifest_when_dir_missing ... ok
[INFO] [stdout] test persistence::manifest::tests::should_replace_pr_entry_when_head_advances ... ok
[INFO] [stdout] test persistence::manifest::tests::should_return_empty_manifest_when_file_missing ... ok
[INFO] [stdout] test persistence::manifest::tests::should_start_empty ... ok
[INFO] [stdout] test persistence::manifest::tests::should_rebuild_manifest_via_extractor ... ok
[INFO] [stdout] test persistence::manifest::tests::should_overwrite_manifest_atomically ... 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_walk_only_json_files_excluding_manifest ... ok
[INFO] [stdout] test persistence::manifest::tests::should_roundtrip_manifest_through_disk ... ok
[INFO] [stdout] test persistence::storage::tests::should_find_azure_pr_session_by_repo_url_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_delete_empty_session_and_manifest_entry ... ok
[INFO] [stdout] test persistence::storage::tests::should_find_pr_session_by_repo_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_ignore_sessions_with_different_diff_source ... ok
[INFO] [stdout] test persistence::storage::tests::should_delete_reviewed_only_session_unconditionally ... 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_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_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_not_migrate_when_reviews_dir_is_empty ... ok
[INFO] [stdout] test persistence::storage::tests::should_migrate_pre_flat_layout_on_first_run ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_load_worktree_session_after_head_advances ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_match_pr_session_for_unrelated_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_report_false_when_deleting_missing_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_mark_and_clear_active_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_return_none_for_unknown_context ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_migrate_when_sessions_dir_already_present ... 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_recover_stale_reviews_dir_lock ... ok
[INFO] [stdout] test forge::pr_open::tests::should_drop_ignored_patches_before_parsing_them ... 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_when_head_changes_for_pr ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_local_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_pr_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_save_under_flat_sessions_dir_for_local ... ok
[INFO] [stdout] test persistence::storage::tests::should_sanitize_branch_slashes_in_slug ... 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 review_cli::tests::should_error_for_unknown_pr_slug ... ok
[INFO] [stdout] test persistence::storage::tests::should_require_commit_range_match ... ok
[INFO] [stdout] test review_cli::tests::should_include_author_in_add_comment_output ... ok
[INFO] [stdout] test persistence::storage::tests::should_save_under_flat_sessions_dir_for_pr ... ok
[INFO] [stdout] test persistence::storage::tests::should_skip_pr_files_in_local_context_lookup ... ok
[INFO] [stdout] test persistence::storage::tests::should_update_manifest_on_save ... ok
[INFO] [stdout] test review_cli::tests::should_find_pr_session_by_repo_coordinate ... ok
[INFO] [stdout] test review_cli::tests::should_not_warn_for_a_configured_type ... ok
[INFO] [stdout] test review_cli::tests::should_not_warn_for_the_untyped_default ... ok
[INFO] [stdout] test review_cli::tests::should_not_warn_when_comment_types_are_unconfigured ... ok
[INFO] [stdout] test review_cli::tests::should_reject_zero_line ... ok
[INFO] [stdout] test review_cli::tests::should_match_pr_session_via_forge_repo_path_coordinate ... ok
[INFO] [stdout] test persistence::storage::tests::should_separate_pr_sessions_by_number ... ok
[INFO] [stdout] test review_cli::tests::should_list_pr_session_in_list_all ... ok
[INFO] [stdout] test review_store::tests::should_add_file_comment_to_session ... ok
[INFO] [stdout] test review_cli::tests::should_warn_when_type_is_not_configured ... ok
[INFO] [stdout] test review_store::tests::should_add_line_range_comment_by_range_end ... ok
[INFO] [stdout] test review_store::tests::should_add_review_level_comment_to_session ... ok
[INFO] [stdout] test review_cli::tests::should_not_match_pr_session_for_unrelated_repo ... ok
[INFO] [stdout] test persistence::storage::tests::should_surface_azure_pr_session_from_its_checkout ... ok
[INFO] [stdout] test review_cli::tests::should_resolve_pr_session_by_slug_without_repo ... ok
[INFO] [stdout] test review_cli::tests::should_list_add_and_show_comments ... 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_coordinate_from_local_and_pr_slugs ... ok
[INFO] [stdout] test slug::tests::should_derive_slug_from_pr_session_key ... ok
[INFO] [stdout] test slug::tests::should_match_coordinate_case_insensitively ... ok
[INFO] [stdout] test slug::tests::should_match_multi_segment_owner_both_directions ... 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_azure_remote_urls_with_org_project_owner ... ok
[INFO] [stdout] test slug::tests::should_parse_azure_repo_coordinate_forms ... ok
[INFO] [stdout] test slug::tests::should_parse_bare_repo_name_without_owner ... ok
[INFO] [stdout] test slug::tests::should_parse_gerrit_remote_urls_with_a_nested_project_path ... 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 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_azure_local_slug_with_org_project_owner ... ok
[INFO] [stdout] test slug::tests::should_roundtrip_azure_pr_slug_with_org_project_owner ... ok
[INFO] [stdout] test slug::tests::should_roundtrip_gerrit_pr_slug_with_a_nested_project_path ... 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_still_store_a_comment_whose_type_is_unconfigured ... ok
[INFO] [stdout] test review_store::tests::should_refuse_to_delete_pushed_comment ... ok
[INFO] [stdout] test review_store::tests::should_clear_comments_keeping_review_marks ... ok
[INFO] [stdout] test review_store::tests::should_clear_comments_and_review_marks ... ok
[INFO] [stdout] test review_store::tests::should_delete_comment_by_id_through_store ... ok
[INFO] [stdout] test review_store::tests::should_list_and_update_sessions_through_store ... ok
[INFO] [stdout] test syntax::cmark::tests::should_preserve_multibyte_content ... ok
[INFO] [stdout] test syntax::cmark::tests::should_carry_state_across_lines_in_fenced_blocks ... ok
[INFO] [stdout] test syntax::cmark::tests::should_handle_empty_body ... ok
[INFO] [stdout] test syntax::cmark::tests::should_style_bold_italic_heading_quote_and_list_distinctly ... ok
[INFO] [stdout] test syntax::cmark::tests::should_highlight_every_line ... ok
[INFO] [stdout] test syntax::cmark::tests::should_delegate_fenced_code_blocks_to_syntect ... ok
[INFO] [stdout] test syntax::cmark::tests::should_round_trip_every_body_exactly ... ok
[INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_handle_none_per_line ... ok
[INFO] [stdout] test syntax::tests::highlighted_spans_should_have_color ... ok
[INFO] [stdout] test syntax::cmark::tests::should_style_inline_code_distinctly_from_prose ... ok
[INFO] [stdout] test syntax::tests::should_apply_oniguruma_retry_limit_once ... ok
[INFO] [stdout] test syntax::cmark::tests::should_style_many_inline_code_spans_on_one_line ... ok
[INFO] [stdout] test syntax::tests::rehighlight_hunk_in_place_skips_container_grammar_files ... ok
[INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_apply_background_on_success ... ok
[INFO] [stdout] test syntax::tests::rehighlight_file_in_place_covers_every_hunk ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_extensions ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_build_filename_token ... ok
[INFO] [stdout] test syntax::tests::should_keep_file_highlighting_when_one_line_fails ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_filenames ... 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_find_syntax_for_uppercase_extension ... ok
[INFO] [stdout] test syntax::tests::should_resolve_no_syntax_for_any_path ... 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 text_edit::tests::should_delete_multibyte_char ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_char_from_middle ... 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_find_prev_boundary_for_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_delete_multibyte_word ... 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::built_in_theme_names_matches_known_count_and_values ... ok
[INFO] [stdout] test theme::tests::list_local_theme_names_lists_only_toml_files_sorted ... ok
[INFO] [stdout] test theme::tests::list_local_theme_names_returns_empty_for_missing_directory ... ok
[INFO] [stdout] test theme::tests::should_blend_midpoint_with_integer_rounding ... 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_derive_search_match_bg_for_local_themes ... 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_blend_to_accent_at_hundred_percent ... ok
[INFO] [stdout] test theme::tests::should_resolve_gruvbox_light_to_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_dark_high_contrast_to_nord_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_to_nord_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_light_to_ocean_light_syntect_theme ... 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_resolve_nord_light_high_contrast_to_ocean_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_use_cli_theme_over_config_theme ... ok
[INFO] [stdout] test theme::tests::should_use_catppuccin_theme_from_config_when_cli_missing ... 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_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_use_dark_flavor_base_for_catppuccin_mode_foreground ... ok
[INFO] [stdout] test tuicrignore::tests::detects_ignore_rule_files ... ok
[INFO] [stdout] test theme::tests::should_warn_on_unknown_local_theme_key ... ok
[INFO] [stdout] test syntax::tests::should_detect_syntax_from_shebang_when_extensionless ... ok
[INFO] [stdout] test tuicrignore::tests::filters_matching_files ... 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::handles_deleted_file_paths ... ok
[INFO] [stdout] test tuicrignore::tests::supports_unignore_rules ... ok
[INFO] [stdout] test tuicrignore::tests::gitignore_alone_filters_without_tuicrignore ... ok
[INFO] [stdout] test tuicrignore::tests::tuicrignore_overrides_gitignore ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_typescript ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_highlighting_splits_line_into_runs ... ok
[INFO] [stdout] test ui::comment_panel::tests::comment_display_lines_matches_rendered_box_height ... ok
[INFO] [stdout] test ui::comment_panel::tests::remote_summary_badge_uses_github_for_github_comments ... ok
[INFO] [stdout] test ui::comment_panel::tests::remote_thread_badge_uses_gitlab_for_gitlab_comments ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_at_start_for_empty_buffer ... ok
[INFO] [stdout] test syntax::tests::rehighlight_hunk_in_place_updates_bg_when_highlighter_changes ... ok
[INFO] [stdout] test syntax::tests::should_not_include_trailing_newline_in_highlighted_spans ... ok
[INFO] [stdout] test syntax::tests::should_highlight_each_line_independently ... ok
[INFO] [stdout] test ui::comment_panel::tests::displayed_comment_is_markdown_highlighted_and_preserves_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_render_preserves_all_text ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_show_alt_enter_hint_when_keyboard_enhancement_not_supported ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_show_shift_enter_hint_when_keyboard_enhancement_supported ... 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_align_summaries_for_rows_with_and_without_branches ... ok
[INFO] [stdout] test ui::commit_row::tests::should_expand_branch_and_summary_columns_at_wide_widths ... ok
[INFO] [stdout] test ui::commit_row::tests::should_format_short_relative_time_buckets ... ok
[INFO] [stdout] test ui::commit_row::tests::should_keep_pseudo_commit_content_stable_across_widths ... ok
[INFO] [stdout] test ui::commit_row::tests::should_preserve_all_columns_at_the_compact_width ... ok
[INFO] [stdout] test ui::commit_row::tests::should_preserve_backend_provided_short_hashes ... ok
[INFO] [stdout] test ui::commit_row::tests::should_preserve_compact_column_widths_and_split_surplus_toward_summary ... 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::commit_row::tests::should_render_very_narrow_rows_without_panicking ... 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 ui::comment_panel::tests::should_return_cursor_position_on_second_line ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_ascii_text ... 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_mixed_content ... 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 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_render_commit_message_full_width_in_side_by_side ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_multibyte_text ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::addition_line_background_reflects_live_theme_not_a_stale_cached_span ... 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_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_cull_comment_boxes_outside_the_viewport ... 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_commit_message_without_line_numbers_in_unified ... 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_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_outdated_marker_for_outdated_thread_under_all ... 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_unified::remote_comments_snapshot_tests::should_render_review_level_remote_thread_in_review_comments_section ... 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::relative_line_number_tests::uses_rendered_row_distance_and_preserves_missing_sides ... ok
[INFO] [stdout] test ui::diff_view::tests::should_clamp_to_last_line_when_box_sits_past_the_content ... ok
[INFO] [stdout] test ui::diff_view::tests::should_handle_box_partially_below_viewport ... ok
[INFO] [stdout] test ui::diff_view::tests::should_keep_cursor_centered_when_opening_comment_near_eof ... 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_to_cursor_when_box_taller_than_viewport ... ok
[INFO] [stdout] test ui::diff_view::tests::should_scroll_up_when_comment_box_above_viewport ... ok
[INFO] [stdout] test ui::file_list::tests::compact_folders_measure_and_scroll_unicode_labels ... ok
[INFO] [stdout] test ui::file_list::tests::compact_folders_render_joined_labels_and_shallow_filenames ... ok
[INFO] [stdout] test ui::file_list::tests::compact_folders_scroll_preserves_partial_wide_and_combining_graphemes ... 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::file_list::tests::should_keep_the_progress_fraction_in_the_title_while_hiding_reviewed_files ... ok
[INFO] [stdout] test ui::file_list::tests::should_announce_hidden_reviewed_files_in_the_border ... ok
[INFO] [stdout] test ui::file_list::tests::should_leave_the_border_clean_when_no_filter_is_set ... ok
[INFO] [stdout] test ui::file_list::tests::should_not_advertise_hiding_when_reviewed_files_are_shown ... ok
[INFO] [stdout] test ui::file_list::tests::should_render_the_prompt_sigil_and_buffer_while_a_prompt_is_open ... ok
[INFO] [stdout] test ui::help_popup::tests::should_align_comment_mode_descriptions_after_the_key_column ... ok
[INFO] [stdout] test ui::help_popup::tests::should_keep_the_substitute_one_display_column_wide ... ok
[INFO] [stdout] test ui::help_popup::tests::should_leave_an_ordinary_leader_unchanged ... ok
[INFO] [stdout] test ui::help_popup::tests::should_substitute_a_visible_glyph_for_a_whitespace_leader ... ok
[INFO] [stdout] test ui::file_list::tests::should_render_applied_filters_in_the_border_after_the_prompt_closes ... ok
[INFO] [stdout] test ui::diff_side_by_side::remote_comments_side_by_side_snapshot_tests::should_pan_both_columns_when_wrap_is_disabled ... 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 ui::row_height::tests::parity_side_by_side_single_file_view_spacing_is_bare ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_cull_comment_boxes_outside_the_viewport ... ok
[INFO] [stdout] test ui::pr_info_panel::tests::should_build_title_and_status_sections ... ok
[INFO] [stdout] test ui::comment_panel::tests::markdown_render_preserves_multibyte_text ... ok
[INFO] [stdout] test ui::row_height::tests::parity_side_by_side_with_wrap ... ok
[INFO] [stdout] test ui::row_height::tests::parity_unified_with_wrap ... ok
[INFO] [stdout] test ui::row_height::tests::parity_unified_wrap_on_single_file_view_next_hint_wraps ... ok
[INFO] [stdout] test ui::selector::pr_open_spinner_tests::should_advance_braille_frame_every_100ms ... 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_bold_pr_tab_label_when_pr_tab_active ... ok
[INFO] [stdout] test ui::row_height::tests::parity_unified_wrap_off_all_ones ... 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_name_the_checkout_in_the_sessions_border_title ... ok
[INFO] [stdout] test ui::diff_unified::remote_comments_snapshot_tests::should_reach_last_line_scrolling_down_through_wrapped_content ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_keep_target_selector_behind_command_and_help_overlays ... 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_render_error_state_in_tab_strip_status_slot_when_pr_load_failed ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_empty_state_when_no_saved_sessions ... 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_loaded_pr_rows_with_number_title_author ... ok
[INFO] [stdout] test ui::row_height::tests::parity_side_by_side_wrap_off_all_ones ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_full_screen_messages_from_target_selector ... 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_session_rows_with_slug_and_comment_count ... ok
[INFO] [stdout] test ui::pr_info_panel::tests::should_render_pr_description_markdown ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_render_status_message_in_commit_selector_footer ... 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::selector::selector_render_snapshot_tests::should_show_requested_scope_in_tab_strip_status_slot ... 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_render_spinner_glyph_in_place_of_cursor_for_loading_pr_row ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_fold_file_and_stats_into_header_when_diff_is_sole_pane ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_close_error_details_when_a_non_error_replaces_the_message ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_not_duplicate_commit_for_a_revision_review ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_make_full_long_error_accessible_from_status_bar ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_resize_branch_columns_on_fullscreen_and_inline_selectors ... 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::status_bar::header_snapshot_tests::should_not_panic_on_long_multibyte_title ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_not_show_read_only_badge_for_closed_pr ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_not_fold_file_into_header_when_other_panes_visible ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_omit_commits_label_for_single_commit_pr ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_omit_commits_label_when_full_range_selected ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_not_show_read_only_badge_for_merged_pr ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_omit_head_commit_when_repository_has_no_head ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_render_commit_position_when_single_commit_selected ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_open_error_details_with_messages_command_and_close_to_normal_mode ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_render_head_commit_in_the_header ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_report_when_messages_command_has_no_current_error ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_render_pr_mode_header_with_slug_number_and_title ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_omit_read_only_badge_for_open_pr ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_show_head_commit_alongside_staged_labels ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_render_n_of_m_commits_when_subset_selected ... ok
[INFO] [stdout] test ui::status_bar::tests::should_center_completion_window_when_possible ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_reset_scroll_when_another_error_replaces_the_open_message ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_show_head_commit_when_reviewing_the_working_tree ... 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_pin_completion_window_to_bottom_near_end ... 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_shows_pending_review_title_and_no_event_line_for_draft ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_shows_stale_head_warning_with_reload_option ... ok
[INFO] [stdout] test ui::selector::selector_render_snapshot_tests::should_trim_the_repo_prefix_from_session_rows ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_reflects_moved_to_summary_counts ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_renders_event_and_counts_for_comment_submission ... ok
[INFO] [stdout] test ui::submit_modals::tests::picker_renders_all_events_and_cursor_marker ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_scroll_error_details_with_mouse_wheel ... ok
[INFO] [stdout] test ui::submit_modals::tests::resolver_marks_omit_rows_with_empty_brackets ... ok
[INFO] [stdout] test ui::submit_modals::tests::picker_cursor_moves_with_marker ... ok
[INFO] [stdout] test ui::submit_modals::tests::resolver_row_uses_configured_label_and_omits_tag_for_untyped ... ok
[INFO] [stdout] test ui::submit_modals::tests::resolver_renders_each_row_with_cursor_marker ... ok
[INFO] [stdout] test ui::status_bar::header_snapshot_tests::should_scroll_to_end_of_oversized_error_details ... ok
[INFO] [stdout] test ui::summary_popup::tests::left_click_on_summary_location_does_not_activate_comment ... ok
[INFO] [stdout] test ui::summary_popup::tests::enter_on_second_comment_at_same_line_jumps_to_exact_comment ... ok
[INFO] [stdout] test ui::summary_popup::tests::opening_summary_selects_and_highlights_first_comment ... ok
[INFO] [stdout] test ui::summary_popup::tests::page_wheel_and_top_bottom_navigation_keep_a_visible_selection ... ok
[INFO] [stdout] test ui::submit_modals::tests::confirm_uses_gitlab_label_for_gitlab_draft ... ok
[INFO] [stdout] test ui::summary_popup::tests::j_and_k_select_comments_and_scroll_variable_height_entries_into_view ... ok
[INFO] [stdout] test ui::summary_popup::tests::renders_all_pending_buckets_in_deterministic_order_and_skips_locked_comments ... ok
[INFO] [stdout] test ui::summary_popup::tests::renders_empty_state ... ok
[INFO] [stdout] test ui::summary_popup::tests::enter_on_comment_in_reviewed_file_and_hunk_reveals_without_clearing_marks ... 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::summary_popup::tests::summary_replaces_diff_pane_and_preserves_open_file_sidebar ... ok
[INFO] [stdout] test ui::text_utils::tests::should_handle_string_of_only_multibyte_chars ... ok
[INFO] [stdout] test ui::summary_popup::tests::updates_scroll_metrics_and_renders_more_indicator ... 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_highlight_case_insensitive_match_within_a_single_span ... ok
[INFO] [stdout] test ui::text_utils::tests::should_handle_multibyte_utf8_char_boundaries_safely ... ok
[INFO] [stdout] test ui::text_utils::tests::should_highlight_multibyte_content_on_char_boundaries ... ok
[INFO] [stdout] test ui::text_utils::tests::should_keep_existing_foreground_when_highlight_is_background_only ... ok
[INFO] [stdout] test ui::text_utils::tests::should_match_both_sigma_spellings ... ok
[INFO] [stdout] test ui::text_utils::tests::should_keep_matcher_and_highlighter_in_agreement_on_folded_needles ... 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::summary_popup::tests::summary_replaces_inline_commit_selector ... ok
[INFO] [stdout] test ui::text_utils::tests::should_preserve_zero_width_spans_carrying_row_fill_styles ... 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_none_when_nothing_matches ... 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_split_a_span_that_crosses_a_wrap_point ... ok
[INFO] [stdout] test ui::text_utils::tests::should_treat_tab_as_whitespace_break ... ok
[INFO] [stdout] test ui::text_utils::tests::should_preserve_styles_across_wrap_boundary ... ok
[INFO] [stdout] test ui::text_utils::tests::should_truncate_ascii_string_with_ellipsis ... 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 ui::text_utils::tests::should_widen_matches_ending_inside_a_lowercase_expansion ... ok
[INFO] [stdout] test ui::text_utils::tests::should_wrap_cjk_chars_by_display_width ... ok
[INFO] [stdout] test ui::summary_popup::tests::stale_target_failure_restores_view_state_and_hidden_comments_cannot_activate ... ok
[INFO] [stdout] test update::check::tests::builds_crates_io_url_from_package_name ... ok
[INFO] [stdout] test update::check::tests::classifies_available_current_and_ahead_versions ... ok
[INFO] [stdout] test update::check::tests::compares_supported_and_invalid_versions ... ok
[INFO] [stdout] test update::check::tests::reads_latest_version_from_crates_io_shape ... ok
[INFO] [stdout] test update::install::tests::cargo_supports_exact_upgrades_and_rollbacks ... ok
[INFO] [stdout] test ui::text_utils::tests::should_highlight_match_spanning_multiple_spans ... ok
[INFO] [stdout] test update::install::tests::delegates_all_managed_install_methods_to_their_manager ... ok
[INFO] [stdout] test update::install::tests::cleans_staged_executable_when_swap_fails ... ok
[INFO] [stdout] test update::install::tests::direct_binaries_support_exact_upgrades_and_rollbacks ... ok
[INFO] [stdout] test update::install::tests::direct_musl_install_downloads_the_musl_asset ... ok
[INFO] [stdout] test update::install::tests::downloads_verifies_and_extracts_a_windows_direct_install ... ok
[INFO] [stdout] test update::install::tests::downloads_verifies_and_extracts_a_linux_direct_install ... ok
[INFO] [stdout] test update::install::tests::detects_every_documented_install_method_and_custom_cargo_home ... ok
[INFO] [stdout] test update::install::tests::formats_methods_outcomes_commands_and_errors_for_users ... ok
[INFO] [stdout] test update::install::tests::homebrew_mise_and_nix_reject_exact_upgrades_and_rollbacks ... ok
[INFO] [stdout] test update::install::tests::exact_direct_install_skips_the_current_version_and_rejects_mismatched_metadata ... ok
[INFO] [stdout] test update::install::tests::canonicalizes_an_invocation_symlink_before_install_method_detection ... ok
[INFO] [stdout] test ui::summary_popup::tests::summary_uses_entire_content_area_when_file_sidebar_is_hidden ... ok
[INFO] [stdout] test update::install::tests::rejects_symlink_executable_targets ... ok
[INFO] [stdout] test update::install::tests::rejects_invalid_or_binary_less_archives ... ok
[INFO] [stdout] test update::install::tests::returns_manager_failures_without_replacing_the_binary ... ok
[INFO] [stdout] test update::install::tests::skips_download_when_direct_install_is_current_or_ahead ... ok
[INFO] [stdout] test update::install::tests::maps_every_published_target_and_rejects_unsupported_targets ... ok
[INFO] [stdout] test update::install::tests::propagates_fetch_extraction_and_replacement_failures ... ok
[INFO] [stdout] test update::install::tests::stages_a_sibling_executable_and_preserves_permissions ... ok
[INFO] [stdout] test update::install::tests::rejects_bad_release_metadata_assets_and_digests ... ok
[INFO] [stdout] test update::install::tests::rejects_unsafe_executable_swap_inputs_before_touching_the_target ... ok
[INFO] [stdout] test update::install::tests::system_runtime_reports_success_failure_and_missing_manager_commands ... ok
[INFO] [stdout] test vcs::diff_parser::tests::keeps_added_lines_whose_content_starts_with_plus_signs ... ok
[INFO] [stdout] test vcs::diff_parser::tests::parses_multiple_hunks_by_declared_counts ... ok
[INFO] [stdout] test vcs::diff_parser::tests::binary_and_too_large_files_do_not_parse_patch_text ... ok
[INFO] [stdout] test ui::text_utils::tests::should_pad_highlighted_spans_to_exact_width ... ok
[INFO] [stdout] test vcs::diff_parser::tests::keeps_deleted_lines_whose_content_looks_like_headers ... ok
[INFO] [stdout] test vcs::diff_parser::tests::rejects_malformed_ranges_instead_of_defaulting_to_line_one ... ok
[INFO] [stdout] test vcs::diff_parser::tests::rejects_body_lines_beyond_the_declared_counts ... ok
[INFO] [stdout] test vcs::diff_parser::tests::rejects_line_ranges_that_would_overflow ... ok
[INFO] [stdout] test ui::row_height::tests::summary_jump_reveals_reviewed_comment_in_continuous_view_with_height_parity ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_skips_binary_files ... ok
[INFO] [stdout] test vcs::diff_parser::tests::rejects_truncated_hunks_instead_of_stealing_the_next_header ... ok
[INFO] [stdout] test vcs::file::tests::is_probably_binary_detects_any_null_in_sniff_window ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_preserves_relative_paths_for_nested_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::diff_parser::tests::skips_no_newline_markers_without_consuming_a_side ... ok
[INFO] [stdout] test app::tests::theme_picker_tests::list_scrolls_to_keep_selection_visible_in_a_short_viewport ... ok
[INFO] [stdout] test vcs::diff_parser::tests::uses_structured_metadata_instead_of_display_headers ... ok
[INFO] [stdout] test vcs::diff_parser::tests::returns_no_changes_for_empty_patch_set ... ok
[INFO] [stdout] test vcs::file::tests::pristine_filters_binary_files ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_still_uses_addition_origin ... ok
[INFO] [stdout] test vcs::file::tests::directory_mode_walks_and_respects_gitignore ... ok
[INFO] [stdout] test vcs::file::tests::single_file_mode_returns_one_diff_file ... ok
[INFO] [stdout] test vcs::git::cli::tests::detects_change_status_without_loading_diff ... ok
[INFO] [stdout] test vcs::file::tests::pristine_diff_uses_context_origin_and_one_indexed_hunk ... ok
[INFO] [stdout] test vcs::git::cli::tests::detects_untracked_files_when_git_status_hides_them ... ok
[INFO] [stdout] test vcs::git::cli::tests::parses_porcelain_status_sides ... ok
[INFO] [stdout] test vcs::git::cli::tests::parses_runtime_flags_from_single_config_read ... ok
[INFO] [stdout] test vcs::git::cli::tests::detects_untracked_files_inside_sparse_cone_in_change_status ... ok
[INFO] [stdout] test vcs::git::cli::tests::cli_diff_outputs_match_libgit2_for_shared_git_operations ... ok
[INFO] [stdout] test vcs::git::cli::tests::discovers_sparse_index_repo_mode ... ok
[INFO] [stdout] test vcs::git::cli::tests::gets_recent_commits_in_sparse_index ... 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::commit_range_with_merge_excludes_changes_already_in_left_ref ... ok
[INFO] [stdout] test vcs::git::cli::tests::treats_feature_many_files_as_untracked_cache_default ... ok
[INFO] [stdout] test vcs::git::cli::tests::resolves_revisions_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_before_first_hunk ... ok
[INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_between_hunks ... 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::git::cli::tests::reads_commit_range_diff_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::cli::tests::cli_diff_ignores_all_whitespace_when_configured ... ok
[INFO] [stdout] test vcs::git::cli::tests::whitespace_filter_pairs_remaining_patch_with_its_verbatim_path ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_staged_diff_and_stages_files_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_verbatim_paths_that_are_ambiguous_in_display_headers ... ok
[INFO] [stdout] test vcs::git::cli::tests::reads_working_tree_diff_and_untracked_files_in_sparse_index ... ok
[INFO] [stdout] test vcs::git::cli::tests::returns_no_changes_for_clean_sparse_index ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_expand_tabs_to_spaces_in_git_hunks ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_keep_mode_only_changes_when_ignoring_whitespace ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_highlight_vue_script_hunk_using_full_file_context ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_return_no_changes_for_clean_repo ... ok
[INFO] [stdout] test vcs::git::libgit2::tests::should_discover_worktree_with_relativeworktrees_extension ... ok
[INFO] [stdout] test vcs::git::diff::tests::auto_whitespace_selects_per_extension_for_both_git_backends ... ok
[INFO] [stdout] test vcs::git::raw::tests::maps_added_deleted_modified_and_copied_records ... ok
[INFO] [stdout] test vcs::git::raw::tests::parses_empty_nul_terminated_raw_section ... ok
[INFO] [stdout] test vcs::git::diff::tests::auto_whitespace_covers_git_diff_endpoints ... ok
[INFO] [stdout] test vcs::git::raw::tests::parses_verbatim_paths_without_reading_display_headers ... ok
[INFO] [stdout] test vcs::git::raw::tests::marks_binary_patch_from_body_without_parsing_its_paths ... ok
[INFO] [stdout] test vcs::git::raw::tests::rejects_metadata_and_patch_count_mismatch ... ok
[INFO] [stdout] test vcs::git::raw::tests::preserves_non_utf8_path_bytes_on_unix ... 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::staging::tests::stage_file_removes_deleted_file_from_index ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_separate_staged_and_unstaged_diffs ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_routes_reftable_repo_to_cli ... ok
[INFO] [stdout] test vcs::git::tests::derives_backend_preference_from_config ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_routes_split_index_repo_to_cli ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_surface_staged_files_on_unborn_head ... ok
[INFO] [stdout] test vcs::git::tests::derives_git_repo_mode_from_config ... ok
[INFO] [stdout] test vcs::git::tests::rejects_unusable_named_remotes_instead_of_falling_back_to_origin ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_routes_sparse_index_repo_to_cli_with_warning ... ok
[INFO] [stdout] test vcs::git::tests::resolves_remote_url_rewrites_without_using_push_rewrites ... ok
[INFO] [stdout] test vcs::git::tests::default_preference_keeps_standard_repo_on_libgit2 ... ok
[INFO] [stdout] test vcs::git::tests::resolves_named_remote_fetch_url_from_subdirectory ... ok
[INFO] [stdout] test vcs::git::tests::sha256_default_discovery_from_root_and_subdirectory_uses_cli ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_auto_whitespace_mixed_extensions_and_filtered_patch ... 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::hg::tests::test_hg_copied_file ... 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_fetch_context_lines ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_get_recent_commits ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_handles_paths_that_look_like_pattern_prefixes ... 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_path_pattern_pins_names_to_verbatim_paths ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_uses_nul_status_paths_instead_of_diff_headers ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_working_tree_diff ... 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::empty_description_uses_jj_wording ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_auto_whitespace_mixed_extensions_and_noop_files ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_added ... 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_bookmark_on_current_revision ... 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_discover ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_fetch_context_lines ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_fileset_arg_quotes_meta_characters ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_recent_commits ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_handles_paths_with_fileset_meta_characters ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_highlights_vue_script_hunk_using_full_file_context ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_no_bookmarks ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_revision_ids_are_not_colored ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_uses_template_paths_instead_of_git_headers ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_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_working_tree_with_commits_surfaces_noop_file_for_whitespace_only_diff ... ok
[INFO] [stdout] test vcs::pr_noop::tests::should_return_empty_context_lines_from_noop_backend ... ok
[INFO] [stdout] test vcs::pristine::tests::drops_deleted_but_tracked_entries ... ok
[INFO] [stdout] test vcs::pristine::tests::errors_when_not_a_git_repo ... ok
[INFO] [stdout] test vcs::git::diff::tests::should_match_plain_and_highlighted_parses_for_both_git_backends ... ok
[INFO] [stdout] test vcs::pristine::tests::errors_when_repo_has_no_tracked_files ... ok
[INFO] [stdout] test vcs::pristine::tests::lists_only_tracked_files ... ok
[INFO] [stdout] test vcs::tests::bench_highlight_parallel_vs_serial ... ignored
[INFO] [stdout] test vcs::tests::detect_vcs_outside_repo_returns_error ... ok
[INFO] [stdout] test vcs::git::tests::sha256_ranges_worktree_changes_and_context_keep_full_commit_ids ... ok
[INFO] [stdout] test vcs::pr_noop::tests::should_reject_working_tree_diff_on_noop_backend ... ok
[INFO] [stdout] test vcs::tests::exports_are_accessible ... ok
[INFO] [stdout] test vcs::tests::slice_context_lines_expands_tabs ... 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_info_without_branch ... 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::whitespace::tests::destination_extension_wins_for_renames_and_source_for_deletions ... ok
[INFO] [stdout] test vcs::whitespace::tests::explicit_false_override_preserves_builtin_ignored_type ... ok
[INFO] [stdout] test vcs::whitespace::tests::extensionless_and_dotfiles_compare_normally ... ok
[INFO] [stdout] test vcs::whitespace::tests::materialize_diff_propagates_non_nochanges_errors ... ok
[INFO] [stdout] test vcs::whitespace::tests::materialize_diff_single_pass_for_legacy_modes ... ok
[INFO] [stdout] test vcs::whitespace::tests::materialize_diff_treats_only_nochanges_as_empty ... ok
[INFO] [stdout] test vcs::whitespace::tests::metadata_only_records_are_preserved_when_ignored_variant_lacks_them ... ok
[INFO] [stdout] test vcs::whitespace::tests::missing_ignored_modified_file_is_omitted ... ok
[INFO] [stdout] test vcs::whitespace::tests::non_utf8_extension_compares_normally ... ok
[INFO] [stdout] test vcs::whitespace::tests::python_and_yaml_compare_normally_unless_overridden ... ok
[INFO] [stdout] test vcs::whitespace::tests::selection_keeps_normal_order_and_ignored_coordinates ... ok
[INFO] [stdout] test vcs::whitespace::tests::unmatched_substantive_non_modified_file_fails ... ok
[INFO] [stdout] test vcs::whitespace::tests::uppercase_and_multi_dot_names_use_final_extension ... 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] test vcs::git::diff::tests::auto_whitespace_surfaces_unborn_head_and_strict_subset ... ok
[INFO] [stdout] test vcs::git::tests::sha256_root_commit_list_diff ... ok
[INFO] [stdout] test vcs::git::tests::sha256_root_commit_with_worktree_diff ... ok
[INFO] [stdout] test vcs::git::tests::sha256_root_commit_explicit_diff ... ok
[INFO] [stdout] test vcs::tests::enhance_full_file_highlight_serial_path_one_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1828 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 27.34s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tuicr-1be9aead93222731)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::drain_blocks_once_then_takes_only_queued_events ... ok
[INFO] [stdout] test tests::keyboard_enhancement_probe_requires_interactive_stdin ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/forge_remote_formats.rs (/opt/rustwide/target/debug/deps/forge_remote_formats-a2ab4af17dcbec51)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test sha1_forge_remote_discovery_control ... ok
[INFO] [stdout] test sha256_forge_remote_discovery ... ok
[INFO] [stdout] test reftable_forge_remote_discovery ... ok
[INFO] [stderr]    Doc-tests tuicr
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b", kill_on_drop: false }`
[INFO] [stdout] 9868abfa69881691e4b8205220f186562f6d087a1e4b2be7b416c101a633631b
