[INFO] fetching crate gitstack 5.3.0... [INFO] testing gitstack-5.3.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate gitstack 5.3.0 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate gitstack 5.3.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate gitstack 5.3.0 [INFO] tweaked toml for crates.io crate gitstack 5.3.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate gitstack 5.3.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate gitstack 5.3.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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4570b964b20d53338c6cccf33d448f295f58a57dc4ad81c3b6a4c31354103482 [INFO] running `Command { std: "docker" "start" "-a" "4570b964b20d53338c6cccf33d448f295f58a57dc4ad81c3b6a4c31354103482", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4570b964b20d53338c6cccf33d448f295f58a57dc4ad81c3b6a4c31354103482", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4570b964b20d53338c6cccf33d448f295f58a57dc4ad81c3b6a4c31354103482", kill_on_drop: false }` [INFO] [stdout] 4570b964b20d53338c6cccf33d448f295f58a57dc4ad81c3b6a4c31354103482 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] af376837ab5d64e595ea8f4d81c52f8d39aada0854ddfe9bc1105454de264b63 [INFO] running `Command { std: "docker" "start" "-a" "af376837ab5d64e595ea8f4d81c52f8d39aada0854ddfe9bc1105454de264b63", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling cc v1.2.54 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling time v0.3.46 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling csv-core v0.1.13 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling flate2 v1.1.8 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling png v0.18.0 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.18.3+1.9.2 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling toml v1.0.3+spec-1.1.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling git2 v0.20.4 [INFO] [stderr] Compiling gitstack v5.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s [INFO] running `Command { std: "docker" "inspect" "af376837ab5d64e595ea8f4d81c52f8d39aada0854ddfe9bc1105454de264b63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af376837ab5d64e595ea8f4d81c52f8d39aada0854ddfe9bc1105454de264b63", kill_on_drop: false }` [INFO] [stdout] af376837ab5d64e595ea8f4d81c52f8d39aada0854ddfe9bc1105454de264b63 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d5670641f847e4c35da364f41dd45bfafc2fa3e3967149041a1a49486693b626 [INFO] running `Command { std: "docker" "start" "-a" "d5670641f847e4c35da364f41dd45bfafc2fa3e3967149041a1a49486693b626", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling gitstack v5.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 16.19s [INFO] running `Command { std: "docker" "inspect" "d5670641f847e4c35da364f41dd45bfafc2fa3e3967149041a1a49486693b626", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5670641f847e4c35da364f41dd45bfafc2fa3e3967149041a1a49486693b626", kill_on_drop: false }` [INFO] [stdout] d5670641f847e4c35da364f41dd45bfafc2fa3e3967149041a1a49486693b626 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3ed6f81d84544dfde9548b676347ced3330e306eb82b11e15e0f3d4528ecd6bc [INFO] running `Command { std: "docker" "start" "-a" "3ed6f81d84544dfde9548b676347ced3330e306eb82b11e15e0f3d4528ecd6bc", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gitstack-7e6167b6138a47f7) [INFO] [stdout] [INFO] [stdout] running 692 tests [INFO] [stdout] test app::tests::test_app_branch_move_down_increments_index ... ok [INFO] [stdout] test app::tests::test_app_branch_move_up_decrements_index ... ok [INFO] [stdout] test app::tests::test_app_branch_name_returns_unknown_when_no_repo ... ok [INFO] [stdout] test app::tests::test_app_close_help_does_nothing_when_already_closed ... ok [INFO] [stdout] test app::tests::test_app_close_help_sets_show_help_false ... ok [INFO] [stdout] test app::tests::test_app_commit_message_pop_removes_character ... ok [INFO] [stdout] test app::tests::test_app_commit_message_push_adds_character ... ok [INFO] [stdout] test app::tests::test_app_close_detail_sets_show_detail_false ... ok [INFO] [stdout] test app::tests::test_app_append_events_updates_filtered_indices ... ok [INFO] [stdout] test app::tests::test_app_append_events_adds_to_existing ... ok [INFO] [stdout] test app::tests::test_app_default_is_same_as_new ... ok [INFO] [stdout] test app::tests::test_app_end_branch_select_keeps_branches ... ok [INFO] [stdout] test app::tests::test_app_end_filter_sets_normal_mode ... ok [INFO] [stdout] test app::tests::test_app_end_status_view_keeps_statuses ... ok [INFO] [stdout] test app::tests::test_app_filter_clear_removes_all ... ok [INFO] [stdout] test app::tests::test_app_filter_filters_by_message ... ok [INFO] [stdout] test app::tests::test_app_filter_is_case_insensitive ... ok [INFO] [stdout] test app::tests::test_app_filter_pop_removes_character ... ok [INFO] [stdout] test app::tests::test_app_filter_push_adds_character ... ok [INFO] [stdout] test app::tests::test_app_filter_resets_selected_index ... ok [INFO] [stdout] test app::tests::test_app_jump_to_head_does_nothing_when_head_not_in_filter ... ok [INFO] [stdout] test app::tests::test_app_finish_loading_sets_is_loading_false ... ok [INFO] [stdout] test app::tests::test_app_jump_to_head_works_when_already_at_head ... ok [INFO] [stdout] test app::tests::test_app_jump_to_head_without_head_hash_goes_to_first ... ok [INFO] [stdout] test app::tests::test_app_jump_to_head_moves_to_head_event ... ok [INFO] [stdout] test app::tests::test_app_jump_to_next_label_no_label_found ... ok [INFO] [stdout] test app::tests::test_app_jump_to_next_label_finds_label ... ok [INFO] [stdout] test app::tests::test_app_jump_to_head_finds_head_in_filtered_results ... ok [INFO] [stdout] test app::tests::test_app_jump_to_prev_label_finds_label ... ok [INFO] [stdout] test app::tests::test_app_jump_to_prev_label_no_label_found ... ok [INFO] [stdout] test app::tests::test_app_load_resets_selected_index ... ok [INFO] [stdout] test app::tests::test_app_load_sets_repo_info ... ok [INFO] [stdout] test app::tests::test_app_load_sets_events ... ok [INFO] [stdout] test app::tests::test_app_jump_to_prev_label_at_start ... ok [INFO] [stdout] test app::tests::test_app_move_to_bottom_does_nothing_when_empty ... ok [INFO] [stdout] test app::tests::test_app_move_down_does_not_exceed_events_length ... ok [INFO] [stdout] test app::tests::test_app_move_down_increments_selected_index ... ok [INFO] [stdout] test app::tests::test_app_move_to_bottom_sets_selected_index_to_last ... ok [INFO] [stdout] test app::tests::test_app_move_to_top_sets_selected_index_to_zero ... ok [INFO] [stdout] test app::tests::test_app_move_to_top_works_when_already_at_top ... ok [INFO] [stdout] test app::tests::test_app_move_up_decrements_selected_index ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_empty_suggestions ... ok [INFO] [stdout] test app::tests::test_app_move_up_does_not_go_below_zero ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_empty_events ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_is_loading_false ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_no_repo_info ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_should_quit_false ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_normal_mode ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_show_help_false ... ok [INFO] [stdout] test app::tests::test_app_open_detail_does_nothing_when_no_events ... ok [INFO] [stdout] test app::tests::test_app_page_down_does_nothing_when_empty ... ok [INFO] [stdout] test app::tests::test_app_open_detail_sets_show_detail_true ... ok [INFO] [stdout] test app::tests::test_app_new_initializes_with_show_detail_false ... ok [INFO] [stdout] test app::tests::test_app_page_down_stops_at_last_index ... ok [INFO] [stdout] test app::tests::test_app_page_up_moves_by_page_size ... ok [INFO] [stdout] test app::tests::test_app_page_up_stops_at_zero ... ok [INFO] [stdout] test app::tests::test_app_repo_name_returns_unknown_when_no_repo ... ok [INFO] [stdout] test app::tests::test_app_page_down_moves_by_page_size ... ok [INFO] [stdout] test app::tests::test_app_start_branch_select_selects_current_branch ... ok [INFO] [stdout] test app::tests::test_app_quit_sets_should_quit_to_true ... ok [INFO] [stdout] test app::tests::test_app_set_status_message_sets_message ... ok [INFO] [stdout] test app::tests::test_app_selected_event_returns_none_when_empty ... ok [INFO] [stdout] test app::tests::test_app_start_branch_select_sets_branches ... ok [INFO] [stdout] test app::tests::test_app_selected_event_returns_correct_event ... ok [INFO] [stdout] test app::tests::test_app_start_branch_select_sets_mode ... ok [INFO] [stdout] test app::tests::test_app_start_commit_input_sets_mode ... ok [INFO] [stdout] test app::tests::test_app_selected_file_status_returns_correct_status ... ok [INFO] [stdout] test app::tests::test_app_start_filter_sets_filter_mode ... ok [INFO] [stdout] test app::tests::test_app_set_head_hash_keeps_short_hash ... ok [INFO] [stdout] test app::tests::test_app_start_loading_sets_is_loading_true ... ok [INFO] [stdout] test app::tests::test_app_start_status_view_sets_mode ... ok [INFO] [stdout] test app::tests::test_app_set_head_hash_truncates_long_hash ... ok [INFO] [stdout] test app::tests::test_app_selected_branch_returns_correct_branch ... ok [INFO] [stdout] test app::tests::test_app_start_status_view_sets_statuses ... ok [INFO] [stdout] test app::tests::test_app_status_move_down_increments_index ... ok [INFO] [stdout] test app::tests::test_app_status_move_up_decrements_index ... ok [INFO] [stdout] test app::tests::test_app_toggle_help_sets_show_help_true ... ok [INFO] [stdout] test app::tests::test_app_toggle_help_toggles_show_help ... ok [INFO] [stdout] test app::tests::test_app_update_branch_changes_repo_info ... ok [INFO] [stdout] test app::tests::test_apply_suggestion_sets_message_and_type ... ok [INFO] [stdout] test app::tests::test_commit_message_clear_clears_type ... ok [INFO] [stdout] test app::tests::test_commit_message_pop_clears_type_when_prefix_removed ... ok [INFO] [stdout] test app::tests::test_apply_suggestion_invalid_index_does_nothing ... ok [INFO] [stdout] test app::tests::test_commit_type_all_returns_8_types ... ok [INFO] [stdout] test app::tests::test_commit_type_key_all_types ... ok [INFO] [stdout] test app::tests::test_commit_type_prefix_all_types ... ok [INFO] [stdout] test app::tests::test_commit_type_prefix_feat ... ok [INFO] [stdout] test app::tests::test_commit_type_key_feat ... ok [INFO] [stdout] test app::tests::test_commit_type_key_fix ... ok [INFO] [stdout] test app::tests::test_commit_type_prefix_fix ... ok [INFO] [stdout] test app::tests::test_end_commit_input_clears_type ... ok [INFO] [stdout] test app::tests::test_quick_action_heatmap_opens_heatmap_view ... ok [INFO] [stdout] test app::tests::test_quick_action_view_lifecycle ... ok [INFO] [stdout] test app::tests::test_select_commit_type_sets_prefix ... ok [INFO] [stdout] test app::tests::test_start_commit_input_clears_type ... ok [INFO] [stdout] test app::tests::test_quick_action_author_stats_opens_stats_view ... ok [INFO] [stdout] test app::tests::test_select_commit_type_fix ... ok [INFO] [stdout] test app::types::tests::test_blame_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_change_coupling_view_state_default ... ok [INFO] [stdout] test app::tests::test_suggestion_move_down_increments_index ... ok [INFO] [stdout] test app::types::tests::test_branch_compare_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_commit_detail_state_default ... ok [INFO] [stdout] test app::tests::test_suggestion_move_up_decrements_index ... ok [INFO] [stdout] test app::types::tests::test_commit_type_name ... ok [INFO] [stdout] test app::types::tests::test_commit_type_prefix ... ok [INFO] [stdout] test app::types::tests::test_commit_type_keys_are_unique ... ok [INFO] [stdout] test app::types::tests::test_file_history_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_file_diff_state_default ... ok [INFO] [stdout] test app::types::tests::test_health_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_impact_score_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_heatmap_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_input_mode_default_is_normal ... ok [INFO] [stdout] test app::types::tests::test_commit_type_all_returns_8 ... ok [INFO] [stdout] test app::types::tests::test_ownership_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_commit_type_key ... ok [INFO] [stdout] test app::types::tests::test_patch_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_quality_score_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_quick_action_all_ids_are_unique ... ok [INFO] [stdout] test app::types::tests::test_quick_action_all_returns_14_items ... ok [INFO] [stdout] test app::types::tests::test_quick_action_id_mapping ... ok [INFO] [stdout] test app::types::tests::test_quick_action_navigate_to_last_item ... ok [INFO] [stdout] test app::types::tests::test_quick_action_selects_author_stats ... ok [INFO] [stdout] test app::types::tests::test_quick_action_selects_heatmap ... ok [INFO] [stdout] test app::types::tests::test_quick_action_title_en ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_all_returns_5 ... ok [INFO] [stdout] test app::types::tests::test_quick_action_title_ja ... ok [INFO] [stdout] test app::types::tests::test_related_files_view_state_default ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_default_is_commits ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_from_number ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_label_not_empty ... ok [INFO] [stdout] test cache::tests::cache_envelope_invalid_json_returns_error ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_number_roundtrip ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_next_prev_inverse ... ok [INFO] [stdout] test cache::tests::is_expired_boundary_exactly_at_ttl ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_prev_cycles ... ok [INFO] [stdout] test cache::tests::is_expired_boundary_one_second_past_ttl ... ok [INFO] [stdout] test cache::tests::is_expired_large_ttl ... ok [INFO] [stdout] test app::types::tests::test_stash_view_state_default ... ok [INFO] [stdout] test cache::tests::is_expired_returns_false_for_fresh_entry ... ok [INFO] [stdout] test cache::tests::is_expired_returns_true_for_old_entry ... ok [INFO] [stdout] test app::types::tests::test_sidebar_panel_next_cycles ... ok [INFO] [stdout] test cache::tests::analysis_cache_dir_returns_path_with_gitstack ... ok [INFO] [stdout] test cache::tests::is_expired_saturating_sub_on_future_timestamp ... ok [INFO] [stdout] test cache::tests::now_unix_secs_returns_reasonable_value ... ok [INFO] [stdout] test cli::tests::test_output_format_from_str ... ok [INFO] [stdout] test app::types::tests::test_stats_view_state_default ... ok [INFO] [stdout] test cli::tests::test_parse_cli_args_help ... ok [INFO] [stdout] test cache::tests::cache_envelope_serialization_roundtrip ... ok [INFO] [stdout] test cache::tests::is_expired_returns_true_when_ttl_is_zero ... ok [INFO] [stdout] test cli::tests::test_parse_cli_args_log_default ... ok [INFO] [stdout] test cli::tests::test_parse_cli_args_stats ... ok [INFO] [stdout] test cache::tests::cache_envelope_deserialization_from_known_json ... ok [INFO] [stdout] test cli::tests::test_parse_metrics_command ... ok [INFO] [stdout] test cli::tests::test_parse_quick_action_defaults_compact ... ok [INFO] [stdout] test cli::tests::test_parse_cli_args_version ... ok [INFO] [stdout] test cli::tests::test_parse_quick_action_full_mode ... ok [INFO] [stdout] test cli::tests::test_parse_tui_options_legacy_layout_ignored ... ok [INFO] [stdout] test cli::tests::test_parse_tui_options_valid_focus ... ok [INFO] [stdout] test cli::tests::test_parse_tui_options_defaults ... ok [INFO] [stdout] test compare::tests::branch_compare_empty_commits ... ok [INFO] [stdout] test compare::tests::branch_compare_with_commits ... ok [INFO] [stdout] test compare::tests::compare_tab_debug ... ok [INFO] [stdout] test compare::tests::compare_commit_fields ... ok [INFO] [stdout] test compare::tests::compare_tab_default_is_ahead ... ok [INFO] [stdout] test compare::tests::compare_tab_toggle_behind_to_ahead ... ok [INFO] [stdout] test compare::tests::compare_commit_clone ... ok [INFO] [stdout] test compare::tests::compare_tab_clone ... ok [INFO] [stdout] test compare::tests::compare_tab_toggle_roundtrip ... ok [INFO] [stdout] test config::tests::test_filter_presets_get_set ... ok [INFO] [stdout] test compare::tests::compare_tab_toggle_ahead_to_behind ... ok [INFO] [stdout] test event::tests::test_git_event_commit_stores_file_counts ... ok [INFO] [stdout] test event::tests::test_git_event_commit_creates_commit_kind ... ok [INFO] [stdout] test event::tests::test_git_event_kind_commit_is_distinct ... ok [INFO] [stdout] test event::tests::test_git_event_commit_stores_author ... ok [INFO] [stdout] test event::tests::test_git_event_merge_creates_merge_kind ... ok [INFO] [stdout] test config::tests::test_filter_presets_iter ... ok [INFO] [stdout] test event::tests::test_git_event_commit_stores_hash ... ok [INFO] [stdout] test event::tests::test_git_event_merge_has_zero_file_counts ... ok [INFO] [stdout] test event::tests::test_git_event_commit_stores_message ... ok [INFO] [stdout] test event::tests::test_relative_time_days ... ok [INFO] [stdout] test event::tests::test_relative_time_hours ... ok [INFO] [stdout] test event::tests::test_relative_time_minutes ... ok [INFO] [stdout] test filter::tests::test_description_plain_text ... ok [INFO] [stdout] test filter::tests::test_description_smart_filter ... ok [INFO] [stdout] test filter::tests::test_description_with_hash_range ... ok [INFO] [stdout] test event::tests::test_relative_time_just_now ... ok [INFO] [stdout] test filter::tests::test_has_file_filter_false ... ok [INFO] [stdout] test filter::tests::test_has_file_filter_true ... ok [INFO] [stdout] test filter::tests::test_has_hash_range_false ... ok [INFO] [stdout] test filter::tests::test_has_hash_range_true ... ok [INFO] [stdout] test filter::tests::test_is_empty_false ... ok [INFO] [stdout] test filter::tests::test_is_empty_false_with_hash_range ... ok [INFO] [stdout] test filter::tests::test_matches_author_filter ... ok [INFO] [stdout] test filter::tests::test_matches_combined_filters ... ok [INFO] [stdout] test filter::tests::test_is_empty_true ... ok [INFO] [stdout] test filter::tests::test_matches_combined_filters_partial_fail ... ok [INFO] [stdout] test filter::tests::test_matches_file_filter_with_files ... ok [INFO] [stdout] test filter::tests::test_matches_file_filter_without_files ... ok [INFO] [stdout] test export::tests::test_export_heatmap_json ... ok [INFO] [stdout] test filter::tests::test_matches_plain_text_case_insensitive ... ok [INFO] [stdout] test export::tests::test_export_heatmap_csv ... ok [INFO] [stdout] test filter::tests::test_matches_author_filter_no_match ... ok [INFO] [stdout] test filter::tests::test_matches_plain_text_in_author ... ok [INFO] [stdout] test export::tests::test_export_stats_json ... ok [INFO] [stdout] test filter::tests::test_matches_since_filter ... ok [INFO] [stdout] test filter::tests::test_matches_file_filter_no_match ... ok [INFO] [stdout] test filter::tests::test_matches_japanese_author ... ok [INFO] [stdout] test filter::tests::test_matches_japanese_message ... ok [INFO] [stdout] test export::tests::test_export_stats_csv ... ok [INFO] [stdout] test filter::tests::test_matches_plain_text_in_hash ... ok [INFO] [stdout] test filter::tests::test_matches_plain_text_in_message ... ok [INFO] [stdout] test filter::tests::test_matches_message_filter ... ok [INFO] [stdout] test filter::tests::test_parse_author_filter ... ok [INFO] [stdout] test filter::tests::test_matches_type_commit_not_merge ... ok [INFO] [stdout] test filter::tests::test_matches_since_filter_old_event ... ok [INFO] [stdout] test filter::tests::test_parse_file_filter ... ok [INFO] [stdout] test filter::tests::test_parse_hash_range_empty_parts ... ok [INFO] [stdout] test filter::tests::test_matches_type_merge ... ok [INFO] [stdout] test filter::tests::test_parse_hash_range_filter ... ok [INFO] [stdout] test filter::tests::test_parse_combined_query ... ok [INFO] [stdout] test filter::tests::test_parse_hash_range_invalid_format ... ok [INFO] [stdout] test filter::tests::test_parse_empty_returns_default ... ok [INFO] [stdout] test filter::tests::test_parse_hash_range_with_other_filters ... ok [INFO] [stdout] test filter::tests::test_parse_message_filter ... ok [INFO] [stdout] test filter::tests::test_parse_multiple_keywords ... ok [INFO] [stdout] test filter::tests::test_parse_plain_text_without_slash ... ok [INFO] [stdout] test filter::tests::test_parse_since_absolute_date ... ok [INFO] [stdout] test filter::tests::test_parse_since_relative_week ... ok [INFO] [stdout] test filter::tests::test_parse_since_relative_days ... ok [INFO] [stdout] test filter::tests::test_parse_type_merge ... ok [INFO] [stdout] test filter::tests::test_parse_type_commit ... ok [INFO] [stdout] test git::tests::test_has_staged_files_in_repo_returns_false_when_empty ... ok [INFO] [stdout] test git::tests::test_get_status_from_repo_detects_untracked ... ok [INFO] [stdout] test git::tests::test_get_status_from_repo_detects_modified ... ok [INFO] [stdout] test git::tests::test_get_commit_diff_stats_returns_stats ... ok [INFO] [stdout] test git::tests::test_list_branches_from_repo_current_branch_first ... ok [INFO] [stdout] test git::tests::test_list_branches_from_repo_includes_current_branch ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_event_has_author ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_first_event_is_initial_commit ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_event_has_short_hash ... ok [INFO] [stdout] test git::tests::test_checkout_branch_in_repo_switches_branch ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_event_has_file_stats ... ok [INFO] [stdout] test git::tests::test_sort_branches_alphabetical_for_non_priority ... ok [INFO] [stdout] test git::tests::test_sort_branches_current_first ... ok [INFO] [stdout] test git::tests::test_sort_branches_current_takes_precedence_over_priority ... ok [INFO] [stdout] test git::tests::test_sort_branches_priority_order ... ok [INFO] [stdout] test git::tests::test_validate_branch_name_accepts_valid ... ok [INFO] [stdout] test git::tests::test_has_staged_files_in_repo_returns_true_when_staged ... ok [INFO] [stdout] test git::tests::test_list_branches_from_repo_returns_branches ... ok [INFO] [stdout] test git::tests::test_validate_branch_name_rejects_empty ... ok [INFO] [stdout] test git::tests::test_validate_branch_name_rejects_null_char ... ok [INFO] [stdout] test git::tests::test_validate_path_rejects_null_char ... ok [INFO] [stdout] test git::tests::test_validate_path_accepts_valid_paths ... ok [INFO] [stdout] test git::types::tests::test_branch_info_display ... ok [INFO] [stdout] test git::tests::test_validate_path_rejects_parent_dir ... ok [INFO] [stdout] test git::tests::test_get_status_from_repo_empty_on_clean ... ok [INFO] [stdout] test git::types::tests::test_branch_info_new ... ok [INFO] [stdout] test git::types::tests::test_branch_info_new_gone ... ok [INFO] [stdout] test git::types::tests::test_branch_info_partial_eq_str ... ok [INFO] [stdout] test git::types::tests::test_branch_info_partial_eq_string ... ok [INFO] [stdout] test git::types::tests::test_commit_diff_default ... ok [INFO] [stdout] test git::types::tests::test_file_patch_construction ... ok [INFO] [stdout] test git::types::tests::test_file_status_construction ... ok [INFO] [stdout] test git::types::tests::test_file_status_kind_is_staged ... ok [INFO] [stdout] test git::types::tests::test_file_change_status_as_char ... ok [INFO] [stdout] test git::types::tests::test_repo_info_construction ... ok [INFO] [stdout] test git::types::tests::test_file_change_construction ... ok [INFO] [stdout] test git::types::tests::test_diff_stats_default ... ok [INFO] [stdout] test graph::builder::tests::test_alternating_merge_pattern ... ok [INFO] [stdout] test git::types::tests::test_stash_entry_construction ... ok [INFO] [stdout] test graph::builder::tests::test_build_graph_head_marker ... ok [INFO] [stdout] test git::tests::test_create_commit_in_repo_creates_commit ... ok [INFO] [stdout] test graph::builder::tests::test_branch_commit_no_horizontal_line ... ok [INFO] [stdout] test git::tests::test_repo_info_from_repo_gets_name ... ok [INFO] [stdout] test graph::builder::tests::test_build_graph_single_commit ... ok [INFO] [stdout] test graph::builder::tests::test_build_graph_empty ... ok [INFO] [stdout] test graph::builder::tests::test_build_graph_linear_history ... ok [INFO] [stdout] test graph::builder::tests::test_column_release_after_merge ... ok [INFO] [stdout] test graph::builder::tests::test_color_wraparound_with_many_branches ... ok [INFO] [stdout] test graph::builder::tests::test_build_graph_with_merge ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_returns_commits_in_order ... ok [INFO] [stdout] test graph::builder::tests::test_color_assignment_unique ... ok [INFO] [stdout] test graph::builder::tests::test_column_tracker_find_or_create ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_returns_events ... ok [INFO] [stdout] test graph::builder::tests::test_convergence_connector_row ... ok [INFO] [stdout] test graph::builder::tests::test_empty_events_no_panic ... ok [INFO] [stdout] test graph::builder::tests::test_connector_row_cell_layout ... ok [INFO] [stdout] test graph::builder::tests::test_column_tracker_release ... ok [INFO] [stdout] test graph::builder::tests::test_cross_generation ... ok [INFO] [stdout] test graph::builder::tests::test_deeply_nested_merges ... ok [INFO] [stdout] test graph::builder::tests::test_complex_cross_pattern ... ok [INFO] [stdout] test graph::builder::tests::test_linear_history_same_column ... ok [INFO] [stdout] test graph::builder::tests::test_diamond_pattern_chain ... ok [INFO] [stdout] test graph::builder::tests::test_fork_point ... ok [INFO] [stdout] test graph::builder::tests::test_node_types ... ok [INFO] [stdout] test graph::builder::tests::test_horizontal_connection ... ok [INFO] [stdout] test graph::builder::tests::test_consecutive_merges_vertical_lines_preserved ... ok [INFO] [stdout] test graph::builder::tests::test_long_merge_chain ... ok [INFO] [stdout] test graph::builder::tests::test_merge_commit_horizontal_line ... ok [INFO] [stdout] test graph::builder::tests::test_many_parallel_branches ... ok [INFO] [stdout] test graph::builder::tests::test_parent_outside_display_range ... ok [INFO] [stdout] test git::tests::test_unstage_file_in_repo_unstages_file ... ok [INFO] [stdout] test graph::builder::tests::test_parallel_branches ... ok [INFO] [stdout] test graph::builder::tests::test_tee_left_generation ... ok [INFO] [stdout] test graph::builder::tests::test_single_commit_no_panic ... ok [INFO] [stdout] test graph::builder::tests::test_three_parallel_branches ... ok [INFO] [stdout] test graph::cell::tests::test_cell_color_index ... ok [INFO] [stdout] test graph::cell::tests::test_cell_to_char_empty ... ok [INFO] [stdout] test graph::builder::tests::test_vertical_line_colors ... ok [INFO] [stdout] test graph::cell::tests::test_cell_to_char_merge_node ... ok [INFO] [stdout] test git::tests::test_repo_info_from_repo_gets_branch ... ok [INFO] [stdout] test graph::cell::tests::test_cell_to_char_curves ... ok [INFO] [stdout] test graph::colors::tests::test_get_graph_color ... ok [INFO] [stdout] test graph::builder::tests::test_tree_structure_preserved ... ok [INFO] [stdout] test graph::cell::tests::test_cell_to_char_node ... ok [INFO] [stdout] test git::tests::test_stage_file_in_repo_stages_file ... ok [INFO] [stdout] test graph::cell::tests::test_cell_to_char_vertical ... ok [INFO] [stdout] test graph::colors::tests::test_color_context_builder ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_adjacent_lanes_different_colors ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_get_lane_color ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_fork_siblings_different_colors ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_history_avoidance ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_main_branch_always_color_0 ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_main_color ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_many_lanes ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_release_lane ... ok [INFO] [stdout] test graph::colors::tests::test_penalty_assigner_skips_main_color ... ok [INFO] [stdout] test graph::layout::tests::test_graph_layout_empty ... ok [INFO] [stdout] test graph::layout::tests::test_graph_row_with_branches ... ok [INFO] [stdout] test graph::layout::tests::test_graph_row_new ... ok [INFO] [stdout] test graph::layout::tests::test_graph_layout_get ... ok [INFO] [stdout] test i18n::tests::alert_messages_non_empty ... ok [INFO] [stdout] test i18n::tests::all_panel_labels_differ_en_ja ... ok [INFO] [stdout] test graph::layout::tests::test_graph_row_with_head ... ok [INFO] [stdout] test i18n::tests::all_panel_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::commit_overlay_non_empty ... ok [INFO] [stdout] test i18n::tests::cli_messages_non_empty ... ok [INFO] [stdout] test i18n::tests::compare_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::confidence_levels_non_empty ... ok [INFO] [stdout] test i18n::tests::dashboard_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::detail_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::debug_format ... ok [INFO] [stdout] test i18n::tests::error_messages_non_empty ... ok [INFO] [stdout] test i18n::tests::event_types_non_empty ... ok [INFO] [stdout] test i18n::tests::handoff_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::default_language_is_en ... ok [INFO] [stdout] test i18n::tests::health_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::help_overlay_non_empty ... ok [INFO] [stdout] test i18n::tests::help_shorthand_non_empty ... ok [INFO] [stdout] test i18n::tests::footer_hints_non_empty ... ok [INFO] [stdout] test i18n::tests::hint_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::label_en ... ok [INFO] [stdout] test i18n::tests::label_ja ... ok [INFO] [stdout] test i18n::tests::file_detail_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::main_panel_titles_non_empty ... ok [INFO] [stdout] test i18n::tests::help_items_non_empty ... ok [INFO] [stdout] test i18n::tests::overlay_titles_non_empty ... ok [INFO] [stdout] test i18n::tests::preset_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::loading_messages_non_empty ... ok [INFO] [stdout] test i18n::tests::related_files_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::serde_deserialize_en ... ok [INFO] [stdout] test i18n::tests::main_panel_titles_differ ... ok [INFO] [stdout] test i18n::tests::health_scroll_close_quit_non_empty ... ok [INFO] [stdout] test i18n::tests::quick_action_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::serde_deserialize_ja ... ok [INFO] [stdout] test i18n::tests::serde_roundtrip ... ok [INFO] [stdout] test i18n::tests::serde_serialize_en ... ok [INFO] [stdout] test i18n::tests::stash_detail_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::serde_serialize_ja ... ok [INFO] [stdout] test i18n::tests::status_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::toggle_ja_to_en ... ok [INFO] [stdout] test i18n::tests::toggle_roundtrip ... ok [INFO] [stdout] test i18n::tests::toggle_en_to_ja ... ok [INFO] [stdout] test i18n::tests::status_messages_non_empty ... ok [INFO] [stdout] test git::tests::test_load_events_from_repo_respects_limit ... ok [INFO] [stdout] test i18n::tests::table_headers_non_empty ... ok [INFO] [stdout] test insights::tests::confidence_capped_at_one ... ok [INFO] [stdout] test i18n::tests::stash_labels_non_empty ... ok [INFO] [stdout] test i18n::tests::topology_labels_non_empty ... ok [INFO] [stdout] test insights::tests::confidence_density_boost_from_risk_count ... ok [INFO] [stdout] test insights::tests::actions_to_markdown_output ... ok [INFO] [stdout] test insights::tests::confidence_increases_with_evidence ... ok [INFO] [stdout] test insights::tests::alert_severity_critical_is_warning_or_error ... ok [INFO] [stdout] test insights::tests::alert_severity_info_is_not_warning_or_error ... ok [INFO] [stdout] test insights::tests::alert_severity_warning_is_warning_or_error ... ok [INFO] [stdout] test insights::tests::build_next_actions_returns_cloned_actions ... ok [INFO] [stdout] test insights::tests::confidence_base_with_no_evidence ... ok [INFO] [stdout] test insights::tests::confidence_capped_at_1 ... ok [INFO] [stdout] test insights::tests::explain_recommendation_found ... ok [INFO] [stdout] test insights::tests::explain_recommendation_not_found ... ok [INFO] [stdout] test insights::tests::pack_to_markdown_contains_sections ... ok [INFO] [stdout] test insights::tests::review_pack_to_markdown_contains_sections ... ok [INFO] [stdout] test insights::tests::risk_score_increases_with_signals ... ok [INFO] [stdout] test insights::tests::risk_score_zero_for_perfect_health_no_risks ... ok [INFO] [stdout] test insights::tests::risk_score_increases_with_low_health ... ok [INFO] [stdout] test insights::tests::risk_score_capped_at_1 ... ok [INFO] [stdout] test insights::tests::handoff_to_markdown_output ... ok [INFO] [stdout] test insights::tests::signal_set_glyphs_all_false ... ok [INFO] [stdout] test insights::tests::signal_set_glyphs_all_true ... ok [INFO] [stdout] test insights::tests::signal_set_glyphs_mixed ... ok [INFO] [stdout] test insights::tests::signal_set_glyphs_only_hot_file ... ok [INFO] [stdout] test insights::tests::signals_empty_commit_list ... ok [INFO] [stdout] test git::tests::test_stage_all_in_repo_stages_all_files ... ok [INFO] [stdout] test insights::tests::signals_binary_file_mixed ... ok [INFO] [stdout] test insights::tests::signals_high_impact_from_large_change_fallback ... ok [INFO] [stdout] test insights::tests::signals_high_impact_from_score ... ok [INFO] [stdout] test insights::tests::signals_hot_file_not_in_top ... ok [INFO] [stdout] test insights::tests::signals_knowledge_risk_from_bus_factor ... ok [INFO] [stdout] test insights::tests::signals_hot_file_detected ... ok [INFO] [stdout] test insights::tests::signals_knowledge_risk_from_ownership_concentration ... ok [INFO] [stdout] test insights::tests::signals_knowledge_risk_from_tech_debt ... ok [INFO] [stdout] test insights::tests::signals_not_high_impact_below_threshold ... ok [INFO] [stdout] test insights::tests::signals_same_author_all_commits ... ok [INFO] [stdout] test insights::tests::signals_large_file_change ... ok [INFO] [stdout] test insights::tests::signals_no_impact_no_hot_no_risk ... ok [INFO] [stdout] test insights::tests::signals_single_commit ... ok [INFO] [stdout] test insights::tests::signals_long_author_name ... ok [INFO] [stdout] test insights::tests::summary_to_markdown_contains_branch ... ok [INFO] [stdout] test insights::tests::summary_to_markdown_handles_none ... ok [INFO] [stdout] test insights::tests::verify_patch_risk_high ... ok [INFO] [stdout] test insights::tests::verify_patch_risk_low ... ok [INFO] [stdout] test insights::tests::verify_patch_risk_needs_review ... ok [INFO] [stdout] test intent::tests::test_change_intent_default_is_unknown ... ok [INFO] [stdout] test intent::tests::test_change_intent_eq_hash ... ok [INFO] [stdout] test intent::tests::test_change_intent_icon_non_empty ... ok [INFO] [stdout] test git::tests::test_unstage_all_in_repo_unstages_all_files ... ok [INFO] [stdout] test intent::tests::test_change_intent_label_non_empty ... ok [INFO] [stdout] test intent::tests::test_classify_ci_build_style_perf_as_chore ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_chore ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_docs ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_feat ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_fix ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_refactor ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_test ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_commit_with_scope ... ok [INFO] [stdout] test intent::tests::test_classify_conventional_takes_priority ... ok [INFO] [stdout] test intent::tests::test_classify_file_pattern_docs_only ... ok [INFO] [stdout] test intent::tests::test_classify_file_pattern_test_only ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_add ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_bug ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_clean ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_error ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_fix ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_hotfix ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_implement ... ok [INFO] [stdout] test intent::tests::test_classify_keyword_refactor ... ok [INFO] [stdout] test intent::tests::test_classify_mixed_files_not_all_docs ... ok [INFO] [stdout] test intent::tests::test_classify_mixed_files_not_all_test ... ok [INFO] [stdout] test intent::tests::test_classify_unknown ... ok [INFO] [stdout] test intent::tests::test_is_doc_file_various ... ok [INFO] [stdout] test intent::tests::test_is_test_file_various ... ok [INFO] [stdout] test metrics::tests::test_load_metrics_defaults ... ok [INFO] [stdout] test navigation::tests::test_adjust_scroll_zero_visible ... ok [INFO] [stdout] test navigation::tests::test_adjust_scroll_scrolls_down ... ok [INFO] [stdout] test navigation::tests::test_move_down_increments_index ... ok [INFO] [stdout] test navigation::tests::test_move_down_empty_list ... ok [INFO] [stdout] test navigation::tests::test_move_up_decrements_index ... ok [INFO] [stdout] test navigation::tests::test_move_up_does_not_go_below_zero ... ok [INFO] [stdout] test navigation::tests::test_move_up_adjusts_scroll_offset ... ok [INFO] [stdout] test navigation::tests::test_move_down_does_not_exceed_max ... ok [INFO] [stdout] test navigation::tests::test_reset ... ok [INFO] [stdout] test pr::tests::test_create_pr_empty_title ... ok [INFO] [stdout] test pr::tests::test_create_pr_no_gh ... ok [INFO] [stdout] test pr::tests::test_create_pr_whitespace_title ... ok [INFO] [stdout] test navigation::tests::test_new_initializes_to_zero ... ok [INFO] [stdout] test pr::tests::test_pr_create_state_clone ... ok [INFO] [stdout] test pr::tests::test_pr_create_state_default ... ok [INFO] [stdout] test related_files::tests::test_analyze_related_files_basic ... ok [INFO] [stdout] test related_files::tests::test_analyze_related_files_empty ... ok [INFO] [stdout] test related_files::tests::test_analyze_related_files_no_target ... ok [INFO] [stdout] test relevance::tests::test_calculate_relevance_empty_working_files ... ok [INFO] [stdout] test relevance::tests::test_calculate_relevance_with_matches ... ok [INFO] [stdout] test relevance::tests::test_calculate_relevance_no_matches ... ok [INFO] [stdout] test review_queue::tests::test_review_item_serialize_roundtrip ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_clone ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_list_pending ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_list_pending_multiple ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_list_resolved ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_list_resolved_limit ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_default_empty ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_serialize_deserialize ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_list_resolved_excludes_pending ... ok [INFO] [stdout] test review_queue::tests::test_review_queue_pending_count_all_resolved ... ok [INFO] [stdout] test review_queue::tests::test_review_status_clone_copy ... ok [INFO] [stdout] test review_queue::tests::test_review_status_default ... ok [INFO] [stdout] test review_queue::tests::test_review_status_eq ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_empty ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_many_files_higher ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_high_threshold ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_hot_files_increase_risk ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_no_staged_files ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_single_file_low ... ok [INFO] [stdout] test risk::tests::test_risk_level_clone_copy ... ok [INFO] [stdout] test risk::tests::test_risk_level_default ... ok [INFO] [stdout] test risk::tests::test_risk_level_eq_and_hash ... ok [INFO] [stdout] test risk::tests::test_risk_level_label ... ok [INFO] [stdout] test pr::tests::test_check_gh_available_returns_bool ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_case_insensitive ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_claude ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_codex ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_copilot ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_cursor ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_generated_by ... ok [INFO] [stdout] test session::tests::test_detect_sessions_empty ... ok [INFO] [stdout] test session::tests::test_detect_sessions_gap_breaks_session ... ok [INFO] [stdout] test risk::tests::test_calculate_staged_risk_multi_owner_increases_risk ... ok [INFO] [stdout] test session::tests::test_detect_sessions_single_ai_commit ... ok [INFO] [stdout] test session::tests::test_detect_sessions_two_ai_commits_close ... ok [INFO] [stdout] test session::tests::test_session_has_commit_hashes ... ok [INFO] [stdout] test session::tests::test_detect_ai_tool_none ... ok [INFO] [stdout] test session::tests::test_detect_sessions_different_author_breaks ... ok [INFO] [stdout] test session::tests::test_detect_sessions_three_commits_one_session ... ok [INFO] [stdout] test session::tests::test_detect_sessions_non_ai_commit_breaks ... ok [INFO] [stdout] test session::tests::test_session_stats_accumulation ... ok [INFO] [stdout] test session::tests::test_session_stats_default ... ok [INFO] [stdout] test split::tests::test_split_group_has_suggested_title ... ok [INFO] [stdout] test split::tests::test_suggest_splits_empty ... ok [INFO] [stdout] test split::tests::test_suggest_splits_ignores_unstaged ... ok [INFO] [stdout] test split::tests::test_suggest_splits_exactly_threshold ... ok [INFO] [stdout] test split::tests::test_suggest_splits_multiple_directories ... ok [INFO] [stdout] test split::tests::test_suggest_splits_single_directory ... ok [INFO] [stdout] test split::tests::test_suggest_splits_too_few_files ... ok [INFO] [stdout] test split::tests::test_suggest_splits_three_directories ... ok [INFO] [stdout] test split::tests::test_suggest_splits_small_groups_go_to_misc ... ok [INFO] [stdout] test staging::tests::test_is_test_file_nested_tests_dir ... ok [INFO] [stdout] test staging::tests::test_staging_group_clone ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_empty ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_ignores_staged ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_root_files ... ok [INFO] [stdout] test staging::tests::test_is_test_file ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_separates_tests ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_single_dir ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_suggested_message_format ... ok [INFO] [stdout] test stats::analysis::tests::test_aggregation_level_display_name ... ok [INFO] [stdout] test stats::analysis::tests::test_aggregation_level_next ... ok [INFO] [stdout] test stats::analysis::tests::test_aggregation_level_prev ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_multiple_dirs ... ok [INFO] [stdout] test stats::analysis::tests::test_author_stats_commit_percentage ... ok [INFO] [stdout] test stats::analysis::tests::test_author_stats_commit_percentage_zero ... ok [INFO] [stdout] test staging::tests::test_suggest_groups_test_message_format ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_file_heatmap_multiple_files ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_stats_empty ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_file_heatmap_empty ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_stats_multiple_authors ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_stats_single_author ... ok [INFO] [stdout] test stats::analysis::tests::test_file_heatmap_entry_heat_bar ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_stats_totals ... ok [INFO] [stdout] test stats::analysis::tests::test_file_heatmap_entry_heat_level ... ok [INFO] [stdout] test stats::analysis::tests::test_calculate_file_heatmap_single_file ... ok [INFO] [stdout] test stats::analysis::tests::test_heatmap_with_aggregation_deep ... ok [INFO] [stdout] test stats::analysis::tests::test_heatmap_with_aggregation_shallow ... ok [INFO] [stdout] test stats::analysis::tests::test_repo_stats_author_count ... ok [INFO] [stdout] test stats::health::tests::test_alert_severity_ordering ... ok [INFO] [stdout] test stats::health::tests::test_is_test_file ... ok [INFO] [stdout] test stats::health::tests::test_project_health_default ... ok [INFO] [stdout] test stats::health::tests::test_project_health_level ... ok [INFO] [stdout] test stats::health::tests::test_calculate_project_health_with_events ... ok [INFO] [stdout] test stats::health::tests::test_calculate_project_health_empty ... ok [INFO] [stdout] test stats::health::tests::test_project_health_score_bar ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_min_commits_filter ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_min_coupling_filter ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_pair ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_partial ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_change_score ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_single_file ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_atomicity_same_directory ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_atomicity_scattered ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_atomicity_single_file ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_empty ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_change_coupling_high_coupling_count ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_empty ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_message_quality_conventional ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_file_score ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_message_quality_conventional_fix ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_sorted_by_score_desc ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_high_impact_count ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_message_quality_empty ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_message_quality_non_conventional ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_impact_scores_single_commit ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_message_quality_short ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_quality_scores_empty ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_quality_scores_single_commit ... ok [INFO] [stdout] test stats::health::tests::test_calculate_project_health_alerts ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_size_appropriateness_large ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_quality_scores_sorted_by_score ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_size_appropriateness_empty ... ok [INFO] [stdout] test stats::health::tests::test_confidence_levels ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_size_appropriateness_ideal ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_test_presence_empty ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_test_presence_both ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_test_presence_test_only ... ok [INFO] [stdout] test stats::quality::tests::test_calculate_test_presence_source_only ... ok [INFO] [stdout] test stats::quality::tests::test_change_coupling_grouped_by_file ... ok [INFO] [stdout] test stats::quality::tests::test_commit_impact_score_bar ... ok [INFO] [stdout] test stats::quality::tests::test_commit_impact_score_color_high ... ok [INFO] [stdout] test stats::quality::tests::test_commit_impact_score_color_low ... ok [INFO] [stdout] test stats::quality::tests::test_commit_impact_score_color_medium ... ok [INFO] [stdout] test stats::quality::tests::test_commit_quality_score_bar ... ok [INFO] [stdout] test stats::quality::tests::test_commit_quality_score_color ... ok [INFO] [stdout] test stats::quality::tests::test_file_coupling_bar ... ok [INFO] [stdout] test stats::quality::tests::test_commit_quality_score_quality_level ... ok [INFO] [stdout] test stats::quality::tests::test_quality_analysis_high_low_counts ... ok [INFO] [stdout] test suggestion::tests::test_commit_suggestion_full_message_with_scope ... ok [INFO] [stdout] test suggestion::tests::test_commit_suggestion_full_message_without_scope ... ok [INFO] [stdout] test suggestion::tests::test_extract_file_name ... ok [INFO] [stdout] test suggestion::tests::test_extract_module_name ... ok [INFO] [stdout] test suggestion::tests::test_generate_suggestions_cargo_toml ... ok [INFO] [stdout] test suggestion::tests::test_generate_suggestions_empty ... ok [INFO] [stdout] test suggestion::tests::test_generate_suggestions_max_three ... ok [INFO] [stdout] test suggestion::tests::test_generate_suggestions_readme ... ok [INFO] [stdout] test suggestion::tests::test_generate_suggestions_test_files ... ok [INFO] [stdout] test suggestion::tests::test_infer_scope_from_src_auth ... ok [INFO] [stdout] test suggestion::tests::test_infer_scope_mixed_paths ... ok [INFO] [stdout] test suggestion::tests::test_infer_scope_from_src_tui ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_cargo_toml ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_css ... ok [INFO] [stdout] test suggestion::tests::test_infer_scope_single_file ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_package_json ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_docs ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_readme ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_github_workflow ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_regular_source ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_regular_toml_is_none ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_regular_json_is_none ... ok [INFO] [stdout] test topology::layout::tests::test_create_branch_line_shows_status ... ok [INFO] [stdout] test topology::layout::tests::test_create_info_line_shows_ahead_behind ... ok [INFO] [stdout] test topology::layout::tests::test_render_topology_ascii_returns_lines ... ok [INFO] [stdout] test topology::layout::tests::test_topology_layout_from_topology ... ok [INFO] [stdout] test suggestion::tests::test_infer_type_from_test_file ... ok [INFO] [stdout] test topology::types::tests::test_branch_relation_summary_ahead ... ok [INFO] [stdout] test topology::types::tests::test_branch_relation_summary_ahead_and_behind ... ok [INFO] [stdout] test topology::types::tests::test_branch_relation_summary_behind ... ok [INFO] [stdout] test topology::types::tests::test_branch_relation_summary_merged ... ok [INFO] [stdout] test topology::types::tests::test_branch_relation_summary_up_to_date ... ok [INFO] [stdout] test topology::types::tests::test_branch_status_label ... ok [INFO] [stdout] test topology::types::tests::test_branch_topology_active_branch ... ok [INFO] [stdout] test topology::types::tests::test_branch_topology_add_branch ... ok [INFO] [stdout] test topology::types::tests::test_branch_topology_merged_count ... ok [INFO] [stdout] test topology::types::tests::test_branch_topology_new ... ok [INFO] [stdout] test topology::types::tests::test_branch_topology_stale_count ... ok [INFO] [stdout] test topology::types::tests::test_topology_branch_is_ahead ... ok [INFO] [stdout] test topology::types::tests::test_topology_branch_is_behind ... ok [INFO] [stdout] test topology::types::tests::test_topology_branch_new ... ok [INFO] [stdout] test topology::types::tests::test_topology_branch_with_status ... ok [INFO] [stdout] test tui::dashboard::tests::change_bar_spans_additions_only ... ok [INFO] [stdout] test topology::analysis::tests::test_analyze_topology_from_repo_returns_topology ... ok [INFO] [stdout] test tui::dashboard::tests::change_bar_spans_deletions_only ... ok [INFO] [stdout] test topology::analysis::tests::test_detect_main_branch_falls_back_to_master ... ok [INFO] [stdout] test tui::dashboard::tests::change_bar_spans_large_values ... ok [INFO] [stdout] test tui::dashboard::tests::change_bar_spans_mixed ... ok [INFO] [stdout] test tui::dashboard::tests::change_bar_spans_zero ... ok [INFO] [stdout] test topology::analysis::tests::test_analyze_topology_from_repo_includes_current_branch ... ok [INFO] [stdout] test topology::analysis::tests::test_detect_main_branch_prefers_main ... ok [INFO] [stdout] test tui::dashboard::tests::render_dashboard_minimal_terminal_no_panic ... ok [INFO] [stdout] test tui::dashboard::tests::render_dashboard_footer_no_panic ... ok [INFO] [stdout] test tui::helpers::tests::test_centered_overlay_rect_clamps_to_area ... ok [INFO] [stdout] test topology::analysis::tests::test_analyze_topology_with_feature_branch ... ok [INFO] [stdout] test tui::dashboard::tests::render_dashboard_empty_events_no_panic ... ok [INFO] [stdout] test tui::helpers::tests::test_display_width_ascii ... ok [INFO] [stdout] test tui::helpers::tests::test_display_width_cjk ... ok [INFO] [stdout] test tui::helpers::tests::test_display_width_empty ... ok [INFO] [stdout] test tui::helpers::tests::test_display_width_mixed ... ok [INFO] [stdout] test tui::helpers::tests::test_fit_lines_to_inner_area_truncates_and_limits_height ... ok [INFO] [stdout] test tui::helpers::tests::test_overlay_standard_min_width_enforced ... ok [INFO] [stdout] test tui::helpers::tests::test_overlay_standard_size_centered ... ok [INFO] [stdout] test tui::helpers::tests::test_overlay_standard_size_small_terminal ... ok [INFO] [stdout] test tui::helpers::tests::test_overlay_standard_very_small_terminal ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_boundary ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_ascii ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_cjk ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_empty ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_mixed ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_ascii ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_cjk ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_empty ... ok [INFO] [stdout] test tui::dashboard::tests::render_dashboard_sidebar_panels_no_panic ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_exact_fit ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_no_truncation ... ok [INFO] [stdout] test tui::helpers::tests::test_truncate_to_width_with_ellipsis_small_width ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_overlays_minimal_terminal_no_panic ... ok [INFO] [stdout] test tui::overlays::navigation::tests::test_render_quick_action_overlay_all_14_items ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_branch_compare_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_heatmap_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_change_coupling_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_impact_score_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_quality_score_view_overlay_no_panic ... ok [INFO] [stdout] test tui::helpers::tests::test_calculate_layout_areas_dashboard ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_ownership_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_timeline_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_heatmap_view_overlay_loading_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_stats_view_overlay_no_panic ... ok [INFO] [stdout] test tui::overlays::stats::tests::render_stats_view_overlay_loading_no_panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 692 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gitstack-456372beec4cc3e2) [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] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-860bca628b60fd41) [INFO] [stdout] [INFO] [stdout] running 197 tests [INFO] [stdout] test app_integration::test_app_cursor_movement_respects_filtered_list ... ok [INFO] [stdout] test app_integration::test_app_filter_no_match_returns_empty ... ok [INFO] [stdout] test app_integration::test_app_mode_transitions ... ok [INFO] [stdout] test app_integration::test_app_selected_index_adjusts_when_filter_shrinks_list ... ok [INFO] [stdout] test branch_select_tests::test_update_branch_after_checkout ... ok [INFO] [stdout] test branch_select_tests::test_branch_cursor_movement ... ok [INFO] [stdout] test branch_select_tests::test_selected_branch ... ok [INFO] [stdout] test comprehensive_blame_view_tests::test_blame_view_navigation ... ok [INFO] [stdout] test comprehensive_blame_view_tests::test_blame_view_selected_line ... ok [INFO] [stdout] test comprehensive_blame_view_tests::test_blame_view_scroll_adjustment ... ok [INFO] [stdout] test comprehensive_branch_select_tests::test_branch_select_empty_list ... ok [INFO] [stdout] test comprehensive_blame_view_tests::test_blame_view_start_end ... ok [INFO] [stdout] test comprehensive_branch_select_tests::test_branch_select_navigation ... ok [INFO] [stdout] test comprehensive_branch_select_tests::test_branch_select_selected_branch ... ok [INFO] [stdout] test comprehensive_branch_select_tests::test_branch_select_start_end ... ok [INFO] [stdout] test comprehensive_branch_select_tests::test_branch_select_many_branches ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_all_commit_types ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_message_clear ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_message_input ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_message_backspace ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_input_start_end ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_unicode_message ... ok [INFO] [stdout] test comprehensive_commit_input_tests::test_commit_type_selection ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_filter_cancel_on_esc ... ok [INFO] [stdout] test change_detection_tests::test_get_index_mtime_returns_time ... ok [INFO] [stdout] test auto_refresh_workflow_tests::test_app_detects_staging_changes ... ok [INFO] [stdout] test auto_refresh_workflow_tests::test_app_refreshes_branch_info ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_rapid_mode_transitions ... ok [INFO] [stdout] test app_integration::test_app_filter_works_with_real_events ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_developer_commit_workflow ... ok [INFO] [stdout] test comprehensive_file_history_view_tests::test_file_history_view_empty ... ok [INFO] [stdout] test change_detection_tests::test_head_hash_same_without_commit ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_user_quits ... ok [INFO] [stdout] test auto_refresh_workflow_tests::test_app_detects_new_commit_via_head_hash ... ok [INFO] [stdout] test comprehensive_file_history_view_tests::test_file_history_view_selected_entry ... ok [INFO] [stdout] test comprehensive_file_history_view_tests::test_file_history_view_navigation ... ok [INFO] [stdout] test change_detection_tests::test_head_hash_changes_after_commit ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_backspace ... ok [INFO] [stdout] test comprehensive_file_history_view_tests::test_file_history_view_start_end ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_by_author_method ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_by_author_prefix ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_clear ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_escapes_on_esc ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_case_insensitive ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_by_message ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_mode_start_and_end ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_no_match ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_preserves_selection_when_possible ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_text_input ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_unicode_support ... ok [INFO] [stdout] test comprehensive_heatmap_view_tests::test_heatmap_view_navigation ... ok [INFO] [stdout] test comprehensive_heatmap_view_tests::test_heatmap_view_selected_file ... ok [INFO] [stdout] test comprehensive_heatmap_view_tests::test_heatmap_view_start_end ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_down_at_bottom_stays ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_down_basic ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_to_bottom ... ok [INFO] [stdout] test change_detection_tests::test_get_head_hash_returns_valid_hash ... ok [INFO] [stdout] test app_integration::test_app_loads_repo_info_correctly ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_detail_to_file_history_to_blame ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_to_top ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_up_basic ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_page_down_at_end ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_move_up_at_top_stays ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_navigation_with_empty_events ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_page_down ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_navigation_with_single_event ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_page_up_at_start ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_page_up ... ok [INFO] [stdout] test comprehensive_ownership_view_tests::test_ownership_view_navigation ... ok [INFO] [stdout] test comprehensive_ownership_view_tests::test_ownership_entry_percentage_zero_total ... ok [INFO] [stdout] test comprehensive_ownership_view_tests::test_ownership_entry_percentage ... ok [INFO] [stdout] test comprehensive_ownership_view_tests::test_ownership_view_start_end ... ok [INFO] [stdout] test comprehensive_stats_view_tests::test_stats_view_navigation ... ok [INFO] [stdout] test comprehensive_stats_view_tests::test_stats_view_empty ... ok [INFO] [stdout] test comprehensive_ownership_view_tests::test_ownership_view_selected_entry ... ok [INFO] [stdout] test comprehensive_stats_view_tests::test_stats_view_selected_author ... ok [INFO] [stdout] test comprehensive_stats_view_tests::test_stats_view_start_end ... ok [INFO] [stdout] test comprehensive_status_view_tests::test_status_view_empty_statuses ... ok [INFO] [stdout] test comprehensive_status_view_tests::test_status_view_selected_file ... ok [INFO] [stdout] test comprehensive_status_view_tests::test_status_view_start_end ... ok [INFO] [stdout] test comprehensive_status_view_tests::test_status_view_update_statuses ... ok [INFO] [stdout] test comprehensive_status_view_tests::test_status_view_navigation ... ok [INFO] [stdout] test comprehensive_timeline_view_tests::test_timeline_view_start_end ... ok [INFO] [stdout] test comprehensive_timeline_view_tests::test_timeline_with_real_events ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_branch_health_add_warning ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_branch_health_no_duplicate_warnings ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_branch_health_warning_icons ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_health_warning_description ... ok [INFO] [stdout] test auto_refresh_workflow_tests::test_head_hash_consistent_with_events ... ok [INFO] [stdout] test comprehensive_view_mode_tests::test_close_help ... ok [INFO] [stdout] test change_detection_tests::test_head_hash_changes_on_branch_switch ... ok [INFO] [stdout] test comprehensive_view_mode_tests::test_detail_navigation ... ok [INFO] [stdout] test comprehensive_view_mode_tests::test_help_toggle ... ok [INFO] [stdout] test comprehensive_view_mode_tests::test_detail_view_open_close ... ok [INFO] [stdout] test comprehensive_view_mode_tests::test_detail_move_up_at_zero ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_branch_health_multiple_warnings ... ok [INFO] [stdout] test change_detection_tests::test_index_mtime_changes_after_staging ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_branch_health_new ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_health_warning_icon ... ok [INFO] [stdout] test detail_view_tests::test_detail_shows_selected_event ... ok [INFO] [stdout] test detail_view_tests::test_open_close_detail ... ok [INFO] [stdout] test detail_view_tests::test_open_detail_requires_event ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_code_ownership_analysis ... ok [INFO] [stdout] test comprehensive_navigation_tests::test_jump_to_head_finds_head_commit ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_topology_unhealthy_count ... ok [INFO] [stdout] test comprehensive_filter_tests::test_filter_by_file_method ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_team_lead_branch_analysis ... ok [INFO] [stdout] test e2e_simulation::test_e2e_browse_and_filter ... ok [INFO] [stdout] test e2e_simulation::test_e2e_at_key_no_jump_when_head_not_in_filter ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_reviewer_stats_analysis ... ok [INFO] [stdout] test cross_cell_integration::test_cross_cell_position_is_valid ... ok [INFO] [stdout] test comprehensive_topology_health_tests::test_topology_warning_count ... ok [INFO] [stdout] test comprehensive_e2e_workflow_tests::test_e2e_new_user_exploration ... ok [INFO] [stdout] test e2e_simulation::test_e2e_quit ... ok [INFO] [stdout] test edge_case_tests::test_filter_with_empty_string ... ok [INFO] [stdout] test cross_cell_integration::test_cross_cell_colors_are_valid ... ok [INFO] [stdout] test edge_case_tests::test_selected_event_with_no_events ... ok [INFO] [stdout] test edge_case_tests::test_concurrent_state_changes ... ok [INFO] [stdout] test e2e_simulation::test_e2e_status_and_commit ... ok [INFO] [stdout] test e2e_simulation::test_e2e_at_key_jumps_to_head_with_filter ... ok [INFO] [stdout] test edge_case_tests::test_special_characters_in_filter ... ok [INFO] [stdout] test error_cases::test_branch_select_with_current_branch_not_in_list ... ok [INFO] [stdout] test edge_case_tests::test_very_long_commit_message ... ok [INFO] [stdout] test edge_case_tests::test_unicode_in_branch_names ... ok [INFO] [stdout] test edge_case_tests::test_selection_index_boundaries ... ok [INFO] [stdout] test e2e_simulation::test_e2e_branch_switch_updates_events ... ok [INFO] [stdout] test edge_case_tests::test_status_message_lifecycle ... ok [INFO] [stdout] test error_cases::test_cursor_on_empty_list ... ok [INFO] [stdout] test error_cases::test_filter_clears_on_escape ... ok [INFO] [stdout] test error_cases::test_rapid_filter_input ... ok [INFO] [stdout] test error_cases::test_filter_with_special_characters ... ok [INFO] [stdout] test error_cases::test_empty_branch_list ... ok [INFO] [stdout] test error_cases::test_status_view_with_no_files ... ok [INFO] [stdout] test edge_case_tests::test_empty_repository ... ok [INFO] [stdout] test e2e_simulation::test_e2e_external_commit_detection ... ok [INFO] [stdout] test e2e_simulation::test_e2e_at_key_jumps_to_head_with_multiple_branches ... ok [INFO] [stdout] test e2e_simulation::test_e2e_at_key_jumps_to_head ... ok [INFO] [stdout] test e2e_simulation::test_e2e_status_view_auto_update ... ok [INFO] [stdout] test error_cases::test_empty_repo_handling ... ok [INFO] [stdout] test error_cases::test_commit_with_no_staged_files ... ok [INFO] [stdout] test file_cache_tests::test_preload_file_cache_respects_limit ... ok [INFO] [stdout] test error_cases::test_checkout_nonexistent_branch_fails ... ok [INFO] [stdout] test error_cases::test_stage_already_staged_file ... ok [INFO] [stdout] test file_status_kind_tests::test_detect_staged_deleted ... ok [INFO] [stdout] test git_integration::test_branch_switch_workflow ... ok [INFO] [stdout] test file_cache_tests::test_file_cache_cleared_on_filter_clear ... ok [INFO] [stdout] test file_cache_tests::test_preload_file_cache_no_filter ... ok [INFO] [stdout] test file_status_kind_tests::test_detect_staged_modified ... ok [INFO] [stdout] test e2e_simulation::test_e2e_complex_workflow ... ok [INFO] [stdout] test graph_integration::test_connector_row_generation ... ok [INFO] [stdout] test graph_integration::test_graph_color_consistency ... ok [INFO] [stdout] test graph_integration::test_graph_row_count_with_connectors ... ok [INFO] [stdout] test file_status_kind_tests::test_detect_deleted_file ... ok [INFO] [stdout] test file_cache_tests::test_file_filter_combined_with_author ... ok [INFO] [stdout] test graph_integration::test_graph_cell_characters ... ok [INFO] [stdout] test graph_integration::test_merge_node_type ... ok [INFO] [stdout] test e2e_simulation::test_e2e_filter_preserved_after_refresh ... ok [INFO] [stdout] test file_cache_tests::test_preload_file_cache_basic ... ok [INFO] [stdout] test e2e_simulation::test_e2e_graph_with_real_repo ... ok [INFO] [stdout] test remote_fetch_tests::test_fetch_nonexistent_path_fails ... ok [INFO] [stdout] test git_integration::test_commit_workflow ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_matches_author ... ok [INFO] [stdout] test git_integration::test_modified_file_detection ... ok [INFO] [stdout] test remote_fetch_tests::test_fetch_without_remote_fails ... ok [INFO] [stdout] test git_integration::test_staging_and_unstaging_workflow ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_matches_message ... ok [INFO] [stdout] test status_and_commit_tests::test_commit_message_input ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_parse_author ... ok [INFO] [stdout] test status_and_commit_tests::test_commit_message_with_unicode ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_parse_combined ... ok [INFO] [stdout] test status_and_commit_tests::test_status_message_set_and_clear ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_parse_plain_text ... ok [INFO] [stdout] test git_integration::test_multiple_file_staging ... ok [INFO] [stdout] test status_and_commit_tests::test_status_view_selected_file ... ok [INFO] [stdout] test status_and_commit_tests::test_status_view_update_statuses ... ok [INFO] [stdout] test status_and_commit_tests::test_status_view_cursor_movement ... ok [INFO] [stdout] test topology_view_tests::test_topology_branch_relation_summary ... ok [INFO] [stdout] test file_cache_tests::test_file_filter_e2e_workflow ... ok [INFO] [stdout] test smart_filter_tests::test_app_smart_filter_integration ... ok [INFO] [stdout] test git_integration::test_load_events_returns_commits_in_reverse_chronological_order ... ok [INFO] [stdout] test smart_filter_tests::test_filter_query_file_filter_with_repo ... ok [INFO] [stdout] test remote_fetch_tests::test_fetch_from_local_remote ... ok [INFO] [stdout] test graph_integration::test_graph_with_merge_commit ... ok [INFO] [stdout] test topology_view_tests::test_topology_analysis_single_branch ... ok [INFO] [stdout] test topology_view_tests::test_app_topology_view_integration ... ok [INFO] [stdout] test edge_case_tests::test_very_large_event_list ... ok [INFO] [stdout] test v040_all_branches::test_other_branch_commits_visible_from_main ... ok [INFO] [stdout] test graph_integration::test_graph_parallel_branches ... ok [INFO] [stdout] test topology_view_tests::test_topology_stale_branch_detection ... ok [INFO] [stdout] test workflow_integration::test_incremental_commit_workflow ... ok [INFO] [stdout] test v040_all_branches::test_all_branches_in_graph ... ok [INFO] [stdout] test topology_view_tests::test_app_topology_scroll ... ok [INFO] [stdout] test topology_view_tests::test_topology_analysis_with_feature_branch ... ok [INFO] [stdout] test workflow_integration::test_full_development_workflow ... ok [INFO] [stdout] test remote_fetch_tests::test_fetch_updates_remote_refs ... ok [INFO] [stdout] test v040_all_branches::test_all_branches_commits_visible ... ok [INFO] [stdout] test workflow_integration::test_app_with_real_repo_filter_and_navigate ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 197 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s [INFO] [stdout] [INFO] [stderr] Doc-tests gitstack [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/i18n.rs - i18n::i18n_messages (line 20) ... ignored [INFO] [stdout] test src/i18n.rs - i18n::i18n_messages (line 26) ... ignored [INFO] [stdout] test src/tui/helpers.rs - tui::helpers::OverlayContext (line 271) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3ed6f81d84544dfde9548b676347ced3330e306eb82b11e15e0f3d4528ecd6bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ed6f81d84544dfde9548b676347ced3330e306eb82b11e15e0f3d4528ecd6bc", kill_on_drop: false }` [INFO] [stdout] 3ed6f81d84544dfde9548b676347ced3330e306eb82b11e15e0f3d4528ecd6bc